2.02 窗口创建
CreateWindow / CreateWindowEx
// https://blog.csdn.net/dengkangou9055/article/details/102069060
CreateWindowEx(
DWORD dwExStyle, // 窗口扩展风格
LPCSTR lpClassName, // 已经注册的窗口类名称
LPCSTR lpWindowName, // 窗口标题栏名称
DWORD dwStyle, // 窗口基本风格
int X, // 左上角坐标 + 宽高
int Y,
int nWidth,
int nHeight,
HWND hWndParent, // 父窗口句柄
HMENU hMenu, // 窗口菜单句柄
HINSTANCE hInstance, // 应用程序实例句柄
LPVOID lpParam); // 窗口创建时附加参数
// 创建成功时 返回窗口句柄
窗口类查询(hInstance 和 lpszClassName)过程
系统根据传入的窗口类名称,在应用程序局部窗口类中查找,如果找到执行2,未找到执行3。
比较局部窗口类与创建窗口时传入的HINSTANCE变量。如果发现相等,创建和主册的窗口类在同一模块,创建窗口返回。如果不相等,继续执行3。
在应用程序全局窗口类,如果找到,执行4,如果未找到执行5。
使用找到的窗口类的信息,创建窗口返回。
在系统窗口类中查找,如果找到创建窗口返回,否则创建窗口失败。
即: 先在局部窗口类找, 然后去全局窗口类找 窗口类名称以及HINSTANCE变量
创建窗口过程
- 找到窗口类
- 申请内存,将窗口数据信息存入内存 返回这块内存的句柄, 失败则返回NULL
子窗口
需要设置父窗口句柄
风格增加 WS_CHILD | WS_VISIBLE