上一篇我们已经介绍了关于窗口处理函数的知识。本篇我们说一下注册窗口类,创建窗口和显示窗口的内容。
前文
窗口创建过程
-
定义WinMain函数
-
定义窗口处理函数(自定义,处理消息)
-
注册窗口类(向操作系统写入一些数据)
-
创建窗口(内存中创建窗口)
-
显示窗口(绘制窗口的图像)
-
消息循环(获取/翻译/派发消息)
-
消息处理
正文
窗口类概念
窗口类包含了窗口的各种参数信息的数据结构
每一个窗口都有窗口类,窗口是根据窗口类建立出来的
每一个窗口都有一个名称,使用前必须注册到系统中
窗口类分为系统窗口类和程序窗口类
系统窗口类
系统已经注册好的窗口类,不需要程序再注册了
可以直接使用不需要 ResigerClass将窗口类写入系统内核里面
程序窗口类
全局程序窗口类:由用户自己定义,当前程序所有模块都可以使用
局部程序窗口类:由用户自己定义,当前程序模块都可以使用,需要注册类,把你的窗口注册到程序的内核中,全局窗口类可以实现的操作局部也都可以,所以我们一般只需要使用局部的就行了
创建窗口
//WNDCLASSEXW wcex 声明窗口类
//窗口的属性
//DWORD dwstyle 窗口扩展风格
//LPCTSTR IpclassName 已经注册的窗口类名称
//LPCTSTR IpWindowName 窗口标题栏的名字
//DWORD dystyle 窗口的基本风格
//int x ,y 相对于屏幕左上角的位置
// int nWidth,nHeight 窗口的宽度和高度
// HWND hWndParent 窗口的父窗口句柄
// HMENU hMenu //窗口菜单句柄
//HINSTANCE hinstance 应用程序实例句柄
//LPVOID 窗口创建是的附件参数
创建窗口函数
CreateWindowExW(
_In_ DWORD dwExStyle,
_In_opt_ LPCWSTR lpClassName,
_In_opt_ LPCWSTR 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);
- dwExStyle 样式一般给0
- lpClassName指定窗口类的名称,即窗口类中的lpszClassName
- lpWindowName指定窗口的名字
- dwStyle指定创建的窗口样式,主要是窗口显示些什么东西
- x,y,nWidth,nHeight左上角坐标,长、宽
- hWndParant指定被创建窗口的父窗口句柄
- hMenu指定窗口菜单的句柄
- hInstance指定窗口所属的应用程序实例的句柄
- lpParam多数窗口将这个设为NULL
将窗口创建完之后还有最重要的一部就是将你创建的窗口打入到内存。
RegisterClassExW(&wcex);
显示窗口
//显示窗口
ShowWindow(hwnd, SW_SHOW); //sw_show 按照你的设值显示窗口
//ShowWindow(child1, SW_SHOW);
//把窗口在绘画一遍
UpdateWindow(hwnd);
卷尾
本篇的内容相对较多,下篇文章又不不知道什么时候发了。。。。。