当前位置: 首页 > news >正文

对话框、内部控件位置

一、了解下几个函数

1、movewindow

了解下:MoveWindow

自己塞进去的是屏幕坐标

 CrvtFaultRodDlg* dlg = new CrvtFaultRodDlg();if (dlg != NULL){BOOL ret = dlg->Create(IDD_DlgCrvtFaultRod, NULL);if (ret) //Create failed.{RECT rect;{RECT rect1;dlg->GetWindowRect(&rect1);//获取窗口高宽int px = GetSystemMetrics(SM_CXFULLSCREEN);//获取屏幕高宽int py = GetSystemMetrics(SM_CYFULLSCREEN);int wx = rect1.right - rect1.left;int wy = rect1.bottom - rect1.top;rect.left = (px - wx) / 2;rect.top = (py - wy) / 2;rect.bottom = rect.top + wy;rect.right = rect.left + wx;}dlg->MoveWindow(&rect);dlg->ShowWindow(SW_SHOW);}}

2、GetWindowRect

了解下 GetWindowRect ​​​​​​

        获取 CWnd 的屏幕坐标

3、GetClientRect

了解下 GetClientRect

        获取 CWnd 工作区的尺寸。

4、ClientToScreen

了解下 ClientToScreen

        函数将指定点的工作区坐标转换为屏幕坐标

5、ScreenToClient 

了解下 ScreenToClient 

        函数将屏幕上指定点的屏幕坐标转换为工作区坐标。

二、使用示例

1、对话框内使用(GetClientRect

 RECT rect;GetWindowRect(&rect);

主窗口全屏,此时 rect 左,上,0,0 ;

主窗口不全屏,此时 rect 左,上,非0,非0 ;

        因此上述用法不合理,需要将屏幕坐标统一转到工作区。使用ScreenToClient 。

  RECT rect;GetWindowRect(&rect);ScreenToClient(&rect);bool BRe = mTab.Create( TCS_FIXEDWIDTH | WS_CHILD | WS_VISIBLE, // TCS_TABS 边框绘制rect, this, IDC_TABRod);if (!BRe)   return;

http://www.lryc.cn/news/249371.html

相关文章:

  • 【GraphQL 】将GraphQL API添加到Postgres数据库的六种简单方法,比较Hasura、Prisma和其他
  • 每日一题(LeetCode)----哈希表--有效的字母异位词
  • 【设计模式】行为型模式-第 3 章第 6 讲【中介者模式】
  • Django 通过 Trunc(kind) 和 Extract(lookup_name) 参数进行潜在 SQL 注入 (CVE-2022-34265)
  • Vue3-toRef 和 toRefs 函数
  • STM32---时钟树
  • 【功能测试】软件系统测试报告
  • CentOS一键安装docker脚本
  • PostGIS学习教程八:空间关系
  • ESP32-Web-Server编程- 通过文本框向 Web 提交数据
  • NAT网络地址转换
  • PyTorch模型训练过程内存泄漏问题解决
  • 【matlab程序】matlab利用工具包nctool读取grib2、nc、opendaf、hdf5、hdf4等格式数据
  • pytorch训练模板
  • 代码随想录二刷 |字符串 |反转字符串
  • Rust语言入门教程(九) - 结构体
  • 如何使用Qchan搭建更好保护个人隐私的本地图床并在公网可访问
  • AI伪原创软件-AI伪原创工具下载
  • 【python脚本】获取OneNET数据写入本地文件
  • 5 存储器映射和寄存器
  • 决策树学习
  • 如何在Ubuntu系统上安装Git
  • Leetcode.974 和可被 K 整除的子数组
  • Vue打包错误UnhandledPromiseRejectionWarning: CssSyntaxError
  • 鸿蒙系统扫盲(三):鸿蒙开发用什么语言?
  • linux 中vmalloc实现简述
  • homeassistant 随笔
  • 带大家做一个,易上手的家常炒鸡蛋
  • 芒格传奇落幕!生前最后一次谈论比特币,说了什么?
  • Springboot如何快速生成分页展示以及统计条数