admin 管理员组文章数量: 887017
02 常见消息
1 打印消息相关信息
1.1 将消息内容转化为字符串
第一步: 定义字符串变量,用来保存转化后的消息
wchar_t szInfo[300]; //定义消息内容变量
第二步:用宽字符格式化函数转化消息内容\
wsprintf(szInfo, "hWnd=%d\tuMsg=%d\twParam=%d, lParam=%d",
hWnd, uMsg, wParam, lParam);
这里说明一下,为什么四个参数都可以直接以16进制形式进行格式化
参数 | 类型 | 本质 |
---|---|---|
hWnd | HWND | 结构体指针 |
uMsg | UINT | unsigned int 无符号整型 |
wParam | WPARAM | typedef UINT_PTR WPARAM; |
lParam | LPARAM | typedef LONG_PTR LPARAM; |
不同的消息,wParam 与 lParam会有不同的意义
2 窗体创建消息
消息名: WM_CREATE
触发对象: 当调用CreateWindow 或 CreateWindowEx创建窗体完后触发
触发时机: 调用以上两个函数完毕后立即触发,此时窗体还未显示
附加参数意义:
wParam: 没用到
lParam: 一个指向 CREATESTRUCT 结构体的指针,类型为LPCREATESTRUCT
注意: 按照一般命名规则,类型名前加LP表示指针类型
CREATESTRUCT 结构体成员
typedef struct tagCREATESTRUCT {
LPVOID lpCreateParams; //指向将被用于创建窗口的数据的指针
HINSTANCE hInstance; //窗体所属应用程序句柄
HMENU hMenu; //窗体菜单句柄
HWND hwndParent; //窗体父窗体句柄
int cy; //窗体高度
int cx; //窗体宽度
int y; //窗体左上角y坐标
int x; //窗体左上角x坐标
LONG style; //窗体显示风格
LPCTSTR lpszName; //指向以结束符('\0')表示结尾的字符串,指定了新窗口的名字。
LPCTSTR lpszClass; //指向以结束符('\0')表示结尾的字符串,指定了新窗口的类名
DWORD dwExStyle; //窗体的扩展样式
} CREATESTRUCT, *LPCREATESTRUCT;
本例测试代码:
case WM_CREATE:
{
wchar_t szcsInfo[300];
LPCREATESTRUCT lpcs = (LPCREATESTRUCT)lParam;
wsprintf(szcsInfo, L"窗体类名: %s, 窗体名称: %s\n",
lpcs->lpszClass, lpcs->lpszName);
OutputDebugString(szcsInfo);
break;
}
运行效果截图:
注意:
lParam是一个结构体指针,在使用时注意强制转化为相应的类型
LPCREATESTRUCT lpcs = (LPCREATESTRUCT)lParam;
结构体类型: CREATESTRUCT
相应的结构体类型指针: LPCREATESTRUCT
在看帮助文档的时候,注意看清楚
版权声明:本文标题:C++ win32编程 02 常见消息 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726376503h948000.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论