关于HANDLE_##MESSAGE , chHANDLE_DLGMSG宏的理解!!!!

本文介绍了在Windows核心编程中遇到的HANDLE_##MESSAGE和chHANDLE_DLGMSG宏的使用。这两个宏在对话框消息处理中起到关键作用,将消息与对应的处理函数关联起来。当message参数如WM_INITDIALOG时,宏会将其转换为特定形式的处理函数调用。这些定义通常可在头文件中找到。
摘要由CSDN通过智能技术生成

 今天看了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 
);
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值