我想创建一个无模式对话框,HWND hwnd;
hwnd = CreateDialog( GetModuleHandle(NULL), MAKEINTRESOURCE( IDD_CONTROL_PANEL ), NULL, ControlPanelProc );if( NULL == hwnd ){DWORD dwerr = GetLastError();
}运行的结果是hwnd == NULL, 并且dwerr == 0(没有错误),请问是怎么回事。
同样的代码在另一个程序里就好使。
hwnd = CreateDialog( GetModuleHandle(NULL), MAKEINTRESOURCE( IDD_CONTROL_PANEL ), NULL, ControlPanelProc );if( NULL == hwnd ){DWORD dwerr = GetLastError();
}运行的结果是hwnd == NULL, 并且dwerr == 0(没有错误),请问是怎么回事。
同样的代码在另一个程序里就好使。
解决方案 »
- Win32 SDK 程 序 中 怎 么 为 Button 添 加 双 击 处 理 函 数
- 请问各位高手,如何用代码来判断计算机是否接入了Internet?
- 我在LIB文件定义的资源在EXE文件中怎样使用
- 在MFC程序中如何由一个类向另一个传递CString变量?
- 想學多線程,希望能有一份最簡單易懂的例子!
- 散分!关于“数据被截断”的问题!
- 写组件遇到了一点问题,有了点看法,各位帮忙看一下!!
- 请问怎么解码DVD格式的文件啊,以前没接触过这方面的东西,现在一点头绪都没有,是否有开源的工程呢?
- CInternetFile::Read第1次调用成功、第二次调用失败
- 怎么真正动态的创建一个COM对象??很急的
- 有关DEF文件和extern "C"
- 如何写一个后台一直运行的程序?
==没有连接的话,编译没有问题啊
我使用win API编程创建无模式对话框的时候使用如下代码
HWND hwnd;
hwnd = CreateDialog( GetModuleHandle(NULL), MAKEINTRESOURCE( IDD_CONTROL_PANEL ), NULL, ControlPanelProc );if( NULL == hwnd ){DWORD dwerr = GetLastError();
}
运行的结果是hwnd == NULL, 并且dwerr == 0(没有错误)这个错误的原因如下:
在我的对话框模版中存在List Control 和 Tree Control,因此在程序初始化的地方要加上: INITCOMMONCONTROLSEX ctrlex;
ctrlex.dwSize = sizeof( INITCOMMONCONTROLSEX );
ctrlex.dwICC = ICC_TREEVIEW_CLASSES; InitCommonControlsEx( &ctrlex ); ctrlex.dwICC = ICC_LISTVIEW_CLASSES;
InitCommonControlsEx( &ctrlex );
并且要链接上
comctl32.lib
才可以创建对话框我把这个问题放一阵子结贴,希望给遇到类似情况的兄弟一些帮助。来者有分,呵呵。
刚刚学到,共同分享