mfc中在mainfrm.cpp开始处加入#include"CMyview.h"(假设工程名为My),为什么错误.
我想在框架文件中添加WM_TIMER消息,并实现自定义消息ON_MESSAGE(WM_MYMESAGE,OnMymessage)//WM_MYMESSAGE为自定义消息....
我想在框架文件中添加WM_TIMER消息,并实现自定义消息
ON_MESSAGE(WM_MYMESAGE,OnMymessage)//WM_MYMESSAGE为自定义消息.
void CMainFrame::OnTimer(UINT nIDEvent)
{
GetActiveView()->SendMessage(WM_MYMESSAGE);//由视图显示结果.
}
本来可以直接在视图派生类中实现上面的功能,但我想在框架类中实现.
知道的朋友,请解说一下.
谢谢!
更正一下void CMainFrame::OnTimer(UINT nIDEvent) 函数
void CMainFrame::OnTimer(UINT nIDEvent)
{
((CMyView*)GetActiveView())->SendMessage(WM_MYMESSAGE);//由视图显示结果.
} 展开
ON_MESSAGE(WM_MYMESAGE,OnMymessage)//WM_MYMESSAGE为自定义消息.
void CMainFrame::OnTimer(UINT nIDEvent)
{
GetActiveView()->SendMessage(WM_MYMESSAGE);//由视图显示结果.
}
本来可以直接在视图派生类中实现上面的功能,但我想在框架类中实现.
知道的朋友,请解说一下.
谢谢!
更正一下void CMainFrame::OnTimer(UINT nIDEvent) 函数
void CMainFrame::OnTimer(UINT nIDEvent)
{
((CMyView*)GetActiveView())->SendMessage(WM_MYMESSAGE);//由视图显示结果.
} 展开
5个回答
展开全部
GetActiveView()->SendMessage(WM_MYMESSAGE);
在vc6.0下,直接使用就可以了。
如果在vc2005下出错,是由于框架应用程序类生成应用程序时构造的时间是不一样造成的。
在mainfrm.cpp里加
#include "MyDoc.h"
#include "MyView.h"
添加到系统生成的应用头文件的后面,并且这2句顺序不能换。
在vc6.0下,直接使用就可以了。
如果在vc2005下出错,是由于框架应用程序类生成应用程序时构造的时间是不一样造成的。
在mainfrm.cpp里加
#include "MyDoc.h"
#include "MyView.h"
添加到系统生成的应用头文件的后面,并且这2句顺序不能换。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SendMessage()有sdk函数,也有作为CWnd的方法。你所说的情况没必要强制转换成你的view类指针(因为转换与否SendMessage没本质区别,如果你没重新定义SendMessage()函数的话),除非需要使用你自己在View类中定义的方法才有必要转换。
另外,如果你未对自动生成的各头文件名进行改动,你的#include"头文件"是错误的,头文件名开头没有大写的字母C。应该是#include"Myview.h"
最后,如果你的SetTimer是在构造函数中建立,那么请保证使用GetActiveView()函数时View已经创建,然后再使用。建议不要在构造函数中SetTimer.
至于你说的错误,描述不够清楚,所以不知道你说的错误到底是什么。
另外,如果你未对自动生成的各头文件名进行改动,你的#include"头文件"是错误的,头文件名开头没有大写的字母C。应该是#include"Myview.h"
最后,如果你的SetTimer是在构造函数中建立,那么请保证使用GetActiveView()函数时View已经创建,然后再使用。建议不要在构造函数中SetTimer.
至于你说的错误,描述不够清楚,所以不知道你说的错误到底是什么。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要不要 #include"CMyview.h" 并没关系。
GetActiveView()->SendMessage(WM_MYMESSAGE); // 就可以了
消息处理是一个数组表格查找,类似与虚函数。
ON_MESSAGE(WM_MYMESAGE,OnMymessage)
这句话应该定义在 CMyView的实现里面。
GetActiveView()->SendMessage(WM_MYMESSAGE); // 就可以了
消息处理是一个数组表格查找,类似与虚函数。
ON_MESSAGE(WM_MYMESAGE,OnMymessage)
这句话应该定义在 CMyView的实现里面。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
既然使用了GetActiveView还#include"CMyview.h"干嘛???
再看看别人怎么说的。
再看看别人怎么说的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
既然使用了GetActiveView还#include"CMyview.h"干嘛???
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询