
MFC 单文档菜单弹出非模态对话框问题,如何实现随视图区移动而移动,谢谢。
菜单弹出的非模态对话框,弹出后靠在视图去的左边,期望的是与客户区成为一体,即移动主程序时,它也一同移动,就想主视图区的一部分一样。不知道我说明白了没。。。呵呵...
菜单弹出的非模态对话框,弹出后靠在视图去的左边,期望的是与客户区成为一体,即移动主程序时,它也一同移动,就想主视图区的一部分一样。不知道我说明白了没。。。呵呵
展开
展开全部
框架窗口响应WM_MOVE消息,然后MoveWindow函数把你的对话框移动到指定位置。
如过对移动过程有要求,再响应WM_MOVING消息(不推荐)
如过对移动过程有要求,再响应WM_MOVING消息(不推荐)
追问
不好意思不是很明白。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是很清楚,父子窗口好办,或者不是对话框是属性页呀好办,就是对话框不知道怎么弄了 ,而且你这个是菜单弹出的
更多追问追答
追问
您说的父子窗口是什么情况,可否详细说下,也许可以参考。。。
追答
刚试了下,貌似可以
//CPropView.h
CDlgProperty *dlg;
//CPropView.cpp
void CPropView::OnPage() //弹出的非模态对话框
{
// TODO: Add your command handler code here
dlg=new CDlgProperty(this);
dlg->Create(IDD_DIALOG_PROPERTY,GetDlgItem(IDD_DIALOG_PROPERTY));
dlg->ShowWindow(TRUE);
}
//WM_MOVING 消息,我这里怎么没有现成的,自己手添加的
void CMainFrame::OnMoving(UINT nSide, LPRECT lpRect)
{
CView* pView=this-> GetActiveView();
CRect dlgRect;
if (((CPropView*)pView)->dlg)
{
((CPropView*)pView)->dlg-> DestroyWindow();
delete ((CPropView*)pView)->dlg;
((CPropView*)pView)->dlg = NULL;
}
((CPropView*)pView)->dlg=new CDlgProperty(this);
((CPropView*)pView)->dlg->Create(IDD_DIALOG_PROPERTY,GetDlgItem(IDD_DIALOG_PROPERTY));
((CPropView*)pView)->dlg->GetClientRect(&dlgRect);
((CPropView*)pView)->dlg->MoveWindow(lpRect->left,lpRect->top+50,dlgRect.Width(),dlgRect.Height());
((CPropView*)pView)->dlg->ShowWindow(TRUE);
}
来自:求助得到的回答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询