duilib中使用mfc控件

news2024/11/16 17:44:49

我在界面相隔挺远的位置添加2个mfc控件,

需要添加: 

1. 添加 CMfcWndUI 类,这是为了调用mfc控件用的

2. 添加 duilib界面 CDuiFrameWnd

3.重写 2中界面的virtual CControlUI* CreateControl(LPCTSTR pstrClassName); 函数

需要注意的地方:

1. 需要先在xlm上有对应的控件  MyWin32Wnd MyMfcWnd为对应的类名

        <MyWin32Wnd name="btnMfc" text="MFC Button" float="true" pos="39,202,199,232" textcolor="#FF000000" disabledtextcolor="#FFA7A6AA" align="center" normalimage="file=&apos;button_nor.bmp&apos; corner=&apos;4,2,4,2&apos; fade=&apos;200&apos; hsl=&apos;true&apos;" hotimage="file=&apos;button_over.bmp&apos; corner=&apos;4,2,4,2&apos; fade=&apos;200&apos; hsl=&apos;true&apos;" pushedimage="file=&apos;button_down.bmp&apos; corner=&apos;4,2,4,2&apos; fade=&apos;200&apos; hsl=&apos;true&apos; " />
        <MyMfcWnd name="btnMfc" text="MFC Button" float="true" pos="200,202,350,232" textcolor="#FF000000" disabledtextcolor="#FFA7A6AA" align="center" normalimage="file=&apos;button_nor.bmp&apos; corner=&apos;4,2,4,2&apos; fade=&apos;200&apos; hsl=&apos;true&apos;" hotimage="file=&apos;button_over.bmp&apos; corner=&apos;4,2,4,2&apos; fade=&apos;200&apos; hsl=&apos;true&apos;" pushedimage="file=&apos;button_down.bmp&apos; corner=&apos;4,2,4,2&apos; fade=&apos;200&apos; hsl=&apos;true&apos; " />
    

2.CControlUI* CDuiFrameWnd::CreateControl(LPCTSTR pstrClassName)中 

pstrClassName 为xml中类名

3.m_pButton->Create( WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, CRect(0, 0, 0, 0), CWnd::FromHandle(m_PaintManager.GetPaintWindow()), MFC_BUTTON_ID);

中create中 CRect的参数为 左上右下,不同控件,修改CRect的位置。

4. #define  MFC_BUTTON_ID        8001   

添加宏定义

参考:MFC与duilib之间控件相互调用_mfc程序调用duilib_byxdaz的博客-CSDN博客https://blog.csdn.net/byxdaz/article/details/72862013?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168550959016782425133423%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168550959016782425133423&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-6-72862013-null-null.142%5Ev88%5Econtrol_2,239%5Ev2%5Einsert_chatgpt&utm_term=duilib%E4%B8%AD%E4%BD%BF%E7%94%A8%20mfc%20%20%E6%8E%A7%E4%BB%B6&spm=1018.2226.3001.4187

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

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

相关文章

xray工具—代理扫描、爬虫扫描、Burp联动

xray工具—代理扫描、爬虫扫描、Burp联动 1. Xray介绍1.1. 支持漏洞检测类型1.2. 官网地址 2. 常用扫描模式2.1. 生成证书2.1.1. 浏览器安装证书 2.2. Xray基础主动扫描2.2.1. 基础主动扫描命令2.2.2. 基础主动扫描结果 2.3. Xray代理模式扫描2.3.1. 代理模式配置代理2.3.2. 代…

一场变革来到零售业,盖雅「劳动力账户」助力连锁门店全面管理人效

‍ 上半年&#xff0c;逐渐回暖的出游&#xff0c;为文旅和线下零售业的营收创造了希望&#xff0c; 但面对高周转率和低利润率的行业竞争格局&#xff0c;比起令人兴奋的营收&#xff0c;大部分零售企业仍在焦虑营收背后的成本。 或许是过去三年的环境让更多企业学会了「精…

Microsoft Build 两大主题:Copilots 和插件

在 Microsoft Build 中&#xff0c;贯穿会议的两个主要主题是 Copilots - 涵盖广泛产品和服务的 AI 助手 - 以及插件&#xff0c;它们有效地将 Copilots 转变为聚合器&#xff0c;可能使其成为企业和消费者客户的一站式商店。 微软MVP实验室研究员 张善友 深圳友浩达 CTO&…

Python:Python编程:金融量化交易

金融量化交易 1. numpy2. scipy3. Pandas3.1 : Series 3.2&#xff1a; DataFrame代码示例 在金融量化交易中&#xff0c;下面几个模块是应用的比较广泛的 numpy (Numberic Python) : 提供大量的数值编程工具&#xff0c;可以方便的处理&#xff1a;向量矩阵等运算&#xff0c;…

cuda编程学习——CUDA内存介绍(七)

前言 参考资料&#xff1a; 高升博客 《CUDA C编程权威指南》 以及 CUDA官方文档 CUDA编程&#xff1a;基础与实践 樊哲勇 文章所有代码可在我的GitHub获得&#xff0c;后续会慢慢更新 文章、讲解视频同步更新公众《AI知识物语》&#xff0c;B站&#xff1a;出门吃三碗饭 …

Linux 中断子系统中GIC 中断控制器基本分析

GIC 是 ARM 公司给 Cortex-A/R 内核提供的一个中断控制器&#xff0c;类似 Cortex-M 内核&#xff08;STM32&#xff09;中的 NVIC。 GIC&#xff1a;Generic Interrupt Controller&#xff0c;通用中断控制器。 NVIC&#xff1a;Nested Vectored Interrupt Controller&#…

