簡體   English   中英

使用一個對話框作為主 window。 未收到 WM_INITDIALOG 消息

[英]Using a dialog box as a main window. Not receiving WM_INITDIALOG messages

我已經創建了一個無模式對話框作為主要的 window,但是 window 過程沒有被發送 WM_INITDIALOG 消息。

這就是我所做的。

  1. 使用 Visual Studio 的資源編輯器創建了一個對話框模板,並將其 class 名稱設置為自定義 class。
  2. 使用WNDCLASSEX注冊class,window程序,以及一些圖標和畫筆等。
  3. 使用 CreateDialog(),最后兩個參數設置為 NULL,(父 window 和 window 過程)。
  4. 使用 IsDialogMessage()、TranslateMessage() 和 DispatchMessage() 創建了消息循環;
  5. 如果未處理任何消息,則在 window 過程中返回 DefDlgProc() 作為默認值。

我想不出還有什么重要的事情。 除了沒有收到 WM_INITDIALOG 消息外,一切正常。 我已經這樣做了,所以應用程序最小化到任務欄,如果需要我可以有一個菜單。

所以我的第一個問題是,我做了什么蠢事嗎?

其次,我應該期望使用這個系統接收 WM_INITDIALOG 消息嗎? 如果沒有,那么用字符串初始化一個 combobox 的好方法是什么。 (我已經查看了 WM_ACTIVATE、WM_ACTIVATEAPP 等內容,但似乎沒有什么合適的。並且 combobox 尚未在 WM_CREATE 創建。)提前致謝。

我在發布后不久就意識到了答案。 正如上面評論中提到的,它是一個 window 過程,而不是一個對話過程,所以我不應該嘗試在過程中初始化子 windows。

所以我在創建對話框之后和消息循環之前在過程之外初始化了它們。 所有對話框功能都按預期工作,但它是一個主要的 window,它可以有一個菜單並最小化到任務欄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM