展开全部
重写OnInitDialog函数,这个是对话框的初始化函数,需要初始化的代码写在这个函数就可以了。
如果没有OnInitDialog函数,按如下步骤添加:
1. vc6.0版本
类视图 ---> 右键对话框--->添加windows消息事件(add Windows Message....) ---
---> 双击 WM_INITDIALOG
2. vs版本
类视图 ---> 右键对话框类 ---> 属性--->重写---->添加 OnInitDialog
如果没有OnInitDialog函数,按如下步骤添加:
1. vc6.0版本
类视图 ---> 右键对话框--->添加windows消息事件(add Windows Message....) ---
---> 双击 WM_INITDIALOG
2. vs版本
类视图 ---> 右键对话框类 ---> 属性--->重写---->添加 OnInitDialog
展开全部
重载对话框(CDialog)的OnInitDialog() 函数即可,可以在其中直接调整对话框内的控件位置及大小,当然也可以设置对话框的大小。
控件可能是已经设置的控件变量,或者可以通过ID获得,如 CWnd * pWnd = GetDlgItem(ID_CTROL);
GetWindowRect 获得控件的大小
用 MoveWindow 或 SetWindowPos 设置新的位置大小等
一般在可视化界面编辑器中调整即可。对于动态生成的控件等习惯在这里设置
如果窗口在运行时大小变化,可以考虑在 OnSize 中处理。
但建议把调整大小的代码单独写在一个函数中,并可在 OnInitDialog() 和 OnSize() 等地方调用。
如果要禁止大小变化,应在对话框模板中设置窗口边框为不可调整的。
控件可能是已经设置的控件变量,或者可以通过ID获得,如 CWnd * pWnd = GetDlgItem(ID_CTROL);
GetWindowRect 获得控件的大小
用 MoveWindow 或 SetWindowPos 设置新的位置大小等
一般在可视化界面编辑器中调整即可。对于动态生成的控件等习惯在这里设置
如果窗口在运行时大小变化,可以考虑在 OnSize 中处理。
但建议把调整大小的代码单独写在一个函数中,并可在 OnInitDialog() 和 OnSize() 等地方调用。
如果要禁止大小变化,应在对话框模板中设置窗口边框为不可调整的。
追问
我重新换了一个代码,就好了~~~也不知道什么原因。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在OnInitDialog() 函数里面进行初始化,这个方式只对程序刚启动有效,对于上面控件尺寸调整,可以在 WM_SIZE消息函数理进行尺寸调整,但要注意,在进行控件只存调整之前一定要先判断控件句柄是否有效,否则程序会崩溃.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
处理 WM_SIZE消息就可以实现.
通过计算客户区的大小,然后各个控件的所需要的大小就可以.
通过计算客户区的大小,然后各个控件的所需要的大小就可以.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询