关于HANDLE_##MESSAGE , chHANDLE_DLGMSG宏的理解!!!!
来源:互联网 发布:qq飞车抽奖软件 编辑:程序博客网 时间:2024/05/04 14:24
今天看了windows核心编程。里面用到了HANDLE_##MESSAGE这个宏,特意查看了下,原来如下:
#define chHANDLE_DLGMSG(hWnd, message, fn) /
case (message): return (SetDlgMsgResult(hWnd, uMsg, /
HANDLE_##message((hWnd), (wParam), (lParam), (fn))))
对于HANDLE_##message 中##,实际上编译器对这个符号的处理喊简单,就是讲两个字符串进行连接。
比如当messge = WM_INITDIALOG的时候,他就变成了如下形式:
#define HANDLE_WM_INITDIALOG(hwnd, wParam, lParam, fn) /
(LRESULT)(DWORD)(UINT)(BOOL)(fn)((hwnd), (HWND)(wParam), lParam)
而想上面这些宏都是在windowsx.h中已经定义好了的!!!!
而
SetDlgMsgResult( HWND hwnd, int msg, LONG result );
Parameters
- hwnd
- Handle to the dialog box.
- 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.
- result
- Specifies the replacement value.
这个函数的作用就是讲对话框上的消息交给哪个消息处理函数来处理!
无非就是调用自己定义的消息处理函数!!
很容易理解!
所在目录:(自己机器上)
f:/vs2005/vc/platformsdk/include/windowsx.h
- 关于HANDLE_##MESSAGE , chHANDLE_DLGMSG宏的理解!!!!
- HANDLE_##message
- HANDLE_##message
- #define chHANDLE_DLGMSG(hwnd, message, fn) 宏定义
- 关于chHANDLE_DLGMSG
- chHANDLE_DLGMSG 对话框消息处理宏的一点点心得
- 关于android Handler Message Looper的理解
- [receiver message] 的理解
- Handler、Looper、Message的理解
- ACE_Reactor的各种handle_*挂钩方法返回值意义
- 关于#pragma message的转载
- 关于宏的理解
- Message,MessageQueue,Looper,Handler的理解
- JVM(Java Message Service)的理解
- Handler、HandlerThread、Message之间的关系理解
- android hanlder loop message的理解
- Handler,Looper,Message的深入理解
- Handler Looper Message MessageQueue的理解
- hibernate的检索策略
- 小览call stack(调用栈) (一)
- 企业视频会议系统中的三大热门技术
- 七宝老街 都市的热闹庙会
- rrdtool 教學
- 关于HANDLE_##MESSAGE , chHANDLE_DLGMSG宏的理解!!!!
- 系统日志数据分析
- 【IE6 BUG大全】position:fixed在IE6下的实现
- INI
- Andres's first Blog
- JBPM实践之并发子流程的实现
- 程序员的十层楼
- 设计模式学习笔记之建造者模式
- 如何使用BBC英语学习频道