有关模式对话框在显示之前确定其位置的问题

xiaolizi 2006-02-10 04:28:05
各位大侠,
请问如何在一个CDialog.DoModel()调用之前先设置好它的位置?或者说我想调用DoMoal在我制定的位置显示对话框?
...全文
96 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaolizi 2006-02-10
  • 打赏
  • 举报
回复

晕了,上面说错了,CDialog是继承自CWnd的,这个就更加让我困惑了~~~~
xiaolizi 2006-02-10
  • 打赏
  • 举报
回复
多谢 goodboyws(深夜不眠者) 和 syy64(太平洋)

已经搞定了,我是在OnInitialDialog中MoveWindow的。
呵呵

不过有点奇怪的是,在此之前,尝试在PreCreateWindow中设置cs.x和cs.y,发现PreCreateWindow根本就不会被调用到。这个。。。让我觉得奇怪。。难道是因为CDialog不是继承自CWnd的缘故,所以才不会被调用吗?

哪位高手来指点指点牙~~~
^_^
syy64 2006-02-10
  • 打赏
  • 举报
回复
在DoModal()之前调用如下函数:
CDialog::InitModalIndirect
BOOL InitModalIndirect( LPCDLGTEMPLATE lpDialogTemplate, CWnd* pParentWnd = NULL );

BOOL InitModalIndirect( HGLOBAL hDialogTemplate, CWnd* pParentWnd = NULL );

设置DLGTEMPLATE结构
goodboyws 2006-02-10
  • 打赏
  • 举报
回复
在OnInitDialog用
SetWndowPos(NULL, x, y, 0, 0, SWP_NOSIZE | SWP_NOZORDER);

15,979

社区成员

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

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