回 帖 发 新 帖 刷新版面

主题:关于ERROR_INVALID_WINDOW_HANDLE(窗口句柄无效)的处理方法

HWND hTest;
hTest=CreateWindow(TEXT("button"),TEXT("TEST"),WS_CHILD|BS_PUSHBUTTON|WS_VISIBLE,20,20,40,20,hWnd,(HMENU)ID_TEST1,hInst,NULL);

以上是我程序里的2句话,都在WndProc中。程序编译生成均无错误,但在执行时出现ERROR_INVALID_WINDOW_HANDLE(窗口句柄无效),请问各位大大我的问题出在了哪里,应该怎摸解决
[em10]

回复列表 (共4个回复)

沙发

我记得我回答过了啊~自己搜索一下!和你同名的一个问题~看解答去!

板凳

谢谢了,我这就去找

3 楼

老大,你那种解决方法是用的MFC吧,我没用MFC,直接调用API的方式的这种错误应该怎摸处理呢???

4 楼

以下是窗口处理函数的大致内容:(除了CreateWindow一小部分其他是.net2003中VC的WIN32项目生成的)
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;

char a[4];
long b;

HWND hButton;

switch (message) 
{
case WM_CREATE:
hButton=CreateWindow("button","button",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,10,10,20,15,
hWnd,(HMENU)ID_BUTTON,hInst,NULL);

b=GetLastError();
sprintf(a,"%d",b);
MessageBox(hWnd,a,"...",MB_OK);

break;
case WM_COMMAND:
wmId    = LOWORD(wParam); 
wmEvent = HIWORD(wParam); 
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: 在此添加任意绘图代码...
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册