The WM_COMMAND message is sent when the user selects a command item from a menu, when a control sends a notification message to its parent window, or when an accelerator keystroke is translated. WM_COMMAND消息在三种情况下被发送: 1.用户选择一个菜单项 2.控件向自己的父窗口发送通知消息 3.加速键被按下三种情况对应的wParam和lParam参数用法如下(MSDN):

Message Source wParam (high word) wParam (low word) lParam 
Menu 0 Menu identifier (IDM_*) 0 
Accelerator 1 Accelerator identifier (IDM_*) 0 
Control Control-defined notification code Control identifier Handle to the control window

注意一下wParam参数,被分为高字和低字,那当我们需要自己send WM_COMMAND 消息时,怎样来制作wParam参数呢?可以使用MAKEWPARAM宏,下面是我项目中的一句代码: SendMessage(WM_COMMAND,MAKEWPARAM(IDC_BUTTON_AMEND,BN_CLICKED),(LPARAM)listview->m_btnAmend.m_hWnd);     //发送一个按钮单击消息。

类似的宏还有: MAKELONG  制作一个长整型的参数

MAKELPARAM  制作一个lParam参数

MAKELRESULT 制作一个从窗口程序或者回调函数返回的32位值

MAKEWPARAM 宏 及MAKELONG ,MAKELPARAM,MAKELRESULT相关推荐

  1. MFC和c#中模拟对另一进程的窗口按钮点击

    1. 在自动化测试中经常要模拟窗口按钮的点击. 参考文章:http://blog.csdn.net/blackboyofsnp/article/details/3372719 有时我们需要这么做, 手 ...

  2. 必备绝技--Hook大法(上)

    必备绝技--Hook大法 标 题: [原创]必备绝技--Hook大法( 上 ) 作 者: Lvg 时 间: 2007-04-08,22:23 链 接: http://bbs.pediy.com/sho ...

  3. Windows xp下IDT Hook和GDT的学习

    一.前言   对于IDT第一次的认知是int 2e ,在系统调用的时候原来R3进入R0的方式就是通过int 2e自陷进入内核,然后进入KiSystemService函数,在根据系统服务调用号调用系统服 ...

  4. 6.7 【实例】窗口查看器

    6.7.1 窗口界面 程序06WinLooker中包含4个类,CMyApp(应用程序类).CMainWindow(主窗口类).CWindowInfo(管理目标窗口的类)和CMyButton(按钮类). ...

  5. 《Windows 程序设计(第3版)》——6.7 【实例】窗口查看器

    本节书摘来自异步社区<Windows 程序设计(第3版)>一书中的第6章,第6.7节,作者:王艳平 , 张铮著,更多章节内容可以访问云栖社区"异步社区"公众号查看 6. ...

  6. VC中的宏 (#define) 与预处理 (#if/#ifdef/#pragma) 的使用方法总结。

    C/C++ 预定义宏 例子:C/C++ 预定义宏的取值 C/C++ 预定义宏用途:诊断与调试输出 CRT 的诊断与调试输出:assert, _ASSERT/_ASSERTE, _RPTn/_RPTFn ...

  7. BYTE,WORD,DWORD的大小及一些特殊的高低位宏(取高位 取低位)

    一.定义 在VC6.0的Microsoft Visual Studio/VC98/Include/windef.h 里,定义了BYTE,WORD,DWORD typedef unsigned long ...

  8. MAKEWORD、HIWORD、LOWORD 宏定义

    MAKEWORD 宏定义 typedef unsigned char BYTE; typedef unsigned short WORD; typedef unsigned long DWORD; t ...

  9. C++ 笔记(32)— 预处理、文件包含include、宏替换define、条件包含ifndef、define

    C/C++预处理器在源代码编译之前对其进行一些文本性质的操作. 它的主要任务包括删除注释 . 插入 #include 指令包含的文件的内容 . 定义和替换由 #defme 指令定义的符号以及确定代码的 ...

最新文章

  1. 生活实遇记-Kindle好久没用,屏幕一直处于电池状态,怎么解决?
  2. 【代码笔记】iOS-在导航栏中显示等待对话框
  3. mysql 辅助索引_MySQL InnoDB B+tree索引
  4. vue-awesome-swiper 的使用
  5. xml语言与html,XML与HTML的分析处理
  6. mysql 内存溢出_mysql - MySQL在非常大的表上计算性能 - 堆栈内存溢出
  7. 软件工程---4.需求工程
  8. 总结Python的几点语言特性
  9. This关键字的一些更新的理解
  10. 基于springboot+vue的大学生健康档案管理系统
  11. 小米路由插件二维码2020_路由器如何禁止抖音、斗鱼、王者荣耀等app联网
  12. shell 脚本返回上级目录_cmd返回上级目录
  13. python QQ自动添加好友
  14. wps建立的文件后缀名为docx,写在里面的东西还不允许保存
  15. node js 生成视频链接(视频流)
  16. 用友云实名认证,了解一下
  17. 360oauth token是什么意思_币圈token是什么意思?
  18. 计算机论文选题背景,毕业设计选题背景意义.docx
  19. 在ie6下实现position-fixed的效果
  20. phalapi可以依赖注入么_PhalApi:[2.11] 核心思想:DI依赖注入 让资源更可控

热门文章

  1. php中静态方法有什么作用,PHP中的静态方法与非静态方法有什么不同吗?
  2. Qt高级——QTestLib单元测试框架
  3. 抽象工厂模式(JAVA反射)
  4. 理解一条语句:SELECT difference(sum(value)) FROM mq_enqueue WHERE channel =~ /ActiveMQ_TEST/ AND $tim...
  5. 报错 findMergedAnnotation activemq
  6. html实现3d视觉特效
  7. Redis源码解析:07压缩列表
  8. Eclipse打JAR包引用的第三方JAR包找不到 问题解决
  9. SQL Server 2005查询处理结构-用户模式计划(UMS)
  10. Android 系统自带 Theme(主题)