假设在 MDI 程序中打开了3个文档,现在想将其中一个文档提到前面显示 假设在 MDI 程序中打开了3个文档,现在想将其中一个文档提到前面显示,不知道这要怎么做?不明白的说 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //pDoc为该文档,并假设它只关联到一个视图CDocument *pDoc;CFrameWnd *pWnd;//1. 取得该文档的视图POSITION pos = pDoc->GetFirstViewPosition();if (pos != NULL){ CView* pView = GetNextView(pos);} //2.设置为当前的活动视图pWnd->SetActiveView( pView , TRUE ); 将其他的视图隐藏,要的文档显示,即可。将其他的视图隐藏void CLeftPanView::HideWnd(){ PtrList::iterator it; for (it = windowList.begin(); it != windowList.end(); ++it) { suspWindow *winhide = (suspWindow *) *it; int wintype=winhide->whatype(); if(wintype==WIN_SEND_MESSAGE){ CSendMsgDlg *sendDlg= (CSendMsgDlg *) winhide; sendDlg->ShowWindow(SW_HIDE); }else if(wintype==WIN_VIEW_MESSAGE){ CViewMsgDlg *recvDlg= (CViewMsgDlg *) winhide; recvDlg->ShowWindow(SW_HIDE); }else if(wintype==WIN_SEARCH_SUBJECT){ CSearchSubject *SearchSubject=(CSearchSubject*)winhide; SearchSubject->MoveWindow(CRect(-500,-500,-500,-500));//DestroyWindow(); }else if(wintype==WIN_SEARCH_SUBJECT_VIEWDETAIL){ CSearchSubjectViewDetail *SVDetail=(CSearchSubjectViewDetail *)winhide; SVDetail->ShowWindow(SW_HIDE); }else if(wintype==WIN_ANNOUNCE_QUESTION){ CAnounceQuestion *AnounceQuestion=(CAnounceQuestion *)winhide; AnounceQuestion->ShowWindow(SW_HIDE); }else if(wintype==WIN_NEW_QUESTION){ CNewQuestion *NewQuestion=(CNewQuestion *)winhide; NewQuestion->MoveWindow(CRect(-500,-500,-500,-500));//>ShowWindow(SW_HIDE); } else if(wintype==WIN_START_SOLUTION){ CStartSolution *StartSolution=(CStartSolution *)winhide; StartSolution->ShowWindow(SW_HIDE); } else if(wintype==WIN_WELCOME_VIEW){ CWelcomeView *WelcomeView=(CWelcomeView *)winhide; WelcomeView->ShowWindow(SW_HIDE); } } }要的文档显示pDlg->ShowWindow(SW_SHOW); 我的意思就是如下: 在菜单Window中,不是有所打开文档的列表吗?当我点其中一个的时候,那个窗口就提前到前面来显示了,现在我就是需要这样的功能,不过不是在WINDOW菜单中,是在我自己的菜单中罢了 m_pXxryQueryFormView为你要显示的试图类指针CFrameWnd *pChidWnd = m_pXxryQueryFormView->GetParentFrame();if(pChidWnd ){ MDIActivate(pChidWnd );} wwwllg(wwwllg) :按照你的意思就是,假设我打开了三个文档,那么我必须设立一个有三个元素的数组来保存View指针?然后在用的时候采用你的方式?不知道你说的是不是这个意思?我最早想到的也是用数组来保存View指针,然后用的时候去显示,只是我觉得好像不合理一样,所以才来问问,看看是不是我想错了. agree to ShangMuMu 如果你是多个不同文档模板的话,可以通过文档模板注册的字符串来判断 我只有一个文档模板,每次都是开一个View,然后在View中建立一个表格. MFC模拟网站登录问题 一样的代码得到两种回复 为什么??????????急急急急急急急急急急急急急急急急 microsoft windows asn 1 library是做什么的, vc2005的语法问题 请教Sql问题 有人知道怎么用getaddrinfo这个函数吗? Visual Assist怎么用啊~~ 晕 下了是这样??? 如何在对话框中建立两个工具栏,分两行显示 VC++ 6.0 怎么调用 WebService ? 一道面试题???? 请教如何修改ListCtrl(grid风格)表格的高度?谢谢! 哪有VC++.net书下载
CDocument *pDoc;
CFrameWnd *pWnd;
//1. 取得该文档的视图
POSITION pos = pDoc->GetFirstViewPosition();
if (pos != NULL)
{
CView* pView = GetNextView(pos);
} //2.设置为当前的活动视图
pWnd->SetActiveView( pView , TRUE );
void CLeftPanView::HideWnd()
{
PtrList::iterator it;
for (it = windowList.begin(); it != windowList.end(); ++it) {
suspWindow *winhide = (suspWindow *) *it;
int wintype=winhide->whatype();
if(wintype==WIN_SEND_MESSAGE){
CSendMsgDlg *sendDlg= (CSendMsgDlg *) winhide;
sendDlg->ShowWindow(SW_HIDE);
}else if(wintype==WIN_VIEW_MESSAGE){
CViewMsgDlg *recvDlg= (CViewMsgDlg *) winhide;
recvDlg->ShowWindow(SW_HIDE);
}else if(wintype==WIN_SEARCH_SUBJECT){
CSearchSubject *SearchSubject=(CSearchSubject*)winhide;
SearchSubject->MoveWindow(CRect(-500,-500,-500,-500));//DestroyWindow();
}else if(wintype==WIN_SEARCH_SUBJECT_VIEWDETAIL){
CSearchSubjectViewDetail *SVDetail=(CSearchSubjectViewDetail *)winhide;
SVDetail->ShowWindow(SW_HIDE);
}else if(wintype==WIN_ANNOUNCE_QUESTION){
CAnounceQuestion *AnounceQuestion=(CAnounceQuestion *)winhide;
AnounceQuestion->ShowWindow(SW_HIDE);
}else if(wintype==WIN_NEW_QUESTION){
CNewQuestion *NewQuestion=(CNewQuestion *)winhide;
NewQuestion->MoveWindow(CRect(-500,-500,-500,-500));//>ShowWindow(SW_HIDE);
}
else if(wintype==WIN_START_SOLUTION){
CStartSolution *StartSolution=(CStartSolution *)winhide;
StartSolution->ShowWindow(SW_HIDE);
}
else if(wintype==WIN_WELCOME_VIEW){
CWelcomeView *WelcomeView=(CWelcomeView *)winhide;
WelcomeView->ShowWindow(SW_HIDE);
} }
}
要的文档显示
pDlg->ShowWindow(SW_SHOW);
在菜单Window中,不是有所打开文档的列表吗?当我点其中一个的时候,那个窗口就提前到前面来显示了,现在我就是需要这样的功能,不过不是在WINDOW菜单中,是在我自己的菜单中罢了
CFrameWnd *pChidWnd = m_pXxryQueryFormView->GetParentFrame();
if(pChidWnd )
{
MDIActivate(pChidWnd );
}
按照你的意思就是,假设我打开了三个文档,那么我必须设立一个有三个元素的数组来保存View指针?
然后在用的时候采用你的方式?不知道你说的是不是这个意思?
我最早想到的也是用数组来保存View指针,然后用的时候去显示,只是我觉得好像不合理一样,所以才来问问,看看是不是我想错了.
如果你是多个不同文档模板的话,可以通过文档模板注册的字符串来判断