MFC 下拉框显示问题和控件自适应窗口大小

在mfc开发过程中,遇到了下拉框的两个问题,现在记录一下

1、把下拉框点开显示不全我放进去的多条文本

        解决办法:把鼠标放到下拉框的倒三角去点一下,鼠标就会变成双向箭头,或者先选中一下下拉框再把鼠标移动到倒三角上去再点一下都可以,之后会出现可以调整大小的八个点,其中只有下面那条的中间的点是全黑色,表示可以往下拖,你就可以按照你需要的高度进行调整了

2、下拉框的宽度不够导致文本内容显示不完整

        解决办法:为了排版美观,我的解决办法是,改变了下拉框的宽度,但是并不修改下拉框这个控件的宽度,以最长的那条文本的宽度为准     

// 创建设备上下文
CDC* pDC = partsComboBox.GetDC();// 获取文本宽度
CSize textSize = pDC->GetTextExtent(maxTxt);// 计算下拉框的宽度
int dropdownWidth = textSize.cx;// 设置下拉框的宽度
partsComboBox.SetDroppedWidth(dropdownWidth - 70);// 释放设备上下文
partsComboBox.ReleaseDC(pDC);

3、控件自适应窗口

        解决办法:看以下代码,以下方法有点BUG,拖动窗口玩一下,拖拽的频率太高了会导致崩掉,而且像表格的单元格大小是不支持改变的,只会改变表格的大小

