您的位置:首页 > 其它

创建windows窗口后没有显示(DefWindowProc)

2014-08-16 10:11 176 查看
前段时间第一次敲了一边windows窗口创建的代码,发现运行后,窗口没有显示出来。

调试之后发现CreateWindow根本没有创建成功, 然后发现有调用到WinProCallBack,再仔细检查代码发现,自己没有在WinProCallBack定义默认的处理函数,也就是DefWindowProc,当然了,也要好好研究下为什么没有定义DefWindowProc就会出现窗口没有出来,但是一直可以运行的状态。

<span style="white-space:pre">	</span>ShowWindow(hwnd, nShowCmd);
UpdateWindow(hwnd);

MSG msg = {0};
while(msg.message != WM_QUIT)
{
if(PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}


首先,并没有在ShowWindow和UpdateWindow加判断条件直接进入消息循环,但是没有窗口,也就没有窗口的消息。

其次,为什么没有出现窗口,因为在CreateWindow的时候,会发送4个WM消息,调用WinProCallBack,我们并没有对这4个WM消息的处理,同时也没有交给系统去做Create的相关工作,导致创建窗口失败。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: