单文档对话框的最大化和最小化问题

希望之盾 2012-05-27 01:18:56
我的单文档插入对话框后,都没有最大化和最小化按钮,我想设计一下,该怎么做?希望大家提供一些思路和建议,最好能有代码或推荐一些相应的资源!先谢谢啦!
...全文
303 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
powerzone 2012-05-28
  • 打赏
  • 举报
回复
1.定义成员变量private:CRect m_Rect_Ok;CButton m_Btn_OK;SIZE m_OldRect;
2.关联成员变量DDX_Control(pDX, IDC_BTN_OK, m_Btn_OK);
3.初始化函数OnInitDialog()添加
CRect rt;
GetClientRect(&rt);
m_OldRect.cx = rt.right;//保存按钮旧位置
m_OldRect.cy = rt.bottom;

m_Btn_OK.GetWindowRect(&m_Rect_Ok);
ScreenToClient(&m_Rect_Ok);

4.OnSize()函数添加
if (cx != m_OldRect.cx)
{//最大化时(具体精确计算自己实现)
m_Btn_OK.MoveWindow(cx/2-m_Rect_Ok.Width(), cy/2, m_Rect_Ok.Width(), m_Rect_Ok.Height());
}

if (cx == m_OldRect.cx && cy == m_OldRect.cy)
{//还原窗口
m_Btn_OK.MoveWindow(m_Rect_Ok.left, m_Rect_Ok.top, m_Rect_Ok.Width(), m_Rect_Ok.Height());
}
希望之盾 2012-05-28
  • 打赏
  • 举报
回复
我的对话框有最大化、最小化按钮了,可是对话框里面的按钮、静态文本位置在最大化后偏于左上角,不好看,我想用调整窗体里控件的位置使居中,那个WM_SIZE该怎么去写?
vc_ai_hao_zhe 2012-05-28
  • 打赏
  • 举报
回复
1.你的对话框与单文档程序是什么关系,显示在什么地方?
2.在对话框资源编辑时候可以设置属性,只要勾选标题栏属性,就可以勾选最大化和最小化属性,对话框自然
就有最大化和最小化按钮。
3.如果你想自己添加按钮控件实现最大或最小化按钮,那么在主窗口最大化时你自己要计算按钮新位置,然后
调整按钮到新的位置。
希望之盾 2012-05-28
  • 打赏
  • 举报
回复
m_Btn_OK.MoveWindow(cx/2-m_Rect_Ok.Width(), cy/2, m_Rect_Ok.Width(), m_Rect_Ok.Height());
这一句好像调试有错误,Debug Assertion Failed!这个是怎么回事?
Eleven 2012-05-27
  • 打赏
  • 举报
回复
编辑对话框资源模板
lang14 2012-05-27
  • 打赏
  • 举报
回复
对话框属性里面不是有吗??
你也可以自己写WM_消息
希望之盾 2012-05-27
  • 打赏
  • 举报
回复
我按1楼的做了一下,对话框变大了但控件没跟着变,我想要的效果是像window对话框一样,最大化时控件也要位置自动调整!怎么去编辑对话框资源模板?我的是单文档插入的对话框。
powerzone 2012-05-27
  • 打赏
  • 举报
回复
你要自绘最大化和最小化按钮还是想用对话框自带的?如果是自绘的话比较复杂,你可以google一下找到相关方法:http://www.newxing.com/Code/VC/jiemian/1001.html#download

如果用对话框自带的就简单,对话框属性->样式->勾选最大化框最小化框即可

15,979

社区成员

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

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