今天在做一个视频播放器的时候,需要用到不同电脑之间分辨率的不同,让其根据当前电脑的分辨率显示其大小
首先假设这个对话框类为CMyDialog。
这篇文章转载了:https://blog.csdn.net/renyongwang1988/article/details/16840735

第一步:在CMyDialog中添加一个成员变量CRect m_rect;

第二步:在CmyDialog的初始化函数OnInitDialog()中添加GetClientRect(&m_rect);

第三步:自定义一个函数,根据控件ID进行处理

void CMyDialog::ChangeSize(UINT nID,int cx,int cy)

{

CWnd &pWnd;

pWnd =GetDlgItem(nID); //获取控件句柄
if(pWnd) //判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建
{
CRect rect; //获取控件变化前大小
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect); //将控件大小转换为在对话框中的区域坐标
rect.left = rect.left * cX/ m_rect.Width(); // 调整控件大小

rect.right = rect.right * cX / m_rect.Width();

rect.top = rect.top * cY/ m_rect.Heigth(); // 调整控件大小

rect.bottom = rect.bottom * cY / m_rect.Heigth();

pWnd->MoveWindow(rect);
}
}

第四步:调用CmyDialog的WM_SIZE消息,响应其函数:

voidCMyDialog::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);

if(NType != SIZE_MINIMIZED)
{
ChangeSize(IDC_BUTTON1, cx, cy);
ChangeSize(IDC_BUTTON2, cx, cy);
ChangeSize(IDC_BUTTON3, cx, cy);
ChangeSize(IDC_BUTTON4, cx, cy); //其中这些IDC是对话框上的控件的id
GetClientRect(&m_rect); // 将变化后的对话框大小设为旧大小,否则无法还原控件原始位置
}
}

MFC_改变窗口大小,随着鼠标的拖动改变相关推荐

  1. 无边框对话框拖动改变大小的实现总结

    相同是项目遇到的问题,要求是无边框的对话框要实现鼠标的拖动改变大小.无边框对话框跟有边框的实现肯定不一样喽. 我上网搜到一种方法是: 须要处理下面这三个消息: WM_NCHITTEST  WM_SET ...

  2. winform无边框在panel上拖动窗口位置,改变窗口大小

    将窗体的FormBorderStyles属性设置为None 窗体上放一个新的panel,设置Dock属性为Fill 创建变量 private bool isMouseDown = false;//表示 ...

  3. php 页面拖动改变大小,鼠标拖动改变DIV等网页元素的大小的实现方法

    1.初次实现 1.1 html代码 div change width by drag div change width by drag 1.2 js代码 var eleLeft = $('#myDiv ...

  4. Electron无边框窗口(最小化、最大化、关闭、拖动)以及动态改变窗口大小

    文章目录 一.目标原型 1. 目标 2. 原型设计 3. 原型初步实现 二.无边框窗口 1. 要点 2. 改造 三.可拖拽区 1. 要点 2. 改造 四.最小化.最大化.关闭 1. 要点 2. 改造 ...

  5. Jquery实现鼠标拖动改变div高度

    前言 鼠标拖动该DIV实现自动改变高度扩展内容显示区域. 以下是一个设计原型,基于jQuery实现,只实现了拖动效果,没有做页面美化,可以根据需求做相应修改. 转自:http://www.cnblog ...

  6. js 实现上下拖动改变父 div 的高度,左右上下拖动动态分割孩子的宽高

    1. 需求 实现父 div 里面 左右,上下动态分割 div,并上下改变父 div 的高度,并且宽和高都是按百分比(如图) . 2. 实现原理 2.1 父布局 <div class='hj-wr ...

  7. VB运行后去除窗体标题栏且可改变窗口大小及移动窗体

    VB去除标题栏(黑边可设)+改变窗体大小+移动窗体 窗体调用模块的代码如下: Option Explicit '最大化及还原 Private Sub Maximize() If Beautify.FW ...

  8. 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题

    因为 Win32 的窗口句柄是可以跨进程传递的,所以可以用来实现跨进程 UI.不过,本文不会谈论跨进程 UI 的具体实现,只会提及其实现中的一个重要缓解,使用子窗口的方式. 你有可能在使用子窗口之后, ...

  9. 用react-resizable插件来拖动改变ant-ui表格的列宽

    项目需求:react项目中,做一个可以通过鼠标拖动改变列宽的表格 第一步:安装react-resizable插件 npm install react-resizable --save 第二步:在项目中 ...

最新文章

  1. c++版a+b问题的各种无聊做法
  2. 微信小程序开发-笔记
  3. 皮一皮:大家对自己的定位都挺准的...
  4. vue-typescript-toast (一款适用于pc平台的简单toast)
  5. 宏光MINI EV收割的年轻人,又被苏宁、小米、欧拉盯上了
  6. jquery简洁遮罩插件
  7. mysql -连表查询
  8. nacos分布式配置中心搭建与使用
  9. Android开发网
  10. vscode中常用的快捷键
  11. 动态规划-自底向上的 0-1 背包问题
  12. Qt: 信号与槽机制
  13. 如何查找共享计算机的用户名和密码错误,访问共享文件夹提示“未知的用户名或密码错误...
  14. C++语言分号的使用
  15. 知识众筹服务平台网盘[入口]
  16. 爬虫-12306余票查询
  17. 《百年孤独》读书笔记
  18. 正交db小波 图像处理 matlab,基于matlab小波工具箱的数字图像处理及小波分析
  19. 软件测试自我介绍 说什么才能让面试官一下子记住你!
  20. Oauth2 中 access_token和refresh_token的过期时间

热门文章

  1. MySQL时间戳转换
  2. 在 Domino 邮件服务器上配置 Verse On-Premises
  3. FREERTOS必备知识-喂狗-死机
  4. go语言环境安装之插件
  5. Linux power supply framwork drvs
  6. Cisco NSF 与NSR 与GR
  7. Visio中图形关于轴线对称
  8. 十进制转化成二进制(C++)
  9. LVTTL、LVCOMS、SSTL和HSTL接口简单介绍
  10. Ubuntu10.04下载Android-x86(froyo-x86)源代码步骤