窗口类、窗口类对象与窗口三者之间关系
2008-11-24 19:38:12 来源:WEB开发网现在我们就实现了一个窗口类:CWnd。但我们知道如果要以类的方式来完成窗口的创建、显示和更新操作,那么首先还需要编写一个WinMain函数。读者并不需要记忆这个函数的写法,只要机器上有MSDN就可以了,在MSDN中找到该函数的帮助文档,直接复制其定义即可。这里,我们只是想讲解在这个函数内部所做的工作,并不是真正的实现,因此只是写出其主要的代码,如例3-20所示。
例3-20
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // command line
int nCmdShow // show state
)
{
//首先是设计窗口类,即定义一个WNDCLASS,并为相应字段赋值。
WNDCLASS wndcls;
wndcls.cbClsExtra=0;
wndcls.cbWndExtra=0;
......
//注册窗口类
RegisterClass(&wndcls);
//创建窗口
CWnd wnd;
wnd.CreateEx(...);
//显示窗口
wnd.ShowWindow(SW_SHOWNORMAL);
//更新窗口
wnd.UpdateWindow();
//接下来就是消息循环,此处省略
......
return 0;
}
请读者回想一下第1章中我们利用SDK编程时为创建窗口、显示窗口和更新窗口所编写的代码(如例3-21所示),并比较例3-20和例3-21这两段代码的区别。
例3-21
HWND hwnd;
hwnd=CreateWindowEx();
::ShowWindow(hwnd,SW_SHOWNORMAL);
::UpdateWindow(hwnd);
更多精彩
赞助商链接