【05】MFC入門到精通——MFC 為對話框中的控件添加變量 和 數據交換和檢驗

文章目錄

  • 四、 為對話框中的控件添加變量
  • 五、對話框類的
    • 5.1 為編輯框添加變量

面步驟中 為對話框添加了幾個控件,包括三個靜態文本框,三個編輯框,一個按鈕控件。

四、 為對話框中的控件添加變量

編輯框中的數據可能會經常變化,有必要為它們每個控件關聯一個變量。

首先為被加數的編輯框 IDC_SUMMAND_EDIT 添加變量。

  1. 在編輯框上點右鍵,在右鍵菜單中選擇“Add Variable”。彈出添加成員變量的向導對話框。

2 .我們想為其添加值變量而不是控件變量,所以對話框中“Category”下的組合框中選擇Value。

  1. “Variable type”下的組合框此時默認選中的是“CString”,CString是字符串類,顯然不能進行加法運算。我們可以選擇double、float、int等。這里我們選擇double,即編輯框關聯一個double類型的變量。

  2. 在“Variable name”中寫入自定義的變量名。為其取名m_editSummand。

在這里插入圖片描述
在這里插入圖片描述
5.點“Finish”完成。

注意,類的成員變量名一般以m_打頭,以標識它是一個成員變量。

參照此方法,再分別為加數的編輯框IDD_ADDEND_EDIT添加double型變量m_editAddend、和的編輯框IDD_SUM_EDIT添加double型變量m_editSum。

添加完成后,可以再 **Dlg.h頭文件中看到,剛才添加的三個變量;
在這里插入圖片描述
**Dlg.cpp文件中可以看到CAdditionDlg()函數中U盾哦了三個變量的并初始化。

**Dlg.cpp文件中可以看到:DoDataExchange()函數的函數體中多了三條DDX_Text調用語句,用于數據交換。
在這里插入圖片描述

五、對話框類的

在程序運行界面中,用戶往往會改變控件的屬性,例如,在編輯框中輸入字符串,或者改變組合框的選中項,又或者改變復選框的選中狀態等。控件的屬性改變后MFC會相應修改控件關聯變量的值。這種同步的改變是通過MFC為對話框類自動生成的成員函數DoDataExchange()來實現的,這也叫做對話框的數據交換和檢驗機制。

5.1 為編輯框添加變量

我們為三個編輯框添加了變量以后,在AdditionDlg.cpp 中 CAdditionDlg 的 DoDataExchange()函數的函數體中多了三條DDX_Text調用語句。下面是函數體代碼和添加的注釋。

在這里插入圖片描述
再以 Addition 程序為例簡單說下數據交換機制。如果我們在程序運行界面中輸入被加數,則通過CAddition的DoDataExchange()函數可以將輸入的值保存到 m_editSummand 變量中,反之如果程序運行中修改了變量 m_editSummand 的值,則通過 CAddition 的 DoDataExchange() 函數也可以將新的變量值顯示到被加數的編輯框中。

但是這種數據交換機制中,DoDataExchange() 并不是被自動調用的,而是需要我們在程序中調用 CDialogEx::UpdateData()函數,由 UpdateData() 函數再去自動調用 DoDataExchange()的。

CDialogEx::UpdateData() 函數的原型為: BOOL UpdateData(BOOL bSaveAndValidate = TRUE);

參數:bSaveAndValidate 用于指示數據傳輸的方向,TRUE 表示從 控件 傳給 變量,FALSE 表示從 變量 傳給 控件。默認值是 TRUE,即從 控件 傳給 變量。

UpdateData(true);//把編輯框中的數值傳到m_editSummand中,括號內缺省值為true
UpdateData(false);//把m_editSummand的值傳遞到編輯框中并顯示

返回值:CDialogEx::UpdateData()函數的返回值表示操作是否成功,成功則返回TRUE,否則返回FALSE。

在下一講中將具體演示CDialogEx::UpdateData()函數如何使用。

本節主要講的是新建對話框類和添加控件變量,控件的消息處理函數將在下一講詳細介紹。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/90436.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/90436.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/90436.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

