MFC中 视图类如何响应对话框中的按钮消息 在线等

jerrard 2009-05-24 12:33:54
视类:CTestView 对话框(模态)CTestDlg中的按钮:button1

我想在视类响应按钮的单击消息如何实现?
另外如何在视类中销毁CTestDlg呢?
我要代码,马上给分
...全文
774 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2009-05-24
  • 打赏
  • 举报
回复
直接在button1 的响应函数中OnOk()结束对话框
hurryboylqs 2009-05-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 jerrard 的帖子:]
....
我要代码,马上给分
[/Quote]

这句够直接哈
gykgod 2009-05-24
  • 打赏
  • 举报
回复

你可以在CTestDlg对象创建时把视类指针传递过去。
互相包含头文件(注意在包含VIEW.H前要先包含DOC.H),在CTestDlg头文件里添加视类指针,CTestView *pView;
在CTestView里添加个BOOL变量btnclick,初始化为false。
例如:在视类单击鼠标左键时产生CTestDlg对象。
void CTestView::OnLButtonDown(UINT nFlags, CPoint point)
{
CTestDlg dlg;
dlg.pView = this;//传递视类指针
dlg.DoModal();
}

button1单击时在View里输出文本
void CTestView::OnDraw(CDC* pDC)
{
if (btnclick)
{
pDC->TextOut(0,0,"btn clicked");
}
}

模态对话框的button1单击时
void CTestDlg::OnButton1()
{
pView->btnclick = true;
CRect rect;
pView->GetClientRect(&rect);
::InvalidateRect(pView->m_hWnd,&rect,true);
OnCancel();//销毁对话框
}


不知道是不是你想要的效果。
  • 打赏
  • 举报
回复
很多方法嘛:
1,发送消息处理
2,对话框放一个视图指针,通过这个指针调用对话框的相应函数
CMyDialog::CmyDialog(CView * pv){

this->m_pView=pv;


}
CMydialog::OnButton1()
{
//function为视图类的响应函数
this->m_pView->Function();
}

xiangding 2009-05-24
  • 打赏
  • 举报
回复
up
晒月光的青蛙 2009-05-24
  • 打赏
  • 举报
回复
对头,自定义消息,3楼讲的很详细
cxxstudy 2009-05-24
  • 打赏
  • 举报
回复
可以自定义消息
m_tornado 2009-05-24
  • 打赏
  • 举报
回复
获得对话框句柄,然后发消息ID_CANCEL啥的就行
好比在CMainFrm里有对话框定义;
CTestDlg m_dlg;

在view里的响应函数
AfxGetMainWnd()->m_dlg.SendMessage(WM_CANCEL, NULL, NULL);

2,586

社区成员

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

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