我想實現一個菜單項上的聊天窗口點擊主窗口在win32中。我創建了一個主窗口和正在處理的聊天窗口以下列方式:豐富的編輯控件沒有加載菜單項上的子窗口點擊主窗口內
int CALLBACK TextChat::TextChatDlgProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
LPDRAWITEMSTRUCT pdis;
static HBRUSH hBrush;
static COLORREF GrayColor;
switch (uMsg)
{
case WM_COMMAND:
switch (LOWORD(wParam))
{
}
break;
case WM_CLOSE:
EndDialog(hwndDlg, 1);
return true;
break;
case WM_INITDIALOG:
{
CentreWindow(hwndDlg);
ShowWindow(hwndDlg,SW_SHOW);
UpdateWindow(hwndDlg);
return TRUE;
}
}
return 0;
}
int TextChat::DoDialog()
{
//CreateWindowEx(
return DialogBoxParam(this->m_pApp->m_instance,MAKEINTRESOURCE(IDD_CHAT_DIALOG),
NULL, (DLGPROC) TextChatDlgProc, (LONG) this->m_pCC);
}
而且從我的菜單項CLIC主窗口中,我這樣做的方式如下:
case WM_SYSCOMMAND:
{
switch (LOWORD(wParam))
{
case ID_TEXT_CHAT:
if(thisClass->m_pTextChat == NULL)
thisClass->m_pTextChat = new TextChat(thisClass->m_pApp,thisClass);
thisClass->m_pTextChat->DoDialog();
所以我正在使用VS2008,並且在調試時,調試器進入TextChatDlgProc內部,但是永遠不會進入WM_INITDIALOG內部並返回。因此,聊天窗口(資源IDD_CHAT_DIALOG)永遠不會顯示。任何指向解決這個問題的指針都非常感謝。 TIA
問候, GRV
當你進入'TextCharDlgProc'時,你可以看看'uMsg'的值嗎? – rodrigo
無論如何,我的猜測是對話框的創建失敗了,要麼是因爲模板有些怪異,要麼是因爲它無法在指定的模塊中找到。 – rodrigo
@rodrigo:它開始於48開始,然後變化,但它永遠不會去WM_INITDIALOG,我想知道我可能會出錯 – grv