假如你在按钮事件中调用的是DoModal,那么在DoModal之前,对话框还没有创建,你显然的不到句柄;在DoModal之后,对话框已经销毁,你也显然的不到句柄;在DoModal的过程中,你按钮按下那部分的代码根本就不会执行——因此,根本无从下手,也毫无意义;
如果你是直接Show的(即modeless),那么在对话框销毁之前,MyDlg的成员m_hWnd就是对话框句柄——不过问题有些怪,整个对话框都是在你按钮按下部分弹出的,你却不知从那去找对话框的句柄?莫名其妙,那你的对话框是怎么弹出来的???不如你把你的问题说得更具体一些为好。
如果你是直接Show的(即modeless),那么在对话框销毁之前,MyDlg的成员m_hWnd就是对话框句柄——不过问题有些怪,整个对话框都是在你按钮按下部分弹出的,你却不知从那去找对话框的句柄?莫名其妙,那你的对话框是怎么弹出来的???不如你把你的问题说得更具体一些为好。
在InitDialog时设定一个Timer,然后每次Timer时都自己重新加大自己的宽度即可——当大到不想再大时,就KillTimer。
1。在CInfoDlg中加入一个public的CRect型成员变量,例如m_rc;
2。在主对话框按钮按下时:
CInfoDlg dlg;
dlg.m_rc.top = 0;
dlg.m_rc.left = 0;
dlg.m_rc.bottom = 100;
dlg.m_rc.right = 100; //将这四个数字改成你期望的位置
dlg.DoModal();
...
3。在CInfoDlg::OnInitDialog中加入:
...
MoveWindow(m_rc, FALSE);
...
总之一句话,对模式对话框的任何操作,归根结底都应该由它自己来完成,因为别人根本无法得到它的句柄。