CreateDialog 失败,GetLastError返回0 ,怎么回事?

FatGarfield 2005-12-08 03:15:25
我想创建一个无模式对话框,

HWND hwnd;
hwnd = CreateDialog( GetModuleHandle(NULL), MAKEINTRESOURCE( IDD_CONTROL_PANEL ), NULL, ControlPanelProc );

if( NULL == hwnd ){

DWORD dwerr = GetLastError();
}

运行的结果是hwnd == NULL, 并且dwerr == 0(没有错误),请问是怎么回事。
同样的代码在另一个程序里就好使。
...全文
527 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wotur 2005-12-09
  • 打赏
  • 举报
回复
学习,顺便混分!
huaren801007 2005-12-09
  • 打赏
  • 举报
回复
GetModuleHandle(NULL) 返回可执行文件的基地址
刚刚学到,共同分享
lzzqqq 2005-12-09
  • 打赏
  • 举报
回复
GetLastError()==0说明操作成功了啊.
FatGarfield 2005-12-09
  • 打赏
  • 举报
回复
to happyparrot(快乐鹦鹉)
我使用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
才可以创建对话框

我把这个问题放一阵子结贴,希望给遇到类似情况的兄弟一些帮助。来者有分,呵呵。

Torch009 2005-12-08
  • 打赏
  • 举报
回复
操,最烦这种混饭吃的了,瞎搅和。
2c18 2005-12-08
  • 打赏
  • 举报
回复
呵呵,xx & jf
wxshzf 2005-12-08
  • 打赏
  • 举报
回复
学习,顺便接分
vcmute 2005-12-08
  • 打赏
  • 举报
回复
居然忽略掉系统的Lib?

一般用CDialog.Create
bobob 2005-12-08
  • 打赏
  • 举报
回复
楼主出手这么大方
bobob 2005-12-08
  • 打赏
  • 举报
回复
up
oyljerry 2005-12-08
  • 打赏
  • 举报
回复
没有库,link的时候会提示 unresolved external syboml
Kudeet 2005-12-08
  • 打赏
  • 举报
回复
ft
快乐鹦鹉 2005-12-08
  • 打赏
  • 举报
回复
没有联接 comctl32.lib
==没有连接的话,编译没有问题啊
koko1998 2005-12-08
  • 打赏
  • 举报
回复
恭喜楼主。
FatGarfield 2005-12-08
  • 打赏
  • 举报
回复
这个错误的问题是没有联接 comctl32.lib,现在解决了,谢谢 happyparrot(快乐鹦鹉)
快乐鹦鹉 2005-12-08
  • 打赏
  • 举报
回复
你这个工程和其它工程有何区别?
快乐鹦鹉 2005-12-08
  • 打赏
  • 举报
回复
GetModuleHandle(NULL)返回什么?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