MFC中如何调用基于CFormView的对话框?
我在MFC程序中建了一个对话框,又新建了一个与对话框关联的基于CFormView的类.(我的对话框必须与CFormView类关联,不能与CDialog类关联).我想点击一...
我在MFC程序中建了一个对话框,又新建了一个与对话框关联的基于CFormView的类.(我的对话框必须与CFormView类关联,不能与CDialog类关联).我想点击一个按钮就弹出这个对话框,事件的代码应该怎么写呢?
展开
3个回答
展开全部
DoMadal()适用于对话框。如果你的应用程序是基于CDocument/View方式的,在你的按钮事件中添加如下代码:
CWinApp* pApp=AfxGetApp();
CString docstr;
POSITION postmp=pApp->GetFirstDocTemplatePosition();
while(postmp!=NULL)
{
CDocTemplate* pdoc=pApp->GetNextDocTemplate(postmp);
docstr=pdoc->GetDocString(docstr,pdoc->fileNewName);
if(docstr=="yourviewresourcename") then
pdoc->OpenDocumentFile(NULL)
}
yourviewresourcename 是你的文档字符串资源表
CWinApp* pApp=AfxGetApp();
CString docstr;
POSITION postmp=pApp->GetFirstDocTemplatePosition();
while(postmp!=NULL)
{
CDocTemplate* pdoc=pApp->GetNextDocTemplate(postmp);
docstr=pdoc->GetDocString(docstr,pdoc->fileNewName);
if(docstr=="yourviewresourcename") then
pdoc->OpenDocumentFile(NULL)
}
yourviewresourcename 是你的文档字符串资源表
展开全部
1、VC默认是双击资源视图中的按钮就会进入相应事件代码。
2、如果不行,在头文件定义void OnButtonCommand();
在cpp文件的消息映射中定义ON_BN_CLICKED( ID_YOURBUTTON, OnButtonCommand )
然后实现OnButtonCommand
void CYourDlg::OnButtonCommand()
{
....
你的逻辑
}
2、如果不行,在头文件定义void OnButtonCommand();
在cpp文件的消息映射中定义ON_BN_CLICKED( ID_YOURBUTTON, OnButtonCommand )
然后实现OnButtonCommand
void CYourDlg::OnButtonCommand()
{
....
你的逻辑
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
以下是实现代码:
CView *pView = (CFormView *)(RUNTIME_CLASS(DialogView)->CreateObject());
if(!pView)
{
MessageBox("1", "", MB_OK);
return;
}
CRect crt;
CCreateContext Cnt;
GetClientRect(crt);
Cnt.m_pCurrentDoc = GetDocument();
pView->Create(NULL, NULL, AFX_WS_DEFAULT_VIEW,
crt, this, IDD_DIALOG_VIEW, &Cnt);
pView->ShowWindow(SW_SHOWNORMAL);
pView->MoveWindow(&crt);
------Solutions------
CTabCtrl+CDialog
CView *pView = (CFormView *)(RUNTIME_CLASS(DialogView)->CreateObject());
if(!pView)
{
MessageBox("1", "", MB_OK);
return;
}
CRect crt;
CCreateContext Cnt;
GetClientRect(crt);
Cnt.m_pCurrentDoc = GetDocument();
pView->Create(NULL, NULL, AFX_WS_DEFAULT_VIEW,
crt, this, IDD_DIALOG_VIEW, &Cnt);
pView->ShowWindow(SW_SHOWNORMAL);
pView->MoveWindow(&crt);
------Solutions------
CTabCtrl+CDialog
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询