能否改变对话框的显示位置 ? 用AfxMessageBox(...)函数,弹出一个对话框,可是在窗体的中间位置,能不能改变出现的位置,比如说在左上角或左下角 。另:在现有的程序中调用已有的可执行程序(.exe),用system(...)函数,可是在用system 会出现 DOS 的控制台窗口,有没有办法不让它出现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.MoveWindow2.用ShellExecute吧,最后一个参数参看MSDN,把窗口隐藏 重载OnWindowPosChanging()设置对话框显示位置 可以肯定地说,位置可以改变。给你一段代码,你参考一下吧。//计算工具条位置 CRect rcClient; CRect rcWindow; GetClientRect(&rcClient); GetWindowRect(&rcWindow); GlobalLayout *playout; playout=((CPatternDesignCADApp *)AfxGetApp())->GetGloballayoutPtr(); playout->SetWindowRect(&rcWindow); playout->SetClientRect(&rcClient); CSize srToolBar= m_wndToolBar.CalcFixedLayout(FALSE,TRUE); CSize szToolSelect= m_wndToolSelectBox.CalcFixedLayout(FALSE,FALSE); CSize szObjView= m_wndObjViewBox.CalcFixedLayout(FALSE,TRUE); CSize szColorBar= m_wndColorBox.CalcFixedLayout(FALSE,TRUE); CSize szNavigator= m_wndNavigatorBox.CalcFixedLayout(FALSE,TRUE); CSize szLayerBar= m_wndLayerBox.CalcFixedLayout(FALSE,TRUE); playout->SetSize(&szToolSelect, GLOBALLAYOUT_TOOLSELECTSIZE); playout->SetSize(&szColorBar, GLOBALLAYOUT_TOOLCOLORSIZE); playout->SetSize(&szNavigator, GLOBALLAYOUT_TOOLNAVIGATORSIZE); playout->SetSize(&szObjView, GLOBALLAYOUT_TOOLOBJVIEWSIZE); playout->SetSize(&szLayerBar, GLOBALLAYOUT_TOOLLAYERSIZE); // 浮动工具条。 int nPosY=(rcWindow.Height()-rcClient.Height())+srToolBar.cy; FloatControlBar(&m_wndToolSelectBox, CPoint(rcClient.left,nPosY), CBRS_ALIGN_LEFT); nPosY-=(rcWindow.Height()-rcClient.Height()); FloatControlBar(&m_wndNavigatorBox, CPoint(rcClient.Width()-szNavigator.cx,nPosY), CBRS_ALIGN_LEFT); nPosY+=(szNavigator.cy+20); FloatControlBar(&m_wndObjViewBox, CPoint(rcClient.Width()-szObjView.cx,nPosY), CBRS_ALIGN_LEFT); nPosY+=(szObjView.cy+20); FloatControlBar(&m_wndColorBox, CPoint(rcClient.Width()-szColorBar.cx,nPosY), CBRS_ALIGN_LEFT); nPosY+=(szColorBar.cy+20); FloatControlBar(&m_wndLayerBox, CPoint(rcClient.Width()-szLayerBar.cx,nPosY), CBRS_ALIGN_LEFT); return 0;}void CMainFrame::OnFileNew() { CNewFileDlg dlg; if(dlg.DoModal()!=IDOK) { GlobalLayout * pGlobalLayout; pGlobalLayout=((CPatternDesignCADApp *)AfxGetApp())->GetGloballayoutPtr(); CRect rc; /*根据客户区大小设置位图宽和高*/ pGlobalLayout->GetClientRect(&rc); m_MainBmpInterFace.InitBmpInterface(rc.Width(),rc.Height()); } else { m_MainBmpInterFace.InitBmpInterface(dlg.m_nWidth,dlg.m_nHeight); } m_wndLayerBox.UpdateLayerList(); Invalidate();} FtpFindFirstFile之后得到的ftLastWriteTime属性的时间不对 MFC 对话框关闭时异常 请问 : 如何枚举任务栏上的窗口句柄,而且顺序是从左至右的顺序 求助:关于mfc80.dll的问题 请问怎么像Ultra Edit 一样 以 二进制的方式 对 一个dll文件进行读写编辑? 註冊表高手進來 很急得阿,一个网络传输的程序,怎样才能在别的软件中使用? typedef应该啥时候用啊?? 显示图片 windows98 支持多屏幕,如何实现? 关于topmost属性窗口 线程与非摸态对话框的关系?
2.用ShellExecute吧,最后一个参数参看MSDN,把窗口隐藏
//计算工具条位置
CRect rcClient;
CRect rcWindow;
GetClientRect(&rcClient);
GetWindowRect(&rcWindow); GlobalLayout *playout;
playout=((CPatternDesignCADApp *)AfxGetApp())->GetGloballayoutPtr();
playout->SetWindowRect(&rcWindow);
playout->SetClientRect(&rcClient);
CSize srToolBar=
m_wndToolBar.CalcFixedLayout(FALSE,TRUE);
CSize szToolSelect=
m_wndToolSelectBox.CalcFixedLayout(FALSE,FALSE);
CSize szObjView=
m_wndObjViewBox.CalcFixedLayout(FALSE,TRUE);
CSize szColorBar=
m_wndColorBox.CalcFixedLayout(FALSE,TRUE);
CSize szNavigator=
m_wndNavigatorBox.CalcFixedLayout(FALSE,TRUE);
CSize szLayerBar=
m_wndLayerBox.CalcFixedLayout(FALSE,TRUE); playout->SetSize(&szToolSelect,
GLOBALLAYOUT_TOOLSELECTSIZE);
playout->SetSize(&szColorBar,
GLOBALLAYOUT_TOOLCOLORSIZE);
playout->SetSize(&szNavigator,
GLOBALLAYOUT_TOOLNAVIGATORSIZE);
playout->SetSize(&szObjView,
GLOBALLAYOUT_TOOLOBJVIEWSIZE);
playout->SetSize(&szLayerBar,
GLOBALLAYOUT_TOOLLAYERSIZE); // 浮动工具条。
int nPosY=(rcWindow.Height()-rcClient.Height())+srToolBar.cy; FloatControlBar(&m_wndToolSelectBox,
CPoint(rcClient.left,nPosY), CBRS_ALIGN_LEFT);
nPosY-=(rcWindow.Height()-rcClient.Height());
FloatControlBar(&m_wndNavigatorBox,
CPoint(rcClient.Width()-szNavigator.cx,nPosY),
CBRS_ALIGN_LEFT);
nPosY+=(szNavigator.cy+20);
FloatControlBar(&m_wndObjViewBox,
CPoint(rcClient.Width()-szObjView.cx,nPosY),
CBRS_ALIGN_LEFT);
nPosY+=(szObjView.cy+20);
FloatControlBar(&m_wndColorBox,
CPoint(rcClient.Width()-szColorBar.cx,nPosY),
CBRS_ALIGN_LEFT);
nPosY+=(szColorBar.cy+20);
FloatControlBar(&m_wndLayerBox,
CPoint(rcClient.Width()-szLayerBar.cx,nPosY),
CBRS_ALIGN_LEFT); return 0;
}
void CMainFrame::OnFileNew()
{
CNewFileDlg dlg;
if(dlg.DoModal()!=IDOK)
{
GlobalLayout * pGlobalLayout;
pGlobalLayout=((CPatternDesignCADApp *)AfxGetApp())->GetGloballayoutPtr();
CRect rc;
/*根据客户区大小设置位图宽和高*/
pGlobalLayout->GetClientRect(&rc);
m_MainBmpInterFace.InitBmpInterface(rc.Width(),rc.Height());
}
else
{
m_MainBmpInterFace.InitBmpInterface(dlg.m_nWidth,dlg.m_nHeight);
}
m_wndLayerBox.UpdateLayerList();
Invalidate();
}