【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

相关推荐
星轨初途2 分钟前
LeetCode 热题 100——day10 和为 K 的子数组
开发语言·c++·算法·leetcode
有点。9 分钟前
C++广度优先搜索(二)-练习题
c++·算法·宽度优先
Q741_14716 分钟前
TcpDump 使用笔记
网络·c++·笔记·测试工具·tcpdump
程序猿编码20 分钟前
不用PyTorch,不用CUDA,我用C++手写了一个能跑GPT和Whisper的推理库
c++·pytorch·gpt·大模型·whisper
MC皮蛋侠客31 分钟前
TDengine C++ 系列(1):全景与最小闭环——从时序数据到第一个 C++ 读写
大数据·c++·tdengine
MC皮蛋侠客1 小时前
TDengine C++ 系列(5):C/C++ 连接器——连接管理与查询 API
c语言·c++·tdengine
MC皮蛋侠客1 小时前
TDengine C++ 系列(8):流式计算与最新值缓存——库内实时处理
c++·缓存·tdengine
*.✧屠苏隐遥(ノ◕ヮ◕)ノ*.✧9 小时前
C++学习:基础知识的掌握
c++·visualstudio
C++ 老炮儿的技术栈15 小时前
从 Qt Designer 属性编辑器的层级可以看到继承链
c语言·数据库·c++·qt·sqlite·visual studio
new_zhou16 小时前
C++ 项目 AI 协作指南(Windows / MSVC 环境)
c++·人工智能·windows