我定义了一个对话框 ID是 IDD_ABOUT
现在使用CreateDialog调用,但是总是没有效果。部分代码如下:
hdlg和hInst都已定义.hdlg=CreateDialog(hInst,MAKEINTRESOURCE(IDD_ABOUT),hwnd,(DLGPROC)DlgProc);
上面代码无效。
DlgProc函数如下:
BOOL CALLBACK DlgProc(HWND hdlg,UINT Msg,WPARAM wparam,LPARAM lparam)
{switch(Msg)
{case WM_INITDIALOG:
return 1;
case WM_COMMAND:
switch(LOWORD(wparam))
{case IDOK:break;
case IDCANCEL:
DestroyWindow(hdlg);return 1;
}
break;
case WM_CLOSE:
DestroyWindow(hdlg);return 1;}
return 0;
}请问为什么无效? 谢谢!
现在使用CreateDialog调用,但是总是没有效果。部分代码如下:
hdlg和hInst都已定义.hdlg=CreateDialog(hInst,MAKEINTRESOURCE(IDD_ABOUT),hwnd,(DLGPROC)DlgProc);
上面代码无效。
DlgProc函数如下:
BOOL CALLBACK DlgProc(HWND hdlg,UINT Msg,WPARAM wparam,LPARAM lparam)
{switch(Msg)
{case WM_INITDIALOG:
return 1;
case WM_COMMAND:
switch(LOWORD(wparam))
{case IDOK:break;
case IDCANCEL:
DestroyWindow(hdlg);return 1;
}
break;
case WM_CLOSE:
DestroyWindow(hdlg);return 1;}
return 0;
}请问为什么无效? 谢谢!
另外,如果是在DLL中调用,在函数开始加上AFX_MANAGE_STATE(AfxGetStaticModuleState( ));
{
switch(Msg)
{
case WM_COMMAND:
switch(LOWORD(wparam))
{
case IDM_ABOUT:
hdlg=CreateDialog(hInst,MAKEINTRESOURCE(IDD_ABOUT),hwnd,(DLGPROC)DlgProc);
break;
}
break;
case WM_DESTROY:
PostQuitMessage(0);return(0);break;
default:
return(DefWindowProc(hwnd,Msg,wparam,lparam));
}
return(0);
}
你好,感谢帮助。
是没有调用ShowWindow函数,因为ShowWindow有两个参数第一个我用hdlg,第二个我不知道用什么?————————————————————————————————————————————回复:yjgx007()
你好,感谢帮助。
我没有使用到mfc类库,AFX_MANAGE_STATE(AfxGetStaticModuleState( ));这个我看不懂也不知道加在哪里?