一个人界面编程问题,急,急,急

wgc 2007-04-24 03:25:04
我的程序框架是分割视图,两边都是formview类型,我在右边的视图里边添加了静态控件,利用静态控件建立了无模式对话框。但是我在左边视图对右边的视图做了一个onsize消息响应,右边视图的静态控件可以变化,但是无模式对话框显示不出来,必须拖动一下子窗口才会出来,不知道什么原因,大家帮分析一下!
...全文
443 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
greenabc 2007-04-27
  • 打赏
  • 举报
回复
ding
systemthink 2007-04-27
  • 打赏
  • 举报
回复
设断点调试
cnnwm 2007-04-27
  • 打赏
  • 举报
回复
应该是被挡住了
b2b160 2007-04-26
  • 打赏
  • 举报
回复
用BringWindowToTop函数(好像是,我记不起来了)反正是把那个对话框带到最前面,不要被挡住就可以了.
jinjinandpp 2007-04-26
  • 打赏
  • 举报
回复
//////////////////////////
if(pVibranalysiView->view_num==0)
pVibranalysiView->view_num=1;
else
pVibranalysiView->view_num=0;
left_view_num=1;
pCurrentDoc->doc_view_num=1;
///////////////////
pVibranalysiView->OnSize(SIZE_RESTORED,0,0);

在执行pVibranalysiView->OnSize(SIZE_RESTORED,0,0);前的对于pVibranalysiView->view_num的操作是无效的
coldplay968 2007-04-26
  • 打赏
  • 举报
回复
是不是被挡住了
wgc 2007-04-25
  • 打赏
  • 举报
回复
初始化的时候就创建,在onsize函数中进行movewindow
systemthink 2007-04-25
  • 打赏
  • 举报
回复
设断点调试一下
syy64 2007-04-25
  • 打赏
  • 举报
回复
设断点调试一下,看看右边的对话框什么时候创建。
xujianlane 2007-04-24
  • 打赏
  • 举报
回复
不会,帮顶
长尾巴的悟空 2007-04-24
  • 打赏
  • 举报
回复
是吗?不是吧,只是我看不懂
wgc 2007-04-24
  • 打赏
  • 举报
回复
这么核心的问题,竟然没人理睬!
wgc 2007-04-24
  • 打赏
  • 举报
回复
这是左边视图调用右边视图的onsize函数
void CLeftDlgView::OnAddView()
{
// TODO: Add your command handler code here
CMainFrame *pMainFrame = (CMainFrame *)AfxGetApp()->m_pMainWnd;
CChildFrame *pChildFrame= (CChildFrame *)pMainFrame->GetActiveFrame();
CVibranalysiView* pVibranalysiView=(CVibranalysiView*)pChildFrame->m_wndSplitter.GetPane(0,1);
CVibranalysiDoc * pCurrentDoc =(CVibranalysiDoc *)pChildFrame->GetActiveDocument();
if(pVibranalysiView->view_num==0)
pVibranalysiView->view_num=1;
else
pVibranalysiView->view_num=0;
left_view_num=1;
pCurrentDoc->doc_view_num=1;
pVibranalysiView->OnSize(SIZE_RESTORED,0,0);
}
wgc 2007-04-24
  • 打赏
  • 举报
回复
这是右边onsize函数的代码

void CVibranalysiView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);

// TODO: Add your message handler code here
CRect rect,rectformview,rectdlg;
GetClientRect(&rectformview);

CStatic * pstatic=(CStatic *) GetDlgItem(IDC_STATIC_DLG1);
if(pstatic!=NULL)
{
pstatic->GetClientRect(&rect);
//pstatic->MoveWindow(0,0,cx,cy);
pstatic->MoveWindow(0,0,rect.Width()+cx,rect.Height()+cy);
//pstatic->ShowWindow(SW_HIDE);
if(m_dlg1draw.GetSafeHwnd()!=NULL)
{
m_dlg1draw.GetClientRect(&rectdlg);
CString str ;
str.Format("cx=%d,cy=%d,view_num=%d",cx,cy,view_num);
AfxMessageBox(str);
m_dlg1draw.MoveWindow(rect.TopLeft().x,rect.TopLeft().y,cx,cy);
//m_dlg1draw.MoveWindow(0,0,rectdlg.Width()+cx,rectdlg.Height()+cy);
if(view_num==0)
m_dlg1draw.ShowWindow(SW_SHOW);
else
m_dlg1draw.ShowWindow(SW_HIDE);
}
if(view_num==0)
pstatic->ShowWindow(SW_SHOW);
//pstatic->ShowWindow(SW_HIDE);
else
pstatic->ShowWindow(SW_HIDE);
}

