基于单文档的程序,我想把对话框移动跟视图区的左上对齐,怎样在对话框类中得到view左上角的坐标。this->GetParentWindow()->GetActiveView()->GetClientRect(&rt);
this->MoveWindow(rt.Left, rt.top ,...);不行,怎么弄???
this->MoveWindow(rt.Left, rt.top ,...);不行,怎么弄???
解决方案 »
- 求WinCE5.0下能用的仪表控件!!!
- 一个msi安装包被执行后,如何得到这个msi安装包所在位置的路径?
- VC控件中按钮默认ID变为1001是什么原因?
- 移动运行着的不规则对话框的时候产生的错误
- socket connect() 函数连接超时怎么设置?
- ADO在98下都用的好好的,可是到了2000Server中,连最基本的语句都无法执行
- 语法错误,unit,来帮帮我,在线等待!!!!!
- 哈尔滨的VC高手帮帮忙?
- 断言失败,如何查出问题在那
- why?难道这是VC的Bug?!@#$%^&*谁能告诉我——不是高手可以不看
- 请问BT协议中的info_hash,20字节长的SHA1验证码怎么得到的?谢谢!
- 如何继承Dlg类?
可以使用AfxGetMainWnd()或者AfxGetApp()->m_pMainwnd得到主窗体,
再以此获取视图。
试用GetWindowRect及ScreenToClient组合。
{
CDialog::OnShowWindow(bShow, nStatus);
// TODO: Add your message handler code here
CRect rcTemp, rcDes,rcParent;
this->GetWindowRect(&rcTemp); g_pMainFrame->GetActiveView()->GetWindowRect(&rcParent);
rcDes.left = rcParent.left;
rcDes.top = rcParent.top;
rcDes.right = rcDes.left + rcTemp.Width();
rcDes.bottom = rcDes.top + rcTemp.Height(); this->MoveWindow(rcDes, TRUE);
}
void CMainFrame::OnMovdlg() //菜单消息处理函数
{
// TODO: Add your command handler code here
g_pMainFrame = this;
CMovDlg dlg;
dlg.DoModal();}
///////////////////////////////////////////////////
BOOL CMovDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
extern CMainFrame* g_pMainFrame;
CRect rcTemp, rcDes,rcParent;
this->GetWindowRect(&rcTemp); g_pMainFrame->GetActiveView()->GetWindowRect(&rcParent);
rcDes.left = rcParent.left;
rcDes.top = rcParent.top;
rcDes.right = rcDes.left + rcTemp.Width();
rcDes.bottom = rcDes.top + rcTemp.Height(); this->MoveWindow(rcDes, TRUE);
return TRUE;
}