MFC_改变窗口大小,随着鼠标的拖动改变
今天在做一个视频播放器的时候,需要用到不同电脑之间分辨率的不同,让其根据当前电脑的分辨率显示其大小
首先假设这个对话框类为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_改变窗口大小,随着鼠标的拖动改变相关推荐
- 无边框对话框拖动改变大小的实现总结
相同是项目遇到的问题,要求是无边框的对话框要实现鼠标的拖动改变大小.无边框对话框跟有边框的实现肯定不一样喽. 我上网搜到一种方法是: 须要处理下面这三个消息: WM_NCHITTEST WM_SET ...
- winform无边框在panel上拖动窗口位置,改变窗口大小
将窗体的FormBorderStyles属性设置为None 窗体上放一个新的panel,设置Dock属性为Fill 创建变量 private bool isMouseDown = false;//表示 ...
- php 页面拖动改变大小,鼠标拖动改变DIV等网页元素的大小的实现方法
1.初次实现 1.1 html代码 div change width by drag div change width by drag 1.2 js代码 var eleLeft = $('#myDiv ...
- Electron无边框窗口(最小化、最大化、关闭、拖动)以及动态改变窗口大小
文章目录 一.目标原型 1. 目标 2. 原型设计 3. 原型初步实现 二.无边框窗口 1. 要点 2. 改造 三.可拖拽区 1. 要点 2. 改造 四.最小化.最大化.关闭 1. 要点 2. 改造 ...
- Jquery实现鼠标拖动改变div高度
前言 鼠标拖动该DIV实现自动改变高度扩展内容显示区域. 以下是一个设计原型,基于jQuery实现,只实现了拖动效果,没有做页面美化,可以根据需求做相应修改. 转自:http://www.cnblog ...
- js 实现上下拖动改变父 div 的高度,左右上下拖动动态分割孩子的宽高
1. 需求 实现父 div 里面 左右,上下动态分割 div,并上下改变父 div 的高度,并且宽和高都是按百分比(如图) . 2. 实现原理 2.1 父布局 <div class='hj-wr ...
- VB运行后去除窗体标题栏且可改变窗口大小及移动窗体
VB去除标题栏(黑边可设)+改变窗体大小+移动窗体 窗体调用模块的代码如下: Option Explicit '最大化及还原 Private Sub Maximize() If Beautify.FW ...
- 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题
因为 Win32 的窗口句柄是可以跨进程传递的,所以可以用来实现跨进程 UI.不过,本文不会谈论跨进程 UI 的具体实现,只会提及其实现中的一个重要缓解,使用子窗口的方式. 你有可能在使用子窗口之后, ...
- 用react-resizable插件来拖动改变ant-ui表格的列宽
项目需求:react项目中,做一个可以通过鼠标拖动改变列宽的表格 第一步:安装react-resizable插件 npm install react-resizable --save 第二步:在项目中 ...
最新文章
- c++版a+b问题的各种无聊做法
- 微信小程序开发-笔记
- 皮一皮:大家对自己的定位都挺准的...
- vue-typescript-toast (一款适用于pc平台的简单toast)
- 宏光MINI EV收割的年轻人,又被苏宁、小米、欧拉盯上了
- jquery简洁遮罩插件
- mysql -连表查询
- nacos分布式配置中心搭建与使用
- Android开发网
- vscode中常用的快捷键
- 动态规划-自底向上的 0-1 背包问题
- Qt: 信号与槽机制
- 如何查找共享计算机的用户名和密码错误,访问共享文件夹提示“未知的用户名或密码错误...
- C++语言分号的使用
- 知识众筹服务平台网盘[入口]
- 爬虫-12306余票查询
- 《百年孤独》读书笔记
- 正交db小波 图像处理 matlab,基于matlab小波工具箱的数字图像处理及小波分析
- 软件测试自我介绍 说什么才能让面试官一下子记住你!
- Oauth2 中 access_token和refresh_token的过期时间