MFC中 视图类如何响应对话框中的按钮消息 在线等 视类:CTestView 对话框(模态)CTestDlg中的按钮:button1我想在视类响应按钮的单击消息如何实现?另外如何在视类中销毁CTestDlg呢?我要代码,马上给分 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接在button1 的响应函数中OnOk()结束对话框 获得对话框句柄,然后发消息ID_CANCEL啥的就行好比在CMainFrm里有对话框定义;CTestDlg m_dlg;在view里的响应函数AfxGetMainWnd()->m_dlg.SendMessage(WM_CANCEL, NULL, NULL); 很多方法嘛:1,发送消息处理2,对话框放一个视图指针,通过这个指针调用对话框的相应函数CMyDialog::CmyDialog(CView * pv){this->m_pView=pv;}CMydialog::OnButton1(){//function为视图类的响应函数this->m_pView->Function();} 你可以在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();//销毁对话框}不知道是不是你想要的效果。 卖身,去哈尔滨发展,哈市的朋友帮我估个价 如何改变视图的大小和位置 winxp里拷贝,粘贴,建立等文件操作原理是否调用了API函数? 请指教。。。。。 [求教]资源管理器之间的文件拖放拷贝时怎么实现的? 高手呢?我想在RichEdit中插入OlE对象,怎么做? 那个地方有汤子赢著的《操作系统原理》下载? 有没有函数能锁定给定内存指针所指向的特定大小的区域? 非常简单的问题,在MDI工程中怎样阻止默认文档的建立? 关于树控件、列表控件等等的打印问题 高分!!!求如何改变edit控件显示的角度 (急切求助)C#如何调用"VC++.Net下生成的MFC DLL"?(在线等)
好比在CMainFrm里有对话框定义;
CTestDlg m_dlg;在view里的响应函数
AfxGetMainWnd()->m_dlg.SendMessage(WM_CANCEL, NULL, NULL);
1,发送消息处理
2,对话框放一个视图指针,通过这个指针调用对话框的相应函数
CMyDialog::CmyDialog(CView * pv){this->m_pView=pv;
}
CMydialog::OnButton1()
{
//function为视图类的响应函数
this->m_pView->Function();
}
你可以在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();//销毁对话框
}
不知道是不是你想要的效果。