有关消息发送后,调用类的成员函数的问题

xiajing0228 2006-09-19 09:19:15
我在自定义的A类中动态创建了一个模态的对话框,在这个模态的对话框中增加了一个Button控件,针对这个控件的的消息响应函数,我想通过发送一个消息来调用视图类中的一个成员函数,请问我应该如何设置这样的消息?
我本来是通过自定义一个消息后,再在Button控件的响应函数中用SendMessage()来发送一个消息以调用视图类中的成员函数.但却出现了问题,视图类中的成员函数不能够被调用到.
还请哪未能够帮我解决一下或者提供一下思路,谢谢!
我做出来的代码和步骤如下:
在对话框类的头文件中定义消息 #define WM_DLG_CREATE11 WM_USER+ 0X34
在对话框中的Button的响应函数里添加 SendMessage(WM_DLG_CREATE11,(WPARAM)sm);
在视图类的头文件定义函数 afx_msg void OnOutProperty();
在视图类的.cpp文件中 添加 ON_MESSAGE(WM_DLG_CREATE11,CXiajing2006View::OnDlgNotifyMsg)
最后是在视图类的.cpp文件添加OnOutProperty()的代码.
请问我上面几个步骤中有哪些是错误的,还请能帮我指出,我做的这些都是针对模太对话框的.
...全文
130 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiajing0228 2006-09-19
  • 打赏
  • 举报
回复
你好,你有qq吗?我可以加你吗?我的是66720373
xiajing0228 2006-09-19
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include "xiajing2006.h"
#include "PropertyDialog.h"

#include "xiajing2006View.h"
#include "xiajing2006Doc.h"

是的哦.感觉在对话框类里是不能直接加入视图和文档的头文件的.晕了.不知道怎么办了
折腾_苏州 2006-09-19
  • 打赏
  • 举报
回复
不是吧,
#include "stdafx.h"
#include "xiajing2006.h"
#include "**dlg.h"
#include "xiajing2006Doc.h"
#include "xiajing2006View.h"
xiajing0228 2006-09-19
  • 打赏
  • 举报
回复
在话框内添加#include "xxxDoc.h"和#include "xxxView.h"后出现了下面三个错误啊!应该怎么解决了?
D:\xiajing2006\xiajing2006View.h(55) : error C2143: syntax error : missing ';' before '*'
D:\xiajing2006\xiajing2006View.h(55) : error C2501: 'CXiajing2006Doc' : missing storage-class or type specifiers
D:\xiajing2006\xiajing2006View.h(55) : error C2501: 'GetDocument' : missing storage-class or type specifiers
折腾_苏州 2006-09-19
  • 打赏
  • 举报
回复
话框类的.cpp中:
#include "xxxDoc.h"
#include "xxxView.h"
xiajing0228 2006-09-19
  • 打赏
  • 举报
回复
请问seu07201213(【卐】〖汪洋中的一片叶子〗≈^︵^≈)
您的这段代码是在对话框类的.cpp文件中添加的吗?在对话框的.cpp文件中添加c**View.h时就出现了很多错误了.
xiajing0228 2006-09-19
  • 打赏
  • 举报
回复
是发送到对话框类,如果要修改那应该如何处理了.其实我的目的就是用用对话框类的响应函数来调用视图类的成员函数.请问应该如何处理?
折腾_苏州 2006-09-19
  • 打赏
  • 举报
回复
SendMessage对象句柄你要获取到:

inlude CxxView.h , CxxxDoc.h
对于多文档:
CMainFrame *pMF=(CMainFrame *)AfxGetMainWnd();
CChildFrame *pCF=(CChildFrame *)pMF->GetActiveFrame();
CxxxView *pActiveView = (CxxxView *)pCF->GetActiveView();

对于单文档:
CMainFrame *pMF=(CMainFrame *)AfxGetMainWnd();
CxxxView *pActiveView = (CxxxView *)pMF->GetActiveView();

然后pActiveView->SendMessage(....);

其实得到活动view指针后,可以不许要sendmessage, pActiveView->成员函数;

mynamelj 2006-09-19
  • 打赏
  • 举报
回复
你的消息是发到视类还是对话框类?

如果是发到对框类视类就收不到.

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