juliusun.com
窗口主要类型有:层叠窗口、弹出窗口、子窗口
子窗口以后介绍
层叠窗口(WS_OVERLAPPED风格)和弹出窗口(WS_POPUP风格)都是顶层窗口,没有父窗口(严格来说父窗口是屏幕,由于屏幕有点特殊,所以把他们算作顶层窗口,多数资料都是这么讲解的)。子窗口(WS_CHILD风格)是显示在父窗口之中的窗口。子窗口这里不讨论。层叠窗口和弹出窗口的不同点是,层叠窗口有标题栏,而弹出窗口没有。正常情况下,层叠窗口有边框,弹出窗口没有,但是弹出窗口可以通过其它标志边框,所以边框问题上,不算不同。
CreateWindowEx的函数原型为:
HWND WINAPI CreateWindowEx(
DWORD dwExStyle,
LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam
);
CreateWindowEx函数的第四个参数dwStyle是指定窗口风格,也可以决定窗口类型:层叠、弹出或子窗口。参考第9节“Windows窗体的创建”的代码,本节的代码改动都是相对于第9节。
支持鼠标拖动改变窗口大小的窗口,当鼠标移动到边框上时,鼠标图标变化成两个反方向的剪头,此时按住鼠标,拖动鼠标即可实现改变窗口大小。如果想让窗口支持此功能,须在窗口风格上加上WS_THICKFRAME(或WS_SIZEBOX,通过查看源码发现,这两个宏值相等)标志。
第9节我们已经创建了层叠窗口,此节,我们创建一个弹出式窗口。本节假设你已经学习过第9节,同时由于篇幅关系,本节不在提供代码。把第9节的代码
HWND hWnd=CreateWindowEx(0, strWndClass/*窗口类名,创建前必须注册过*/, strTitle/*标题*/,WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX/*风格*/, 200/*窗口相对于屏幕横座标*/, 100/*竖座标*/, 900/*宽度*/, 500/*高度*/, NULL, NULL, hInstance, NULL);
改为
HWND hWnd = CreateWindowEx(0, strWndClass, strTitle, WS_POPUP, 200, 200, 900, 500, NULL, NULL, hInstance, NULL);
注意,WS_OVERLAPPED表示窗口类型为层叠窗口,WS_POUPU表示窗口类型为弹出式。其它标志不影响窗口类型。其它标志忽略即可。
由于产生的窗口效果就是一片白色,本节不再截图。
视频教程作者QQ:3304576112 交流QQ群:316930386 本教程内容由 juliusun.com 保留版权,请匆复制传播。