1.1 Windows核心编程-几个宏的解读
来源:互联网 发布:python 论坛 编辑:程序博客网 时间:2024/06/17 03:25
示例代码
//代码示例片段1DWORD systemLocale = MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL);//代码示例片段2switch (uMsg) { chHANDLE_DLGMSG(hwnd, WM_INITDIALOG, Dlg_OnInitDialog); chHANDLE_DLGMSG(hwnd, WM_COMMAND, Dlg_OnCommand); case ESM_POKECODEANDLOOKUP: SetDlgItemInt(hwnd, IDC_ERRORCODE, (UINT) wParam, FALSE); FORWARD_WM_COMMAND(hwnd, IDOK, GetDlgItem(hwnd, IDOK), BN_CLICKED, PostMessage); SetForegroundWindow(hwnd); break; }
MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL);
宏展开:
#define MAKELANGID(p,s) ((((WORD)(S)) << 10) | (WORD)(p))//转换成系统默认的语言
chHANDLE_DLGMSG(hwnd, WM_INITDIALOG, Dlg_OnInitDialog)
// 展开#define chHANDLE_DLGMSG(hWnd, message, fn) \ case (message): return (SetDlgMsgResult(hWnd, uMsg, \ HANDLE_##message((hWnd), (wParam), (lParam), (fn))))/* 宏在程序编译的时候会展开,所以这个宏会直接展开成一个 case 语句,该宏放在 switch语句中## 符号是拼接符,如message消息是 WM_COMMAND,则HANDLE_##message展开为:HANDLE_WM_COMMAND.*/SetDlgMsgResult( HWND hwnd, // Handle to the dialog box int msg, // Specifies the zero-based offset to the value to be set. Valid values are in the range zero through the number of bytes of extra window memory, minus four. LONG result // Specifies the replacement value. )// 将对应窗口的特定消息交由指定的消息处理函数处理
HANDLE_WM_COMMAND
宏展开语句为:#define HANDLE_WM_COMMAND(hwnd, wParam, lParam, fn) \ ((fn)((hwnd), (int)(LOWORD(wParam)), (HWND)(lParam), (UINT)HIWORD(wParam)), 0L)
在消息处理函数中,wParam的低16位是消息命令ID, 高16位是对应的通知码,lParam 是发送命令消息的子窗口句柄
阅读全文
0 0
- 1.1 Windows核心编程-几个宏的解读
- 《解读Windows 核心编程》 之 FormatMessage()的用法
- Windows核心编程 作业--jobLab程序解读
- windows核心编程 宏
- Windows核心编程的官方网站
- windows核心编程--windows程序的执行
- 【Windows 核心编程】Windows 核心编程 -- 进程
- 【Windows核心编程】Windows核心编程 -- 作业
- windows核心编程--线程的同步
- windows 核心编程 线程的优先级
- windows核心编程--线程的同步
- 《windows 核心编程》上的一个批处理
- 转至windows核心编程 线程的基础知识
- windows核心编程--线程的同步
- 管道的使用---参见Windows核心编程
- windows核心编程-获得环境变量的方法
- windows核心编程-线程的TLS
- windows核心编程-线程的亲缘性
- 一次启停引发的故障
- 抽象类不能进行实例化吗?
- interrupt遇到wait抛异常InterruptedException
- mysql中文编码问题
- 常见的 HTTP 状态码
- 1.1 Windows核心编程-几个宏的解读
- iOS的自动打包 【 Xcode + git + jenkins 】
- java的动态代理机制详解
- Android7.1 Selinux使用
- 四大组件之Activity
- 存储过程和视图的区别
- 一个找不同小游戏(游戏图片需自找)
- ckeditor 上传图片返回的js代码无效
- 开通