学习记录之二:数据交换和校验

一:DDX

DDX(Dialog Data Exchange,DDX)对话框数据交换是用来在CDialog派生类中创建成员变量,并使之与界面模板上的控件相关联。DDX有两个类别:控件和值。DDX值变量是包含一个具体控件的值的成员变量。用于生命成员变量的具体C++类型取决于控件的类型。DDX变量(控件变量和值变量)都是通过Add Member Variable 对话框建立的。

二 DoDataExchange()和UpdateData()

  CWnd::DoDataExchange()函数对于使用界面派生类的DDX成员变量链接在界面上的控件起了关键性作用。如果创建了DDX成员,DoDataExchange()函数将有Class Wizard创建并自动维护。

  CWnd::UpdateData()是有框架提供,并包含对DoDataExchange()函数调用。UpdateData()函数只带一个参数,指明控件是否被正常更新或者成员变量是否被更新:  BOOL UpdateData(BOOL bSaveAndValidate);  如果 bSaveAndValidate 的值为TRUE(如果未传入值,则这是默认值),则与控件关联的DDX值成员变量用对话框中控件的文本进行更新。

时间: 2024-12-28 00:55:22

学习记录之二:数据交换和校验的相关文章

webpack学习记录(十二)-区分不同环境

webpack学习记录(十二)-区分不同环境 定义全局变量 使用webpack内置的插件DefinePlugin 允许创建一个在编译时可以配置的全局常量. 用法 //在webpack.config.js中配置插件 new webpack.DefinePlugin({ PRODUCTION: JSON.stringify(true) }) //在index.js中使用定义的变量 if (!PRODUCTION) { console.log('Debug info') } if (PRODUCTIO

redis入门学习记录(二)

继第一节 redis入门学习记录(一)之后,我们来学习redis的基本使用. 接下来我们看看/usr/local/redis/bin目录下的几个文件作用是什么? redis-benchmark:redis性能测试工具 redis-check-aof:检查aof日志的工具 redis-check-dump:检查rdb日志的工具 redis-cli:连接用的客户端 redis-server:redis服务进程 1.使用redis的客户端操作 我们现在往redis存储一个key = value  的数

Theano学习记录(二) 多层感知机

Theano学习记录(一) 逻辑斯蒂回归 Experiment 1: 使用推荐的配置 learning_rate = 0.01 L1_reg = 0.00 L2_reg=0.0001 n_epoches=1000 batch_size=20 n_hidden=500 实验结果: 实验耗时: Experiment 2: 自己中间加入两个隐含层,分别为400 和 300 个节点.实验配置如下: learning_rate = 0.01 L1_reg = 0.00 L2_reg=0.0001 n_ep

Java虚拟机学习--记录运行时数据区域

为方便后面学习的理解,记录一下! 运行时数据区 1.线程共享 1.1方法区(Method Area) 1.1.1运行时常量池(Runtime Constant Pool) 1.2堆(Heap) 2.线程私有 2.1虚拟机栈(VM Stack) 2.2本地方法栈(Native Method Stack) 2.3程序计数器(Program Counter Register) 3.直接内存(Direct Memory) 虚拟机栈: 线程私有,生命周期与线程同步,用来执行Java方法. 每个java方法

mysql 学习记录(二十五)--mysql日志

一.理论: 1.错误日志: a.记录了mysqld启动和停止时以及出错时的相关信息,当数据库出现故障导致无法启动时可以先查看此信息. b.可用--log-error来指定mysqld保存错误日志文件的位置 2.二进制日志: a.statement:记录的都是语句.优点:日志记录清晰易读.日志量少.对I/O影响较小,缺点:在某些情况下slave的日志复制会出错 b.row:将每一行的变更记录到日志中,而不是记录sql语句.优点:记录每一行的数据变化细节,不会出现某些情况下无法复制的情况,缺点:日志

我的tesseract学习记录(二)

前言:花了约三周看文档(打酱油),又花了两周搭环境,终于把tesseract用起来了,对简体中文的识别率还不错,在95%以上.现在简要记录一下安装.识别过程. 一.系统环境 系统:centos6.5 编译环境:g++ 依赖软件:leptonica.opencv2.4.9.tesseract3.02 二.安装过程 (1) leptonica sudo yum -y install autoconf automake libtool sudo yum -y install autoconf-arch

妙味JS学习记录(二)

在学习过程中零碎的知识点记录以及一些想法,加深印象,强化记忆. 五.Ajax ~ 无刷新数据读取:用户注册.在线地图.聊天室.webQQ.微博: Ajax能且仅能 从服务器读取一个文件,要注意文本文件和网页的编码要统一(utf-8) 只读一次,后面加载缓存,?t=1213 用get提交数据 可以用?t=new Date().getTime 使每次都重新加载: eval()计算字符串里的值,如果参数是一个表达式,eval() 函数将执行表达式.如果参数是Javascript语句,eval()将执行

HTTP学习记录:二、请求方法

学习资源主要为:@小坦克HTTP相关博客 最基础的是4种,GET.POST.PUT.DELETE对应着对资源的查.改.增.删.最常用的是GET和POST. GET一般用于获取/查询资源信息: POST一般用于更新资源信息. GET和POST的区别: 1.GET是从服务器上获取数据:POST是向服务器发送数据: 2.传递参数数据的机制不同,get是将参数数据队列加到提交表单的action属性所指的url中,值和表单的各个字段一一对应,在URL中可以看到.post是通过http post机制,将表单

JAVA学习记录(二)————JAVA中的IO

Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列. 数据流是一串连续不断的数据的集合,就象水管里的水流,在水管的一端一点一点地供水,而在水管的另一端看到的是一股连续不断的水流.数据写入程序可以是一段.一段地向数据流管道中写入数据,这些数据段会按先后顺序形成一个长的数据流.对数据读取程序来说,看不到数据流在写入时的分段情况,每次可以读取其中的任意长度的数据,但只能先读取前面的数据后,再读取后