VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 249|回复: 1

[交流] duilib 如何编程改变窗口的高度?

[复制链接]
59_avatar_middle
在线会员 wangzhengzhang 发表于 2018-4-28 11:03:00 | 显示全部楼层 |阅读模式
duilib 如何编程改变窗口的高度?




上一篇:求教duilib开机自启动加载xml失败!
下一篇:新人报告来了新人报告来了

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

51_avatar_middle
online_admins Syc 发表于 2018-4-28 11:55:34 | 显示全部楼层
DuiLib 重设窗口大小ResizeClient()函数

使用DUILIB进行界面编写的时候,一般会在xml预设窗口的大小。如:
  1. <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
  2. <Window size="400,260">
复制代码


在上面xml中窗口大小预设为宽400,高260。
有时候一个window控件下有多个其他控件(如水平控件或垂直控件),这些控件高度可能跟预设窗体高度不一样,这个时候需要改变预设的窗口大小。如下:
  1. <?xml version="1.0" encoding="utf-8" standalone="yes" ?>  
  2. <Window size="400,260">  
  3. <VerticalLayout>  
  4.     <TabLayout name="XXX">  
  5.         <HorizontalLayout name="test_0" width="400" height="260">  
  6.         <HorizontalLayout name="test_1" width="400" height="300">  
  7.     </TabLayout>  
  8. </VerticalLayout>  
复制代码


窗体预设大小为宽400,高260,在window控件下,有两个水平控件test_0和test_1,test_0控件大小和预设一直,但是test_1高度大于了预设的260,如果直接在xml进行设置height,其实是不起作用的。这个时候可以使用CWindowWnd窗口中的ResizeClient函数来重新设置窗口尺寸大小,宽和高。

  1. void ResizeClient(int cx = -1, int cy = -1);//cx为窗体的宽度,cy为窗体的高度  
复制代码


cx和cy的值取决于你需要重设窗口的具体宽和高,这个具体的值可以自己摸索和尝试。函数定义:

  1. void ResizeClient(int cx /*= -1*/, int cy /*= -1*/)  
  2. {  
  3.     ASSERT(::IsWindow(m_hWnd));  
  4.     RECT rc = { 0 };  
  5.     if( !::GetClientRect(m_hWnd, &rc) ) return;  
  6.     if( cx != -1 ) rc.right = cx;  
  7.     if( cy != -1 ) rc.bottom = cy;  
  8.     if( !::AdjustWindowRectEx(&rc, GetWindowStyle(m_hWnd), (!(GetWindowStyle(m_hWnd) & WS_CHILD) && (::GetMenu(m_hWnd) != NULL)), GetWindowExStyle(m_hWnd)) ) return;  
  9.     ::SetWindowPos(m_hWnd, NULL, 0, 0, rc.right - rc.left, rc.bottom - rc.top, SWP_NOZORDER | SWP_NOMOVE | SWP_NOACTIVATE);  
  10. }
复制代码

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-8-19 10:02

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表