【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

相关推荐
知识分享小能手1 小时前
C++ 学习教程,从入门到精通,C++ 入门知识 — 完整知识点(1)
开发语言·c++·学习
qq_199886871 小时前
第8板块·第2节:统一内存的高级特性与性能调优
c++·人工智能·gpu算力·cuda
2401_839080542 小时前
C++常见八股
数据结构·c++·算法
qq_199886872 小时前
第6板块 第2节 CUDA运行时API与驱动API 核心笔记
c++·人工智能·gpu算力
syagain_zsx3 小时前
算法基础篇 · 03 枚举(C++ 题解)
c++·算法·二进制·枚举
weixin_307779134 小时前
C++代码实现MATLAB中的ode23tb函数功能
开发语言·c++·算法·matlab
S_WEAN4 小时前
C++STL - string类的模拟实现
c++
S_WEAN4 小时前
【C++】STL - string类
c++
码匠许师傅5 小时前
【C++三方组件】toml++:人性化的配置文件格式
c++