`

如何实现控件随对话框大小变化而自动调整大小和位置

    博客分类:
  • java
 
阅读更多
1. 处理对话框的WM_SIZE,然后用MoveWindow或者SetWindowPos来把对话框上面的控件重新调整新位置和大小。
2. 基本的做法就是响应WM_SIZE消息,并按照窗口大小比例来调整控件的位置和大小,控件的大小最好设置成窗口的百分之几,这样的话,就可以根据窗口的大小随时调整了。
3. 每次OnSize 即可获得一个CRect,然后根据这个CRect来确定这些控件的位置和大小,使用函数MoveWindow 或SetWindowpos实现。
4.
1)通过下面两个函数获取的是显示屏幕的大小【屏幕的分辨率】(不包括任务栏等区域):
  int   nFullWidth=GetSystemMetrics( SM_CXFULLSCREEN );   //屏幕宽度  
  int   nFullHeight=GetSystemMetrics( SM_CYFULLSCREEN );  //屏幕高度
2)这两个函数获取的是真正屏幕的大小【屏幕的分辨率】(包括任务栏等区域):
  int   cx   =   GetSystemMetrics( SM_CXSCREEN );  
  int   cy   =   GetSystemMetrics( SM_CYSCREEN );
如:用前两个函数获取的大小可能是1024*687 ,而用下边两个获取的就是1024*768。
5. 在OnSize() 中调用: GetClientRect()  和  GetWindowRect() 函数可获取窗口大小,但需注意得到的是设备坐标,如果需要画图什么的还需要转换成逻辑坐标。
6. 字体大小随窗口变化而自动变化,比如说始终使字的高度始终占窗口的1/3。使用:
   1). 在Creat中将nHeight设成窗口长度或者宽度的一定比值就行了 (最好在onsize函数中设置);
   2). 使用 WM_FONTCHANGE 消息。
分享到:
评论

相关推荐

    MFC中子对话框的大小随tab控件的大小改变而改变

    MFC中,包含多个对话框,子对话框在Tab控件中显示,让子对话框中的控件跟随主对话框大小变化而变化,字体也能够缩放,但是不能加载图片控件,只对控件和字体缩放,单个对话框也适用,简单易懂。主要有一个CLout类,...

    easysize很好的动态调整对话框控件大小的变化,外国人写的哦

    要让对话框中的控件随着对话框大小的变化进行自动调整,是一件很头疼的事情,需要在WM_SIZE的响应函数中对所有的控件用MoveWindow()或者SetWindowPos()设置其变化比例,极其繁琐。EasySize是一个很好解决方案,用...

    对话框控件随窗口自动调整大小、位置的类

    m_cControlPos.AddControl(IDC_BUTTON1,CP_MOVE_HORIZONTAL) //使控件IDC_BUTTON1根据窗体大小的改变自动水平移动(其他样式见最后的“样式控制表”) 4:最后,在该对话框的OnSize事件处理函数中添加如下代码: m_...

    对话框中的控件随窗口大小改变而改变 适应电脑分辨率

    看到很多软件在电脑运行的时候,一修改分辨率软件中的控件就很不协调,于是写了这个小...最终,窗口包含一个DIALOG,里面添加了几个控件,随着分辨率或者窗口高和宽等比例变化时候会自动调整大小。 有相关的文档说明。

    对话框上控件自大小布局动调整

    CDialog对话框上控件随对话框尺寸变化,自动变化大小和布局。这个源码是在底层做了处理,类似于Java或C#的自动界面布局

    可根据对话框变化自动适应控件大小

    一组宏,可根据对话框变化自动适应从而合理调整控件大小

    Visual Basic 6 Resizer VB6控件动态位置大小调整

    比如你的窗体中有一个DBGrid控件,占了很大一部分,下边有几个按钮 现在需要窗体的大小可调,以使DBGrid可以看到更多的数据,这样的话,窗体上的控件就都需要调整,不然只有窗体变化,而控件不动的话就达不到预期效果,而且...

    MFC UI控件布局 自动调整

    含源代码 含demo 当MFC对话框尺寸自动变化时 自动调整所有控件的新位置 (每个控件的位置有接口设置) 其实原理类似QT 每个布局管理由垂直容器和水平容器装载控件 具体详见实现文件 注释很详细

    VB6Resizer 1.1 Rev 22

    现在需要窗体的大小可调,以使DBGrid可以看到更多的数据,这样的话,窗体上的控件就都需要调整,不然只有窗体变化,而控件不动的话就达不到预期效果,而且很难看. 原来的方式是在窗口的Resize事件中添加调整控件大小/...

    C#控件大全

    控件的位置关系问题,即当父控件的位置、大小变化时,子控件按照 什么样的原则改变其位置、大小。Anchor属性就规定了这个原则。 对于 Anchor 属性,可以设定 Top、Bottom、Right、Left 中的任意几 种,设置的方法是...

    vc实例精通源码,windows基本控件的使用Demo

    08_AutoSize 让窗体上的控件自动适应窗体大小。 09_AutoSizeEx 多个控件改变大小时防止闪烁。 10_LimitSize 限制窗体的最大和最小尺寸。 11_AutoPos 让窗体具有停靠效果。 12_EnumWnd 枚举系统中的...

    AutoPlay_Menu_Builder6.0.1328注册版

     菜单编辑->锁定控件可以将选定的控件锁定为当前的位置和大小。菜单编辑->组合控件可以将选定的多个控件进行组合,组合之后,这些控件只能被同时选定和移动。  对齐面板菜单查看->对齐面板可以显示或隐藏对齐面板...

    AutoPlay_Menu_Builder5.5.0.1328注册版

     菜单编辑->锁定控件可以将选定的控件锁定为当前的位置和大小。菜单编辑->组合控件可以将选定的多个控件进行组合,组合之后,这些控件只能被同时选定和移动。  对齐面板菜单查看->对齐面板可以显示或隐藏对齐面板...

    Excel VBA实用技巧大全 附书源码

    01014获取Excel主窗口的左边界位置和顶端位置 01015获取在Excel主窗口中一个窗口所能占有的最大高度和宽度 01016获取当前打印机名称 01017获取MicrosoftExcel剩余内存 01018获取MicrosoftExcel的总内存 01019获取...

    C#编程经验技巧宝典

    102 <br>0162 如何实现C#中用键完成TAB的功能 102 <br>0163 如何限制文本框密码输入长度 102 <br>0164 数据输入为空提示 103 <br>0165 如何设置文本框光标到末尾 103 <br>0166 输入法调整...

Global site tag (gtag.js) - Google Analytics