说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

我用dlg.DoModal()显示一个对话框,如何改变它的起始位置和大小?90分求救。

编辑:说三道四文库 发布时间:2018-02-21 11:44
HTML文档下载 WORD文档下载 PDF文档下载
MoveWindow
up
up
up
SetWindowPos()
在OnInitDialog中SetWindowPos,就OK了。
BOOL SetWindowPos( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags );
在它的初始化消息:WM_INIT……(后面是什么我就记不清楚了:-P),MoveWindow(),它的参数定义了对话框的大小和位置。
在OnInitDialog中SetWindowPos和MoveWindow就OK了。注意坐标转换!!!
GetDlgItem(IDD_DIALOG)->MoveWindow(20,70,110,100);
SetWindowPos或MoveWindow都可以,但我觉得SetWindowPos()更好些!
1.在OnCreate 或preCreate处理函数中,修改CREATESTRUCT结构中对应字段值
2.在窗口显示之前(在initdialog中)调用movewindow或setwindowposition等函数
更改窗口位置、大小。
3.可以试试处理WM-MINMAXINFO消息指定对话框大小和位置(一般窗口可以,对话框嘛
没有试过)。
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