4-Kafka-partition(分區)概念

Kafka Topic 分區詳解 📌 一、分區核心概念 1. 什么是分區? 物理分片:Topic 被劃分為多個分區(Partition),每個分區是一個有序、不可變的消息序列存儲單位:每個分區對應一個物理日志文件&…

論文略讀:UniPELT: A Unified Framework for Parameter-Efficient Language Model Tuning

ACL 2021 LoRAPrefix TuningAdapter門控藍色參數是可訓練的參數

【論文閱讀】CogView: Mastering Text-to-Image Generation via Transformers

CogView:通過Transformers實現文本到圖像的生成簡介目標:通用領域中的文本到圖像生成一直是一個開放的問題,它既需要強大的生成模型,也需要跨模態的理解。為了解決這個問題,我們提出了CogView,一個具有VQ -…

Typecho與WordPress技術架構深度對比:從LAMP到輕量級設計

文章目錄 Typecho vs WordPress:深入比較兩大博客系統的優劣與選型指南引言1. 系統概述與技術架構1.1 WordPress架構分析1.2 Typecho架構特點2. 核心功能對比2.1 內容管理能力2.2 主題與模板系統3. 性能與擴展性對比3.1 系統性能基準測試3.2 擴展生態系統4. 安全性與維護成本4…

CSS揭秘:8.連續的圖像邊框

前置知識:CSS 漸變,5. 條紋背景,border-image,基本的 CSS 動畫前言 本文旨在實現圖片邊框效果,即在特定場景下讓圖片顯示在邊框而非背景區域。 一、傳統實現方案 正常我們面對這樣一個需求時,下意識會想到的…

Linux驅動學習day20(pinctrl子系統驅動大全)

一、Pinctrl作用Pinctrl(Pin Controller):控制引腳引腳的枚舉與命名、引腳復用、引腳配置。Pinctrl驅動一般由芯片原廠的BSP工程師來寫,一般驅動工程師只需要在設備樹中指明使用哪個引腳,復用為哪個功能、配置為哪些狀態。二、Pin Controller…

Debiased All-in-one Image Restoration with Task Uncertainty Regularization

Abstract 一體化圖像恢復是一項基礎的底層視覺任務,在現實世界中有重要應用。主要挑戰在于在單個模型中處理多種退化情況。雖然當前方法主要利用任務先驗信息來指導恢復模型,但它們通常采用統一的多任務學習,忽略了不同退化任務在模型優化中的…

逆向 qq 音樂 sign,data, 解密 response 返回的 arraybuffer

解密 arraybuffer python requests 請求得到 arraybuffer&#xff0c;轉為 hex 傳遞給 js res_data sign ctx.call("decrypt", response.content.hex())function decrypt(hex) {const bytes new Uint8Array(hex.length / 2);for (let i 0; i < hex.length; i …

PPT處理控件Aspose.Slides教程:在 C# 中將 ODP 轉換為 PPTX

您是否正在尋找可靠的 PowerPoint SDK 來以編程方式開發ODP到PPTX轉換器&#xff1f;本篇博文演示了如何使用 C# 將 ODP 轉換為 PPTX。ODP是一種基于 XML 的演示文稿文件&#xff0c;可能包含圖像、視頻、文本等。但是&#xff0c;將打開的文檔演示文稿轉換為 PowerPoint 格式可…

[746] 使用最小花費爬樓梯

可以從下標0或者1作為起始位置————dp[0] dp[1] 0。一次性可以選擇移動1次或者2次&#xff0c;故當下標>2的時候&#xff0c;到達2有可能是從下標0開始或者下標1開始&#xff0c;cost[0] or cost[1]&#xff1b;到達n&#xff0c;有可能是花費cost[n-1]到達&#xff0c…

樹莓派vsftpd文件傳輸服務器的配置方法

在樹莓派上安裝和配置 vsftpd&#xff08;Very Secure FTP Daemon&#xff09;服務器的步驟如下&#xff1a; 1. 安裝 vsftpd 打開終端&#xff0c;執行以下命令安裝 vsftpd&#xff1a; sudo apt update sudo apt install vsftpd安裝完成后&#xff0c;vsftpd 會自動啟動。可以…

