【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

相关推荐
Larry_Yanan7 分钟前
Qt网络开发之基于 QWebEngine 实现简易内嵌浏览器
linux·开发语言·网络·c++·笔记·qt·学习
2401_8318249614 分钟前
嵌入式C++驱动开发
开发语言·c++·算法
cui_ruicheng19 分钟前
C++数据结构进阶:哈希表实现
数据结构·c++·算法·哈希算法·散列表
li星野30 分钟前
[特殊字符] 模拟试卷一:C++核心与系统基础(90分钟)答案版
开发语言·c++·算法
呆瑜nuage37 分钟前
【复习系列】高频C/C++库函数手写实现指南与自定义类型的理解指南
c语言·c++·面试
li星野44 分钟前
C++面试真题分享20260320
java·c++·面试
Irissgwe1 小时前
c++特殊类设计
java·开发语言·c++
2301_816651221 小时前
C++中的享元模式变体
开发语言·c++·算法
m0_583203131 小时前
C++中的访问者模式变体
开发语言·c++·算法
浅念-1 小时前
C ++ 智能指针
c语言·开发语言·数据结构·c++·经验分享·笔记·算法