如何通过按钮在视图上显示内容??
如何通过按钮在视图上显示内容??
楼主snakewu(ss)2004-03-25 13:30:45 在 VC/MFC / 非技术类 提问 比如使用AppWizard创建了一个SDI程序,在对话框中增加一个按钮,然后当单击这个按钮,想在窗口中显示一串字符串就行,该如何做?使用GetDlgItem不论返回CWnd指针也好,返回CWoView*(一个程序中CView派生类)也好,都不行;我也试过手工在CWoView中用对话框那个按钮的ID进行消息映射以及控制函数,根本不行,该用什莫方法??
还有,为什莫在CWoView中对对话框里面的按钮手动进行消息映射以及控制函数不行呢(就是把这个按钮的所有映射和控制函数都放到CWoView中去)??
谢谢大虾了。 问题点数:20、回复次数:9Top
1 楼xuanzg(小钢娃)回复于 2004-03-25 13:39:32 得分 0
1。发个消息到视类,视类在现实 即可
2。因为你的按钮消息没有发送到视类中,被对话框截获了
Top
2 楼snakewu(ss)回复于 2004-03-25 14:13:30 得分 0
我使用过SendMessage,发送WM_PAINT消息给CView,但是还是不行,该如何做??Top
3 楼renchen(木材)回复于 2004-03-25 14:18:50 得分 0
贴出代码。
Top
4 楼commandconque(马江王)回复于 2004-03-25 14:42:51 得分 0
你应先获得视图的句柄,根据这个句柄来发消息,Top
5 楼snakewu(ss)回复于 2004-03-25 15:09:11 得分 0
是获得视图对象的指针,还是获得句柄?
我本来想在那个按钮的控制函数里面加入SendMessage(WM_PAINT,0,0),然后到CWoView加入OnPaint的消息映射,但是一运行,那个字符串已经显示在上面了,我该如何做?
代码的话,我只是用AppWizard做的一个SDI程序。Top
6 楼xuanzg(小钢娃)回复于 2004-03-25 16:37:00 得分 0
SendMessage(WM_PAINT,0,0)?
当然不行
SendMessage(pview->m_hWnd,WM_PAINT,0,0);
pview是你的view指针Top
7 楼commandconque(马江王)回复于 2004-03-25 17:13:49 得分 20
我帮你找了一个下午,好像没有找到如何在对话框(CDialog)中获得视图的函数,
但我想了个办法:
在CDialog的按钮中事件中加入一个发送消息的函数,但消息不是直接发送到视图,而是发送到框架上(CMainFram)
AfxGetApp()->m_pMainWnd->PostMessage(CCCP,0,0);
////CCCP是自己定义的消息
#define CCCP (WM_USER+2)
然后在框架中加入响应CCCP的代码
1。在.h中 加入afx_msg void cccp();///在//}}AFX_MSG后
2 在.cpp中
ON_MESSAGE(CCCP,cccp)////在//}}AFX_MSG_MAP后
3.定义cccp()函数;
这样消息在cccp()中作处理
然后在cccp()向视图发送消息:
GetActiveView( )->PostMessage()....
这样就可以Top
8 楼snakewu(ss)回复于 2004-03-25 17:17:08 得分 0
但是就算没有SendMessage(pview->m_hWnd,WM_PAINT,0,0),只要在CView中定义了OnPaint函数以后,不按我自己设计的那个按钮,视图上已经存在着东西了。
这是我的OnPaint代码:
CPaintDC dc(this);
dc.TextOut(0,0,"ss");
或者不用SendMessage,还有其他的办法?Top
9 楼snakewu(ss)回复于 2004-03-25 21:40:19 得分 0
给不了分?Top
-
相关文章
2秒记住本站域名
玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn
