惧留孙网

juliusun.com

惧留孙网 > 在线教程 > WIN32 SDK教程

窗体风格

  窗口主要类型有:层叠窗口、弹出窗口、子窗口

  子窗口以后介绍

  层叠窗口(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 C语言窗口程序学习群 本教程内容由 juliusun.com 保留版权,请匆复制传播。

上一页  目录  下一页
抖音
©2015-2024 惧留孙网 juliusun.com

京ICP备15039193号-1

首页 教程 下载 文章 聊天 我的