windows窗口
前言
额总的来说c++的语法是又看了一遍~~猪脑子啊有些就是没记住。
先看看windows的api,然后玩玩老的mfc先吧。
引用
- 微软开发文档
文档地址
正文
白天没起来,下午game了一会,然后又刷手机。
windows程序设计就是c++类的形式封装成windowsAPI,然后设计的应用程序框架。减少程序开发的工作量。
对于没有图形化的命令行界面,程序入口都在main函数
而对于windows而言,它的入口在WinMain。
对于winmain的介绍,在没有引用文件下,可以去官方文档查看
1 | int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow); |
- hInstance 称为“实例句柄”或“模块句柄”。操作系统使用此值在内存中加载可执行文件时标识可执行文件 (EXE) 。 某些Windows函数需要实例句柄,例如加载图标或位图。
- hPrevInstance 没有意义。 它在 16 位Windows中使用,但现在始终为零。
- pCmdLine 包含命令行参数作为 Unicode 字符串。
- nCmdShow 是一个标志,指示主应用程序窗口是最小化、最大化还是正常显示。
这是大概的情况。然后要使用windows的功能,自然要引用头文件windows.h
1 |
|
参数暂时没有做,然后如果想要标准输入输出也可以用<stdio.h>or<iostream>
因为是以c++类的方式封装,在名字上会有相似
1 |
|
可以右键一直查询定义,也可以直接在文档搜,本质上是一个结构体。
1 | typedef struct _WNDCLASS { |
英语不好多翻译一下。。。windows的封装一堆参数太哈人了。
题外话,空项目创建写代码如果编译有问题,可以看我另一篇的解决方法。
可以打开这个功能,有的时候方便直接看封装好的是如何定义的。
1 |
|
窗口就是这玩意,不难理解也不难看出
句柄[handle]:二级指针、资源的编号。窗口句柄、文件句柄、数据库连结句柄。
至于c++窗口类对象和窗口之间的关系,就是对象内置窗口句柄,窗口点击关闭之后,对象不一定就释放了,但是对象的生命周期结束了,窗口就一定销毁了。
windows常见数据类型
| code | 含义 |
|---|---|
| DWORD | 32字节无符号整型数据 |
| DWORD32 | 32字节无符号整型数据 |
| DWORD64 | 64字节无符号整型数据 |
| HANDLE | 对象句柄,最基本的句柄类型 |
| HICON | 图标的句柄 |
| HINSTANCE | 程序实例的句柄 |
| HKEY | 注册表键的句柄 |
| HMODULE | 模块的句柄 |
| HWND | 窗口的句柄 |
| INT | 32位符号整型数据类型 |
| INT_PTR | 指向INT的指针类型 |
| INT32 | 32位符号整型 |
| INT64 | 64位符号整型 |
| LONG32 | 32位符号整型 |
| LONG64 | 64位符号整型 |
| LPARAM | 消息的L参数 |
| WPARAM | 消息的w参数 |
| LPCSTR | windows,ANSI,字符串常量 |
| LPCTSTR | 根据环境配置,如果定义了Unicode宏,则是LPCWSTR,否则LPCSTR |
| LPCWSTR | Unicode字符串常量 |
| LPDWORD | 指向DWORD类型的指针 |
| LPSTR | windows,ANSI,字符串变量 |
| LPTSTR | 根据环境配置,如果定义了Unicode宏,则是LPWSTR,否则LPSTR类型 |
| LPWSTR | Unicode字符串变量 |
| SIZE_T | 表示内存大小,以字节位单位,其最大值是CPU最大寻址范围 |
| TCHAR | 如果定义了Unicode,则为WCHAR |
| WCHAR | 16位Unicode字符 |
windows命名
| 前缀 | 含义 | 前缀 | 含义 |
|---|---|---|---|
| a | 数组array | b | 布尔值bool |
| by | 无符号字符[字节] | c | 字符[字节] |
| cb | 字节计数 | rgb | 保存颜色值的长整型 |
| cx,cy | 短整型[计算x,y的长度] | dw | 无符号长整型 |
| fn | 函数 | h | 句柄 |
| i | 整型 | m_ | 类的数据成员member |
| n | 短整型或整型 | np | 近指针 |
| p | 指针 | l | 长整型 |
| lp | 长指针 | s | 字符串string |
| sz | 以0结尾的字符串 | tm | 正文大小 |
| w | 无符号整型 | x,y | 无符号整型[表示x,y的坐标] |
总结
用空项目套窗口太累了。。。基础窗口全要自己写,而且参数是真的多。
先了解基本原理吧。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Box'Blog!
评论






