CreateWindow在什么情况下返回0??

ericqxg007 ericqxg007 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在使用CreateWindow函数的时候,得到的hWnd总是返回0。所以程序一直都没有能够运行起来。请问一下造成这样的原因是什么?
(自己搜到一篇关于CreateWindow这方面的解释是:
///////////////////////////////////////////
5.1前,为了模拟一个程序的测试,从那个程序里copy出来一段代码,功能就是调用CreateWindow创建一个窗口;但是怎么也通过不了,CreateWindow老是返回NULL;查了MSDN,上面的代码也基本一样,没找到任何问题,郁闷的要命。
STDMETHODIMP CSetReady::Init( long hInst)
{
HWND s_wndPump = NULL;

WNDCLASS wc;
wc.style = 0;
wc.lpfnWndProc = PumpWndProc;
wc.cbClsExtra = wc.cbWndExtra = 0;
wc.hInstance = (HINSTANCE)hInst;
wc.hIcon = NULL;
wc.hCursor = NULL;
wc.hbrBackground = NULL;
wc.lpszMenuName = NULL;
wc.lpszClassName = _T("Test_Window");

RegisterClass(&wc);
s_wndPump = CreateWindow(wc.lpszClassName, NULL,
WS_DISABLED, 0, 0, 0, 0, NULL, NULL, wc.hInstance, NULL);

return S_OK;
}
原来问题出在传给WNDCLASS的窗口处理函数PumpWndProc上;调用CreateWindow时,CreateWindow会调用一次PumpWndProc,并且要求PumpWndProc返回TRUE。由于代码是copy过来的所以调试CreateWindow,没注意PumpWndProc的返回是什么,造成一直在CSetReady::Init里找原因,白忙活了半天。

//////////////////////////http://blog.csdn.net/toleon/archive/2005/05/24/372491.aspx

照它上面的解释是我的窗口处理函数的问题吗?于是我想跟踪一下程序运行 在我自己的WndProc中加了断点(不过好像单步执行的时候,并没有看见在CreateWindow函数中显示的调用了WndProc)那我该怎么修改我的程序呢?另外怎么才能知道在调用CreateWindow函数的时候WndProc 返回的值。
下面是我自己的程序
大家帮看看哪里出错了
//////////////
HWND hWnd;
hWnd = CreateWindow("5_1",
"Program",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
0,
CW_USEDEFAULT,
0,
NULL,
NULL,
hInstance,
NULL);
if (!hWnd)
return FALSE;
hWndMain = hWnd;
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
////////////////////
//下面是WndProc函数
long WINAPI WndProc(HWND hWnd, UINT iMessage, UINT wParam, LONG lParam)
{
HDC hDC;
PAINTSTRUCT ps;
HPEN hPen;
HBRUSH hBrush;

switch (iMessage)
{
case WM_KEYDOWN :
....
break;
case WM_KEYUP :
InvalidateRect(hWnd, NULL, FALSE);
break;
case WM_CHAR :
.....
break;
case WM_PAINT :
.....
break;
case WM_DESTROY :
PostQuitMessage(0);
return 0;
default :
return DefWindowProc(hWnd, iMessage, wParam, lParam);

}
return 0;
}

///
哪位大哥能说说~~~ 先谢谢了
...全文
评论 7
收藏 已收藏
分享
返回顶部
ericqxg007
VC/MFC 16,550 成员 421,606 内容