初学api问题求指教
我建立了两个对话框资源,非MFC。id分别是IDD_DIALOG1和IDD_DIALOG2,在winmain函数中用dialogbox函数添加了对话框1,用commandbar_show显示更新,之后在对话框1上添加了一个控件,作用是点击该控件打开对话框2,其他在该对话框上的消息处理函数一切正常,但是用dialogbox函数,为什么总是打不开dialog2呢?
是通过运行了,,下载到wince开发板上,点击那个控件没反应哈。就是打不开dialog2
[解决办法]
2个dlg一个DlgPorc?
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG2),NULL,DlgPorc);
[解决办法]
LONG OnOpen(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam)
{
HINSTANCE hInstance; // 这个都没初始化...,应该定义一个全局g_hInstance,在WinMain里g_hInstance = hInstance;
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG2),NULL,DlgPorc); //这里改为g_hInstance
CommandBar_Show(NULL, TRUE);
return TRUE;
}
另外
LONG DoInit(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam)
{
InitCommunication (szDev); //这个是不是应该放到WinMain里
hwnd = hDlg; //这个会有问题,因为DoInit可能对应几个dlg,
//或者改成 全局HWND hwnd = NULL;
//if (hwnd == NULL) hwnd = hDlg;
return TRUE;
}
[解决办法]
HINSTANCE hInstance = (HINSTANCE) GetWindowLong(hwnd,GWL_HINSTANCE);