4.服務注冊發現:微服務的神經系統

在微服務架構中,服務之間不再是固定連接,而是高度動態、短暫存在的。如何讓每個服務準確找到彼此,是分布式系統治理的核心問題之一。服務注冊發現機制,正如神經系統之于人體,承擔著連接、協調、感知變化的關鍵角色。 本文將圍繞 Netflix 開源的服務注冊發現組件 Eureka 展…

基于Docker Compose部署Traccar容器與主機MySQL的完整指南

Traccar Docker鏡像內嵌了H2數據庫&#xff0c;該數據庫容量有限&#xff0c;當達到一定容量時&#xff0c;定位數據無法寫入會導致無法定位顯示。為此有必要為Traccar 配置外部數據庫。根據官網文檔和自身經驗我選擇了MySQL。 參考的官方文檔 軟件環境為ubuntu server 24.04版…

paddlehub環境搭建和測試

目錄1.環境搭建1.1 創建conda環境1.2 安裝paddlepaddle和paddlehub1.3 安裝依賴2. 移動端模型部署2.1 安裝移動端模型2.2 測試3. 服務部署3.1 啟動PaddleHub Serving3.2 發送預測請求1.環境搭建 1.1 創建conda環境 conda create --name paddlehub python3.8 conda activate p…

408第三季part2 - 計算機網絡 - ip地址II

理解路由聚合就是從第一個不一樣的往后全置為0題目這里一般來說會到達2個目的地址&#xff0c;但中間有個路由&#xff0c;所以路由聚合一下就行了聚合出來這個然后下一跳就是跳到下一個路由器d前面一樣的不動&#xff0c;不一樣的開始全置為0c再次理解題目這個先匹配169.96.40…

【Unity】MiniGame編輯器小游戲(十一)消消樂【Crush】

更新日期:2025年7月9日。 項目源碼:獲取項目源碼 索引 消消樂【Crush】一、游戲最終效果二、玩法簡介三、正式開始1.定義游戲窗口類2.規劃游戲窗口、視口區域3.方塊 Block①.定義方塊類②.生成方塊所有類型③.生成消消樂棋盤④.繪制收集欄⑤.繪制方塊陣列4.查看方塊擋住的其他…

RK3588 Android SDK 實戰全解析 —— 架構、原理與開發關鍵點

&#x1f4d6; 推薦閱讀&#xff1a;《Yocto項目實戰教程:高效定制嵌入式Linux系統》 &#x1f3a5; 更多學習視頻請關注 B 站&#xff1a;嵌入式Jerry RK3588 Android SDK 實戰全解析 —— 架構、原理與開發關鍵點 作者&#xff1a;嵌入式 Jerry 一、前言 隨著 AIoT、工業智…

從救火到賦能:運維的職責演進與云原生時代的未來圖景

引言:刻板印象的瓦解 提起"運維工程師",許多人腦海中可能仍會浮現這樣的畫面:深夜里守著閃爍的監控屏幕、手忙腳亂地重啟服務器、在布滿網線的機房里穿梭…這曾是運維工作的真實片段,但絕非全貌,更非未來。 在云計算、DevOps、SRE理念和云原生技術棧的沖擊下,…

UDP的socket編程

socket接口int socket(int domain, int type, int protocol);參數說明??參數說明domain協議族&#xff08;地址族&#xff09;&#xff0c;如 AF_INET&#xff08;IPv4&#xff09;、AF_INET6&#xff08;IPv6&#xff09;type套接字類型&#xff0c;UDP 使用 SOCK_DGRAM&…

基于SD-WAN的管件制造數字化產線系統集成方案

1. 背景與目標隨著制造業向智能化、數字化方向轉型&#xff0c;傳統產線面臨著數據割裂、協同效率低下等問題。管件制造作為典型場景&#xff0c;涉及多環節的設計、制造與質檢流程&#xff0c;亟需一套高效的系統集成方案&#xff0c;保障全流程數據貫通與實時協同。本方案基于…