在.h文件中声明:void ResizeUI();
vector<CRect> m_vec_rect_;在.cpp:BOOL dlg::OnInitDialog()
{CBCGPDialog::OnInitDialog();//获取区域CRect rect;GetWindowRect(&rect);m_vec_rect_.push_back(rect);CWnd* pWnd = GetWindow(GW_CHILD);//窗体 while(pWnd){pWnd->GetWindowRect(rect);m_vec_rect_.push_back(rect);pWnd = pWnd->GetNextWindow();}   }//添加修改大小的消息处理函数ON_WM_SIZE()
void dlg::OnSize(UINT nType, int cx, int cy)
{CBCGPDialog::OnSize(nType, cx, cy);if(nType != SIZE_MINIMIZED){ResizeUI();}
}void dlg::ResizeUI()
{if (m_vec_rect_.size() > 0){CRect rect;GetWindowRect(&rect);ScreenToClient(rect);//第一个保存的是对话框的Rect CRect saveRect = m_vec_rect_[0];//根据当前和之前保存的对话框的宽高求比例 float x = rect.Width() * 1.0f / saveRect.Width();float y = rect.Height() *1.0f/ saveRect.Height();int iSize = m_vec_rect_.size();int idx = 1;ClientToScreen(rect);CRect saveChild; CWnd* pWnd = GetWindow(GW_CHILD); while(pWnd && idx < iSize) {saveChild = m_vec_rect_[idx];//根据比例调整控件上下左右距离对话框的距离 saveChild.left = rect.left + (saveChild.left - saveRect.left)*x;saveChild.right = rect.right + (saveChild.right - saveRect.right)*x;saveChild.top = rect.top + (saveChild.top - saveRect.top)*y;saveChild.bottom = rect.bottom + (saveChild.bottom - saveRect.bottom)*y;ScreenToClient(saveChild);pWnd->MoveWindow(saveChild);pWnd = pWnd->GetNextWindow();++idx;}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/61708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python-办公自动化】实现自动化输出模板表格报告

import pandas as pd import numpy as np# 定义时间范围 date_range = pd.date_range(start=2023-11-01, end=2024-10-31, freq=M

规则引擎aviatorEvaluator注意点

规则引擎aviatorEvaluator注意点 官方文档&#xff1a;AviatorScript 编程指南&#xff08;5.0&#xff09; 语雀 1、依赖 <!--规则引擎--><dependency><groupId>com.googlecode.aviator</groupId><artifactId>aviator</artifactId><…

接上一主题,C++14中如何设计类似于std::any,使集合在C++中与Python一样支持任意数据?

这篇文章的重点是C多态的应用&#xff0c;但是如果你是C新手&#xff0c; 你需要了解以下C知识&#xff1a; 类 构造函数 拷贝构造函数 虚拟函数 纯虚拟函数 析构函数 类的继承 运算符重写 模板类 模板参数 数组 数组的传递 指针与动态内存分配 Python&#xff1a; s …

SpringBoot3与JUnit5集成测试

你可以在 Spring Boot 3 中轻松设置和运行 JUnit 集成测试。合理使用 Spring 提供的注解和工具&#xff0c;可以确保测试的高效性和可靠性。以下是集成测试的步骤和示例&#xff1a; 1. 添加依赖 在 pom.xml 中添加 Spring Boot Starter Test 依赖&#xff0c;它包含 JUnit 5 …

【系统架构设计师】真题论文: 论网络安全体系设计(包括解题思路和素材)

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2014年 试题4)解题思路论文素材参考网络安全体系设计目标与原则网络安全体系的主要组成部分网络安全体系设计流程真题题目(2014年 试题4) 随着社会信息化的普及,计算机网络已经在各行各业得到了广泛…

5.STM32之通信接口《精讲》之USART通信---实验串口接收程序

根据上节&#xff0c;我们一已经完成了串口发送程序的代码&#xff0c;并且深入的解析探索了串口的原理&#xff0c;接下来&#xff0c;Whappy小编将带领大家进入串口接收程序的探索与实验&#xff0c;并将结合上一节串口发送一起来完成串口的发送和接收实验。 上来两张图 上图…

微服务即时通讯系统的实现(服务端)----(1)

目录 1. 项目介绍和服务器功能设计2. 基础工具安装3. gflags的安装与使用3.1 gflags的介绍3.2 gflags的安装3.3 gflags的认识3.4 gflags的使用 4. gtest的安装与使用4.1 gtest的介绍4.2 gtest的安装4.3 gtest的使用 5 Spdlog日志组件的安装与使用5.1 Spdlog的介绍5.2 Spdlog的安…

macos 使用 nvm 管理 node 并自定义安装目录

系统环境&#xff1a;MacOS Version 参考文章&#xff1a; Github 地址&#xff1a;https://github.com/nvm-sh/nvm 安装的方式是很简单的&#xff0c;直接执行下面的命令即可&#xff1a; curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bas…

数字IC后端实现时钟树综合系列教程 | Clock Tree,Clock Skew Group之间的区别和联系

Q: Clock&#xff0c;Clock Tree和Skew Group有何区别&#xff1f;Innovus CCOPT引擎是如何使用这些的&#xff1f; Clock是时序约束SDC中的时钟定义点。 create_clock -name clk_osc -period $period_24m [get_ports xin_osc0_func] 时钟树综合(Clock Tree Synthesis)之前应…

tcpdump抓包 wireShark

TCPdump抓包工具介绍 TCPdump&#xff0c;全称dump the traffic on anetwork&#xff0c;是一个运行在linux平台可以根据使用者需求对网络上传输的数据包进行捕获的抓包工具。 tcpdump可以支持的功能: 1、在Linux平台将网络中传输的数据包全部捕获过来进行分析 2、支持网络层…

安装支持ssl的harbor 2.1.4 docker 19.03.8 docker-compose 1.24.0

版本&#xff1a; docker 19.03.8 docker-compose 1.24.0 harbor: harbor-offline-installer-v2.1.4.tgz 1、先在/root下生成证书 #生成ca根证书 openssl genrsa -out ca.key 4096#创建ca证书 openssl req -x509 -new -nodes -sha512 -days 3650 \-subj "/CCN/STShenzh…

青少年编程等级考试C++一级,硬币反转问题

代码 #include<iostream>using namespace std;bool a[300];int main(){ int n,m; cin >> n >> m; for(int i 1;i < m;i) { for (int j 1;j < n;j) { if( j % i 0) { a[j] !a[j];…

【Qt流式布局改造支持任意位置插入和删除】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、源代码二、删除代码三、扩展总结 前言 最近在做一个需求需要流式布局&#xff0c;虽然官方example里有一个流式布局范例&#xff0c;但是不能满足我的需求…

“AI玩手机”原理揭秘:大模型驱动的移动端GUI智能体

作者&#xff5c;郭源 前言 在后LLM时代&#xff0c;随着大语言模型和多模态大模型技术的日益成熟&#xff0c;AI技术的实际应用及其社会价值愈发受到重视。AI智能体&#xff08;AI Agent&#xff09;技术通过集成行为规划、记忆存储、工具调用等机制&#xff0c;为大模型装上…

小R的二叉树探险 | 模拟

问题描述 在一个神奇的二叉树中&#xff0c;结构非常独特&#xff1a; 每层的节点值赋值方向是交替的&#xff0c;第一层从左到右&#xff0c;第二层从右到左&#xff0c;以此类推&#xff0c;且该二叉树有无穷多层。 小R对这个二叉树充满了好奇&#xff0c;她想知道&#xf…

Unity类银河战士恶魔城学习总结(P141 Finalising ToolTip优化UI显示)

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址&#xff1a;https://www.udemy.com/course/2d-rpg-alexdev/ UI部分暂时完结&#xff01;&#xff01;&#xff01; 本章节优化了UI中物品描述的显示效果&#xff0c;技能描述的显示效果 并且可以批…

快速获取url路径参数方法

如何根据当前url获取路径上的参数值&#xff1f; 例&#xff1a; // 若网页前路径url https://editor.csdn.net/md/?id1&workId2&name小包子方法如下&#xff1a; urlGetParam(param) {const reg new RegExp((^|&)${param}([^&]*)(&|$));const r deco…

windows实现VNC连接ubuntu22.04服务器

最近弄了一个700块钱的mini主机&#xff0c;刷了ubuntu22.04系统&#xff0c;然后想要在笔记本上通过VNC连接&#xff0c;这样就有了一个linux的开发环境。最后实现的过程为&#xff1a; 安装vnc服务器 安装 VNC 服务器软件&#xff1a; sudo apt update sudo apt install t…

Perforce《2024游戏技术现状报告》Part3:生成式AI、版本控制、CI/CD等游戏技术的未来趋势与应用

游戏开发者一直处于创新前沿。他们的实践、工具和技术受到各行各业的广泛关注&#xff0c;正在改变着组织进行数字创作的方式。 近期&#xff0c;Perforce发布了《2024游戏技术现状报告》&#xff0c;通过收集来自游戏、媒体与娱乐、汽车和制造业等高增长行业的从业者、管理人…

初阶数据结构之队列的实现

1 队列的定义 什么是队列呢&#xff1f;队列只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作。队列具有先进先出FIFO(First In First Out)的特性。 队头&#xff1a;删除数据的一端称为队头。 队尾&#xff1a;插入数据的一端称为队尾。 2 队列底层结构…