SDK编程的问题。
学习SDK编程,写了个显示窗口的测试程序,可是就是没有窗口出现,我漏了什么吗?请高手指点。
LRESULT WINAPI Test_WndProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
LRESULT lResult=0;
switch(uMsg)
{
case WM_PAINT:
break;
case WM_CHAR:
break;
case WM_DESTROY:
PostQuitMessage(0);
default:
lResult=DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return lResult;
/*
switch(uMsg)
{
HANDLE_MSG(hwnd,WM_SIZE,Test_OnSize);
HANDLE_MSG(hwnd,WM_MOUSEMOVE,Test_OnMouseMove);
}
return(DefWindowProc(hwnd,uMsg,wParam,lParam));
*/
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nShwoCmd)
{
WNDCLASSEX wc;
ATOM atomTest;
ZeroMemory(&wc,sizeof(wc));
wc.cbSize=sizeof(wc);
wc.lpszClassName="Test";
wc.hInstance=hInstance;
wc.style=CS_DBLCLKS;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hCursor=LoadCursor(hInstance,IDC_ARROW);
wc.hbrBackground=HBRUSH(COLOR_WINDOW+1);
wc.hIconSm=wc.hIcon;
wc.lpfnWndProc=Test_WndProc;
atomTest = RegisterClassEx(&wc);
MSG msg;
if(atomTest==INVALID_ATOM)
{
;
}
else
{
HWND hwnd=CreateWindowEx(0,MAKEINTRESOURCE(atomTest),NULL,
WS_OVERLAPPED,CW_USEDEFAULT,CW_USEDEFAULT,400,400,
NULL,NULL,hInstance,NULL);
if(NULL!=hwnd)
{
MessageBox(hwnd,"hello","OK",NULL);
}
while(GetMessage(&msg,hwnd,0,0))
{
DispatchMessage(&msg);
}
}
return 0;
}
问题点数:20、回复次数:4Top
1 楼delphihero(何去何从)回复于 2002-05-11 16:09:18 得分 0
RegisteClass(&wc);
HWND hwnd=CreateWindowEx("Test",MAKEINTRESOURCE(atomTest),NULL,
WS_OVERLAPPED,CW_USEDEFAULT,CW_USEDEFAULT,400,400,
NULL,NULL,hInstance,NULL);
Top
2 楼x_xy(sunny)回复于 2002-05-11 16:20:39 得分 0
这样是不行的吧?
我发现是没有执行ShowWindow。Top
3 楼kof99th(小虫)回复于 2002-05-11 16:30:40 得分 10
when a get a window handle,use ShowWindow and UpdateWindow to show this window at screen.Top
4 楼zhwangquan(聪明的大傻瓜)回复于 2002-05-11 16:41:00 得分 10
在CreateWindowEx后添加ShowWindow(hwnd,nShwoCmd);
UpdateWindow (hwnd);Top




