Chinaunix首页 | 论坛 | 博客
  • 博客访问: 436884
  • 博文数量: 89
  • 博客积分: 2713
  • 博客等级: 少校
  • 技术积分: 938
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-18 21:19
个人简介

为了成为自由自在的人而奋斗!

文章分类

全部博文(89)

文章存档

2016年(5)

2015年(9)

2014年(2)

2013年(10)

2012年(1)

2011年(30)

2010年(32)

分类: C/C++

2011-01-13 19:45:31


1.自定义消息WM_CUSTOMIZE
首先,在CCDlg类的头文件中加入如下代码:
 
#define WM_CUSTOMIZE  WM_USER+1
 
其中WM_CUSTOMIZE即是所要定义的消息。然后,仍在头文件中加入Customize的声明:
 
    // Generated message map functions
    //{{AFX_MSG(CCDlg)
    afx_msg void OnCmd();
    //}}AFX_MSG
    afx_msg void Customize(WPARAM wParam, LPARAM lParam);
    DECLARE_MESSAGE_MAP()
 
此时,需要注意的是加入的位置一定要在类向导的“//{{”和“//}}”注释之外,不然类向导会删除开发人员添加的内容。这里所加入的内容即是消息响应函数的声明部分,其中,两个参数分别表示鼠标的屏幕坐标位置。
2.加入消息响应函数实现
在CCDlg类的实现文件中加入消息响应函数的实现部分,代码如下:
 
void CCDlg::Customize(WPARAM wParam, LPARAM lParam)
{
      CString strTittle;
      strTittle.Format("自定义消息参数:x=%d,y=%d",wParam,lParam);
      SetWindowText(strTittle);
}
 
此函数的作用是将鼠标的位置信息显示在对话框的标题栏部分。
3.菜单部分
在主框架的“帮助”主菜单中加入“自定义消息”子菜单,其ID设为ID_CUSTOMIZE,通过类向导响应该命令,函数名默认。其函数体如下:
 
void CMainFrame::OnCustomize()
{
      // TODO: Add your command handler code here
      POINT pos;
      //将消息参数定义为屏幕坐标值
      GetCursorPos(&pos);
      pdlg->SendMessage(WM_CUSTOMIZE,(UINT)pos.x,pos.y);
}
 
4.文件包含和编译
将CCDlg头文件包含到主框架实现文件中即可,编译运行,可以通过菜单命令响应,注意观察对话标题栏部分的变化。
文件: Mytestmsg.rar
大小: 1846KB
下载: 下载
阅读(2484) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-03-09 12:08:37

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com