RTX4060Ti上演史诗级尴尬,线下核心商区斩获个位数销量

时隔两年半&#xff0c;一代甜品 RTX 3060 Ti 显卡继任者 RTX 4060 Ti 终于上架了。 经过几天网上对比测试&#xff0c;情况就这么个情况&#xff0c;综合性能提升堪堪 10% 左右&#xff0c;价格上涨至 3199 元起。 来源&#xff1a;clubic 参考 RTX 4090 超 50% 性能提升&am…

聊聊 220V交流 过零检测

聊聊过零检测&#xff0c;以及如何实现过零检测 ...... by 矜辰所致目录 前言一、什么是过零检测1.1 为何需要过零检测 二、如何做过零检测2.1 光耦2.2 比较器/运放2.3 三极管/MOS管2.4 过零检测芯片 三、过零检测电路结语 前言 最近正好项目需求遇到需要做过零检测&#xff…

【刷题之路Ⅱ】LeetCode 1823. 找出游戏的获胜者(约瑟夫问题)

【刷题之路Ⅱ】LeetCode 1823. 找出游戏的获胜者 一、题目描述二、解题1、方法1——单向环形链表1.1、思路分析1.2、代码实现 2、方法2——队列2.1、思路分析2.2、先将队列实现一下2.3、代码实现 一、题目描述 原题连接&#xff1a; 1823. 找出游戏的获胜者 题目描述&#xff…

Java基础篇 | Java基础语法

✅作者简介&#xff1a;大家好&#xff0c;我是Cisyam&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Cisyam-Shark的博客 &#x1f49e;当前专栏&#xff1a; Java从入门到精通 ✨特色…

2023年上半年网络工程师上午真题及答案解析

1.固态硬盘的存储介质是( )。 A.光盘 B.闪存 C.软盘 D.磁盘 2.虚拟存储技术把( )有机地结合起来使用&#xff0c;从而得到一个更大容量的“内存”。 A.内存与外存 B.Cache与内存 C.寄存器与Cache D.Cache与外存 3.下列接口协议中&…

论文阅读 —— 语义激光SLAM

文章目录 点云语义分割算法1 基于点的方法2 基于网格的方法3 基于投影的方法 一、SLOAM1.1 语义部分1.2 SLAM部分1.2.1 树的残差1.2.2 地面的残差1.2.3匹配过程 二、SSC: Semantic Scan Context for Large-Scale Place Recognition2.1 两步全局语义ICP2.1.1 快速偏航角计算2.1.…

【已解决---ChatGPT学术优化下载安装问题集锦】

文章目录 问题1&#xff1a;关于配置完项目后关闭&#xff0c;如何再次打开快速启动。问题2&#xff1a;项目链接打不开,是404。问题3&#xff1a;出现关于API的报错。问题4&#xff1a;[Local Message] Request timeout. Network error. Please check proxy settings in confi…

8.Ansible Variables介绍

什么是Ansible Variables&#xff1f; 就像任何其他脚本或编程语言一样&#xff0c;变量用于存储变化的值&#xff61;例如, 假设我们要尝试执行相同的操作, 将修补程序应用于数百台服务器&#xff61;我们只需要一个playbook就可以满足所有100台服务器的需求&#xff61;但是,…

chatgpt赋能python:Python中提取指定元素——一个简单而精细的方法

Python中提取指定元素——一个简单而精细的方法 在网页抓取中&#xff0c;经常需要提取特定元素&#xff0c;例如标题、段落、图片等&#xff0c;以便于后续的数据处理与分析。而Python则是许多工程师在此领域中的首选语言&#xff0c;其灵活的语法和强大的第三方库给爬虫和数…

idea怎么搭建springboot

一般来说&#xff0c;用IDEA创建SpringBoot项目有两种方式。其一是Spring官网提供了一个快速生成SpringBoot项目的网站&#xff0c;可以在官网直接下载后&#xff0c;再导入IDEA中。另外一种是直接用IDEA创建一个SpringBoot项目&#xff0c;一般开发也是用的这种方式进行创建。…

为什么串行接口速率比并行接口快?

串行接口的速率会比并行快&#xff0c;可以从下面四个方面考虑&#xff1a; ①高速串口不需要时钟信号来同步数据流&#xff0c;也就没有时钟周期性的边沿&#xff0c;频谱不会集中&#xff0c;所以噪声干扰少很多。 以PCIE和SATA为例&#xff0c;时钟信息通过8b/10b编码已经集…

正运动技术运动控制器如何快速实现单轴/多轴同步跟随功能?

本文主要介绍如何使用MOVESYNC指令快速实现单轴/多轴同步跟随功能&#xff0c;适用于XYZ&#xff08;R&#xff09;、SCARA、DELTA等常见机械结构&#xff0c;在流水线点胶、流水线产品分拣、流水线产品搬运等场景中广泛应用。 阅读本文&#xff0c;学习同步跟随的原理和实现方…

抖音seo源码系统开发服务商选择

“账号矩阵”是一种账号运营的高阶玩法&#xff0c;指一个运营主体同时开设多个平台多个账号利用品牌联动的形式来实现账号之间的相关引流&#xff0c;以账号组的形式实现企业营销价值最大化。那么运营多个账号&#xff0c;短视频平台内容是核心&#xff0c;势必要招募多个剪辑…

RK平台使用IO指令

简介 RK平台开发过程经常要用到IO指令&#xff0c;主要是用来读写CPU各个模块寄存器的值&#xff0c;从而实现在线调试。 RK平台的SDK默认有包含IO指令的源码&#xff0c;如果执行的时候找不到指令&#xff0c;可能是没有编译进去&#xff0c;找到对应的编译脚本编译进去即可。…