【MFC】对话框节点属性:Condition(条件)

--

前言

本文介绍对话框节点属性中的Condition(条件),同时给出相关示例便于理解。


目录

  • [1 位置](#1 位置)
  • [2 详解](#2 详解)
  • [3 示例](#3 示例)

1 位置

首先介绍一下这个属性在哪里。

  1. 在资源视图中双击对话框节点,打开该对话框;
  2. 鼠标右键对话框节点,单击属性
  3. 此时在属性对话框中就可以看到该属性了;

2 详解

  • 属性名: 条件 (Condition)
  • 详解: 这个属性直接对应资源脚本文件 (.rc) 中的预处理指令。当你设置条件后,Visual Studio 会在 .rc 文件中该资源定义的周围添加 #ifdef, #ifndef, #endif 等条件编译指令。
  • 作用
    1. 只有在满足设定的"条件"(即该宏被定义)时,该资源才会被编译并包含到最终的程序中。
    2. 如果不满足条件(即该宏未被定义),那么在编译资源时,该资源会被完全排除。最终生成的 .exe 或 .dll 文件中根本不会存在这个资源,试图用 FindResource 或 LoadDialog 等函数去加载它都会失败。
    3. 这是一个编译期的特性,而非运行期的特性。 它不是在程序运行时决定是否显示一个控件,而是在编译程序时决定是否将这个资源"创造"出来。
  • 语法格式
    • MY_FEATURE: 如果宏 MY_FEATURE 被定义了(不管其值为多少),则包含该资源。

3 示例

  1. 主程序中添加加载资源的代码,用于判断是否正常加载对话框资源;
  2. 资源编译器的预处理器定义中添加测试使用的宏(随便定义,我这里加的是CONDITION1CONDITION2=0CONDITION3=1);
    注意是资源编译器中的预处理器定义,不是C++编译器,这是两个不同的配置;
  3. 条件及测试结果;
    • 条件:CONDITION

    • 条件:CONDITION1

    • 条件:CONDITION2

    • 条件:CONDITION3

相关推荐
桀人10 分钟前
C++——内存管理——new和delete的超详细解析
开发语言·c++
Shadow(⊙o⊙)11 分钟前
Shell进程替换,自定义Shell解释器——字符串库函数灵活操作!
linux·运维·服务器·开发语言·c++·学习
_F_y20 分钟前
树形 DP 从入门到进阶:普通树形DP、树形背包、换根DP
c++·动态规划
Hua-Jay30 分钟前
OpenCV联合C++/Qt 学习笔记(二十三)----图像校正及单目位姿估计
c++·笔记·qt·opencv·学习·计算机视觉
charlie1145141911 小时前
现代C++特性指南(4)——完美转发与移动语义实战
开发语言·c++·现代c++
小白|1 小时前
cann-learning-hub:昇腾CANN社区学习中心完全指南
java·c++·算法
mirror_zAI1 小时前
C++ 仿 QQ 聊天室项目:Qt 客户端 + epoll 服务端 + Reactor 架构(含源码)
c++·qt·架构
我不是懒洋洋1 小时前
大语言模型(LLM)入门:从Transformer到ChatGPT
c语言·开发语言·c++
金创想1 小时前
积木移动题目分析及解题思路——木块问题(1)
c++·算法·字符串·c·刷题·信息学奥赛·积木
BestOrNothing_20152 小时前
C++零基础到工程实战(5.2.4):指针与引用在函数传参、返回值与效率优化中的应用
c++·指针·引用·const·函数参数