登录  /  注册

Win32 SDK基础(七)之如何创建一个窗口的子窗口的案例

黄舟
发布: 2017-06-06 09:47:03
原创
4389人浏览过

        什么是子窗口?当我们在点击windows窗口的某个按钮时,比如点击窗口的关闭按钮,往往会弹出一个窗口来提示相关信息,类似这种弹出窗口就是主窗口的子窗口。我们创建子窗口时,也是使用createwindow或者createwindowex api
        我们来看下createwindow的函数原型:

HWND WINAPI CreateWindow(
_In_opt_ LPCTSTR lpClassName,
_In_opt_ LPCTSTR lpWindowName,
_In_ DWORD dwStyle,
_In_ int x,
_In_ int y,
_In_ int nWidth,
_In_ int nHeight,
_In_opt_ HWND hWndParent,
_In_opt_ HMENU hMenu,
_In_opt_ HINSTANCE hInstance,
_In_opt_ LPVOID lpParam
);
登录后复制

这里我们只介绍下第三个参数dwStyle,设置窗口的风格。我们在本专栏创建的第一个Windows窗口时,将该值设置为WS_OVERLAPPEDWINDOW,这个设置的意思是允许窗口重叠。我们想要创建子窗口,也是通过设置窗口的WS_CHILD风格实现。而需要显示子窗口,还需要添加WS_VISIBLE风格。若想以弹出的方式显示子窗口(类似关闭确认的对话框),需要添加WS_POPUP风格。
我们在本专栏介绍创建窗口的代码之上,在主函数中增加如下代码:

int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nCmdShow)
{
// TODO: Place code here.

g_hInstance = hInstance;
BOOL nRet = Register("Main", WndProc);
if (!nRet)
{
MessageBox(NULL, "注册失败", "Infor", MB_OK);
return 0;
}
HWND hWnd = CreateMain("Main", "window");

CreateWindow("Main", "子窗口",
WS_OVERLAPPEDWINDOW|WS_CHILD|WS_VISIBLE|WS_POPUP, CW_USEDEFAULT, CW_USEDEFAULT, 400, 200,
hWnd, NULL, g_hInstance, NULL);


Display(hWnd);
Message();
return 0;
}
登录后复制

        注意第16行代码,就是我们利用CreateWindow创建子窗口,运行程序,效果如下:


以上就是Win32 SDK基础(七)之如何创建一个窗口的子窗口的案例的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号