由于自己要做一个拼音输入模块,比如我按下a键后,让它产生一个消息,在消息处理函数里去搜寻a所对应的汉字。由于系统似乎没有提供相应的消息,所以我自己定义了一个!

具体做法如下:

集成开发环境vs2005

基于MFC对话框的程序

首先在xxxdlg.h的开头添加:#define WM_MYMESSAGE WM_USER+100

然后在xxxdlg.h的头文件中定义

  // Generated message map functionsvirtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()
public:afx_msg void OnBnClickedBtnA();afx_msg void OnBnClickedBtnE();afx_msg LRESULT OnMymessage(WPARAM wparam,LPARAM lparam);afx_msg void OnBnClickedBtnQ();afx_msg void OnBnClickedBtnW();afx_msg void OnBnClickedBtnR();

其中afx_msg LRESULT OnMymessage(WPARAM wparam, LPARAM lparam);是我自己声明的消息处理函数

然后到xxxdlg.cpp的文件中的消息映射表中添加映射:

BEGIN_MESSAGE_MAP(CpytestDlg, CDialog)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_MESSAGE(WM_MYMESSAGE, OnMymessage)//}}AFX_MSG_MAPON_BN_CLICKED(IDC_BTN_A, &CpytestDlg::OnBnClickedBtnA)ON_BN_CLICKED(IDC_BTN_E, &CpytestDlg::OnBnClickedBtnE)ON_BN_CLICKED(IDC_BTN_Q, &CpytestDlg::OnBnClickedBtnQ)ON_BN_CLICKED(IDC_BTN_W, &CpytestDlg::OnBnClickedBtnW)ON_BN_CLICKED(IDC_BTN_R, &CpytestDlg::OnBnClickedBtnR)ON_BN_CLICKED(IDC_BTN_T, &CpytestDlg::OnBnClickedBtnT)

其中ON_MESSAGE(WM_MYMESSAGE, OnMymessage)就是我们自己的消息映射

最后则是充实消息响应函数,我自己的如下所示:

LRESULT CpytestDlg::OnMymessage(WPARAM wParam, LPARAM lParam)
{ // TODO: 处理用户自定义消息 int i = 0;for(i=0;i<396;i++){if(input ==index[i].PY_input){SetDlgItemText(IDC_EDT_DEMO, *index[i].PY_mb);break;}}return 0;
} 

转载于:https://www.cnblogs.com/lmzjh/archive/2012/06/27/4263999.html

MFC中添加自己定义的消息相关推荐

  1. 在MFC中添加用户自定义消息

    消息机制是windows的典型运行机制,在MFC中有很多的消息如WM_BTN**等.但是在有些情况下我们需要自定义一些消息去做一些我们需要的功能,MFC的向导不能帮助我们做到这一点,我们可以通过添加相 ...

  2. 如何在Linux kernel Makefile中添加宏定义

    如何在Linux kernel Makefile中添加宏定义: CFLAGS_object.o += -DMACRO_NAME 在编译object.o时定义宏MACRO_NAME,在kernel中添加 ...

  3. MFC中添加Splash Screen

    1.  新建一个MFC项目SDI或MDI. 2.  新建或导入一个ID为IDB_SPLASH的位图. 3.  添加现有项SplashWnd.h和SplashWnd.cpp. SplashWnd.h源代 ...

  4. Android.mk中添加宏定义

    在Boardconfig.mk 中添加一个 IMAGE_FOR_FACTORY_TEST:= true 由于Boardconfig.mk和各目录的Android.mk是相互关联的 所以我们可以在And ...

  5. MFC中添加GIF图片

    from:http://www.tuicool.com/articles/uAFVBb2 项目中想实现这样的功能:下拉选择框选择一个天气条件后,就在界面上显示对应天气条件的GIF动态图.通过搜索,找到 ...

  6. MFC中添加一张图片作为对话框(或CFormView)的背景

    步骤: 1.从VC6.0的Resources中添加一张bmp图片 如图: 右击Dialog,选择import,就可以导入一张图片到资源文件中,会默认生成一个Bitmap文件夹,资源ID号为IDB_BI ...

  7. (VC2005)MFC中添加控件的成员变量.

    VC 2005 中添加控件的成员变量. 方法一:使用变量添加向导. 右击控件->Add Variable (打开了 Add Member Variable Wizard)  -> 输入Va ...

  8. MFC中添加的ID资源号提示找不到声名问题

    1.查看resource.h资源文件,基本上都是因为某些界面上的修改等原因造成了里面部分定义ID号值重复了才报的错,所以要在resource.h文件中手动修改成不一样的id值.

  9. Lumen开发:如何向 IoC 容器中添加自己定义的类

    版权声明:本文为博主原创文章,未经博主允许不得转载. 先在起始文件bootstrap/app.php加上$app->register(App\Providers\User\UserService ...

最新文章

  1. Java打印整数的二进制表示(代码与解析)
  2. js文件中加载其他js文件
  3. Oracle执行外部文件:
  4. C#LeetCode刷题之#581-最短无序连续子数组( Shortest Unsorted Continuous Subarray)
  5. oracle数据库非归档模式数据备份和恢复
  6. CodeProject每日精选: Progress controls 进度条
  7. 使用Angular和ASP.net Core的Raw Websockets迷你游戏
  8. php怎么修改滑动条,修改滚动条样式的方法
  9. [20150610]使用物化视图同步数据.txt
  10. 怎么通过安装包安装mysql_教你安装Mysql(解压版/非安装包)图文教程
  11. 在Linux下基于路由策略的IP地址控制
  12. 【mobile】安卓图案解锁尝试次数过多导致 要解锁需要GOOGLE账户登录,解决方案...
  13. 云计算是继互联网计算机后在信息时代,云计算本质是什么?
  14. Vue电影网站构建实战教程
  15. 安卓3G控制板、核心板、广告机开发一体规格书
  16. 解决:Mac下的Mounty卷不能在读/写模式下重新挂载.可能是因为先前没有完全卸载(安全删除)
  17. 2014中国民营企业500强在京津冀经济区、珠江三角洲、长江三角洲分布
  18. python-数据分析-pandas (1)
  19. 大星星学物联网概览篇-硬件
  20. RNA的化学修饰原理|Gal-PEG-siRNA|siRNA-S-S-DSPE|siRNA-s-s-PEG|cholesterol-siRNA

热门文章

  1. 企业网络推广——企业网络推广专员讲述网站友链交换如何做
  2. 优化老手分享网络优化中的4大方法
  3. cpp map 获取所有 key_Flutter 中最熟悉的陌生人之 Key 全面解析
  4. linux c不占用cpu的延时,linux下写个C语言程序,要求有0.5微秒以下的延时,要怎样写...
  5. python读excel字体颜色_无法使用python xlsxwri更改excel中的字体颜色
  6. 开发日记-20190619 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
  7. confluence 卡顿原因总结
  8. 每秒100W请求,12306秒杀业务,架构如何优化?
  9. 数据恢复 从binlog文件
  10. 微信小程序-页面跳转传值