pstatic=(CStatic *) GetDlgItem(IDC_STATIC_DLG2);
if(pstatic!=NULL)
{
pstatic->GetClientRect(&rect);
//pstatic->MoveWindow(0,0,cx,cy/2);
pstatic->MoveWindow(0,0,rect.Width()+cx,rect.Height()+cy/2);
pstatic->ShowWindow(SW_HIDE);
if(m_dlg2draw.GetSafeHwnd()!=NULL)
{
m_dlg2draw.GetClientRect(&rectdlg);
m_dlg2draw.MoveWindow(0,0,cx,cy/2);
//m_dlg2draw.MoveWindow(rectformview.TopLeft().x,rectformview.TopLeft().y,rect.Width()+cx,rect.Height()+cy);
if(view_num==0)
m_dlg2draw.ShowWindow(SW_HIDE);
else
m_dlg2draw.ShowWindow(SW_SHOW);
}
if(view_num==0)
pstatic->ShowWindow(SW_HIDE);
else
pstatic->ShowWindow(SW_SHOW);
}

pstatic=(CStatic *) GetDlgItem(IDC_STATIC_DLG3);
if(pstatic!=NULL)
{
pstatic->GetClientRect(&rect);
//pstatic->MoveWindow(0,0,cx/2,cy/2);
pstatic->MoveWindow(0,rectformview.CenterPoint().y,rect.Width()+cx,rect.Height()+cy);
//pstatic->MoveWindow(0,0,rect.Width()+cx,rect.Height()+cy);
pstatic->ShowWindow(SW_HIDE);
if(m_dlg3draw.GetSafeHwnd()!=NULL)
{
m_dlg3draw.GetClientRect(&rectdlg);
m_dlg3draw.MoveWindow(0,0,cx/2,cy/2);
//m_dlg3draw.MoveWindow(rectformview.TopLeft().x,rectformview.TopLeft().y,rect.Width()+cx,rect.Height()+cy);
if(view_num==0)
m_dlg3draw.ShowWindow(SW_HIDE);
else
m_dlg3draw.ShowWindow(SW_SHOW);
}
if(view_num==0)
pstatic->ShowWindow(SW_HIDE);
else
pstatic->ShowWindow(SW_SHOW);
}

pstatic=(CStatic *) GetDlgItem(IDC_STATIC_DLG4);
if(pstatic!=NULL)
{
pstatic->GetClientRect(&rect);
pstatic->MoveWindow(rectformview.CenterPoint().x,rectformview.CenterPoint().y,rect.Width()+cx,rect.Height()+cy);
//pstatic->MoveWindow(0,0,rect.Width()+cx,rect.Height()+cy);
pstatic->ShowWindow(SW_HIDE);
if(m_dlg4draw.GetSafeHwnd()!=NULL)
{
m_dlg4draw.GetClientRect(&rectdlg);
m_dlg4draw.MoveWindow(0,0,cx/2,cy/2);
//m_dlg4draw.MoveWindow(rectformview.CenterPoint().x,rectformview.CenterPoint().y,cx/2,cy/2);
//m_dlg4draw.MoveWindow(rectformview.TopLeft().x,rectformview.TopLeft().y,rect.Width()+cx,rect.Height()+cy);
if(view_num==0)
m_dlg4draw.ShowWindow(SW_HIDE);
else
m_dlg4draw.ShowWindow(SW_SHOW);
}
if(view_num==0)
pstatic->ShowWindow(SW_HIDE);
else
pstatic->ShowWindow(SW_SHOW);
}

move_cx=cx;
move_cx=cy;
}

15,979

社区成员

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

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