Chinaunix首页 | 论坛 | 博客
  • 博客访问: 415748
  • 博文数量: 99
  • 博客积分: 4230
  • 博客等级: 上校
  • 技术积分: 1026
  • 用 户 组: 普通用户
  • 注册时间: 2005-06-21 14:52
文章分类

全部博文(99)

文章存档

2011年(1)

2010年(1)

2008年(13)

2007年(28)

2006年(45)

2005年(11)

我的朋友

分类: C/C++

2006-07-31 10:00:57

在VC程序内部进行通讯有若干种的模式,现在就我编程经验而言有如下几种方式
1:通过共享数据,比如说通过视图-文档模式,将一些数据存放在文档中,让其他的类进行调用
2:通过SendMessage传递所要传递的数据的指针,从而做到共享
3:通过一个类来进行通讯,比如试图类,所有要进行通讯的时候都将数据传递到视图类,有视图类进行处理
 
以下就SendMessage的用法进行Demonstrate:
 
1,首先要定义一个信号量
#define CHANGE WM_USER + 102
2,确认定义的类被包含在与之联系类中
#include "***.h"
3,从对应点发送数据
::SendMessage(GetParent()->GetParent()->GetSafeHwnd(),CHANGE,0,(LPARAM)&m_nItem);
其中GetParent()表示其父类,CHANGE表示信号量,下面两个是变量,传递给目标函数的&m_nItem是对应类
4,目标接受
在**.h文件中
afx_msg LRESULT ChangeHappen(WPARAM wParam, LPARAM lParam);
在**.cpp文件中
ON_MESSAGE(CHANGE,ChangeHappen)
函数部分
LRESULT CUSERADMIN::ChangeHappen(WPARAM wParam, LPARAM lParam)
{
 int* item=(int*)lParam;
 CString res;
 res.Format("%d",*item);
 return 0;
}
以上就是SendMessage的一个简单用法,如果类复杂的话因为传递的只是指针所以没有任何问题,主要是这个妙用很不错
 
阅读(3743) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-05-07 20:38:25

在VC程序内部进行通讯有若干种的模式, 现在就我编程经验而言有如下几种方式 1:通过共享数据,比如说通过视图-文档模式,将一些数据存放在文档中,让其他的类进行调用 2:通过SendMessage传递所要传递的数据的指针,从而做到共享 3:通过一个类来进行通讯,比如试图类,所有要进行通讯的时候都将数据传递到视图类,有视图类进行处理 以下就SendMessage的用法进行Demonstrate: 1,首先要定义一个信号量 //在哪个类中定义?----好像是在发送消息的类中 #define CHANGE WM_USER + 102 2,确认定义的类被包含在与之联系类中 //谁包含谁? #include "***.h" 3,从对应点发送数据 ::SendMessage(GetParent()->GetParent()->GetSafeHwnd(),CHANGE,0,(LPARAM)&m_nItem); 其中GetParent()表示其父类,CHANGE表示信号量,下面两个是变量,传递给目标函数的&m_nItem是对应类 4