当前位置: 首页 > wzjs >正文

中国公路建设行业协会网站这么上不东营远见网站建设公司

中国公路建设行业协会网站这么上不,东营远见网站建设公司,手机软件开发学校,seox文章目录 数值型关联变量计算器案例如何建立数值型关联变量交换和验证对话数据技术1. DoDataExchange函数2. 对话框数据交换DDX3. 对话框数据验证DDV 控件型关联变量 数值型关联变量 计算器案例 // CalcDlg.cpp: 实现文件 //#include "pch.h" #include "framew…

文章目录

  • 数值型关联变量
    • 计算器案例
    • 如何建立数值型关联变量
    • 交换和验证对话数据技术
      • 1. DoDataExchange函数
      • 2. 对话框数据交换DDX
      • 3. 对话框数据验证DDV
  • 控件型关联变量

数值型关联变量

计算器案例

在这里插入图片描述


// CalcDlg.cpp: 实现文件
//#include "pch.h"
#include "framework.h"
#include "Calc.h"
#include "CalcDlg.h"
#include "afxdialogex.h"#ifdef _DEBUG
#define new DEBUG_NEW
#endif// CCalcDlg 对话框CCalcDlg::CCalcDlg(CWnd* pParent /*=nullptr*/): CDialogEx(IDD_CALC_DIALOG, pParent)
{m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}void CCalcDlg::DoDataExchange(CDataExchange* pDX)
{CDialogEx::DoDataExchange(pDX);
}BEGIN_MESSAGE_MAP(CCalcDlg, CDialogEx)ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDOK, &CCalcDlg::OnBnClickedOk)
END_MESSAGE_MAP()// CCalcDlg 消息处理程序BOOL CCalcDlg::OnInitDialog()
{CDialogEx::OnInitDialog();// 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动//  执行此操作SetIcon(m_hIcon, TRUE);			// 设置大图标SetIcon(m_hIcon, FALSE);		// 设置小图标auto pCombo = (CComboBox*)GetDlgItem(IDC_COMBO1);pCombo->AddString(_T("+"));pCombo->AddString(_T("-"));pCombo->AddString(_T("*"));pCombo->AddString(_T("/"));pCombo->SetCurSel(0);//设置默认选择项return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}// 如果向对话框添加最小化按钮,则需要下面的代码
//  来绘制该图标。  对于使用文档/视图模型的 MFC 应用程序,
//  这将由框架自动完成。void CCalcDlg::OnPaint()
{if (IsIconic()){CPaintDC dc(this); // 用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);// 使图标在工作区矩形中居中int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// 绘制图标dc.DrawIcon(x, y, m_hIcon);}else{CDialogEx::OnPaint();}
}//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR CCalcDlg::OnQueryDragIcon()
{return static_cast<HCURSOR>(m_hIcon);
}void CCalcDlg::OnBnClickedOk()
{//获取选择的运算符auto pCombo = (CComboBox*)GetDlgItem(IDC_COMBO1);int index = pCombo->GetCurSel();CString str;pCombo->GetLBText(index, str);//获取输入的数字int num1 = GetDlgItemInt(IDC_EDIT_NUM1);int num2 = GetDlgItemInt(IDC_EDIT_NUM2);//计算结果float result = 0;switch (str[0]){case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':result = 1.0 * num1 / num2;break;}//显示结果CString resultStr;resultStr.Format(_T("%.2f"), result);SetDlgItemText(IDC_EDIT_RES, resultStr);
}

如何建立数值型关联变量

  1. 右键第一个edit控件,选择添加变量
    在这里插入图片描述
  2. 在打开的对话框,按下图修改
    在这里插入图片描述
  3. 点完成,其他几个输入框类似操作
    在这里插入图片描述
    在这里插入图片描述
    建立好之后,void CCalcDlg::OnBnClickedOk()就可以简化为如下
void CCalcDlg::OnBnClickedOk()
{UpdateData(TRUE);//从控件中获取数据switch (m_operator[0]){case '+':m_res = m_num1 + m_num2;break;case '-':m_res = m_num1 - m_num2;break;case '*':m_res = m_num1 * m_num2;break;case '/':m_res = 1.0 * m_num1 / m_num2;break;}m_res = round(m_res * 100) / 100;	//保留2位小数UpdateData(FALSE);//将数据更新到控件中
}

交换和验证对话数据技术

1. DoDataExchange函数

在这里插入图片描述
通过断点调试,发现程序执行的顺序

OnInitDiaog => DoDataExchange
显示界面
我们输入数据,点计算
UpdateData => DoDataExchange
UpdateData => DoDataExchange
更新数据,显示

DoDataExchange的作用是进行数据交换和验证,不需要手动调用,也不能手动调用,是由UpdateData调用的
上例OnInitDialog后也会调用,说明OnInitDialog应该是调用了UpdateData(FALSE)

2. 对话框数据交换DDX

  • 有些控件不支持数值型关联变量
    例如Button
    在这里插入图片描述
    可以看到类别选项是灰色的,点不开

  • 有些数值型关联变量要特定的类型,否则会报错
    radioButton,我使用BOOL类型会弹出错误提示,而用int就没限制
    在这里插入图片描述
    然后把radioButton减少到2个,第一个加了组长,才能用的BOOL,而且
    在这里插入图片描述

  • 关联变量能用的类型表

控件控件类型控件变量类型值变量类型最小/最大值
动画控件SysAnimate32CAnimateCtrl
ButtonBUTTONCButton
Check boxCHECKCButtonBOOL最小/最大值
Combo boxCOMBOBOXCComboBoxCString、int最大字符数
日期时间选择器 (Date Time Picker) 控件SysDateTimePick32CDataTimeCtrlCTime最小/最大值
编辑框EDITCEditCString、int、UINT、long、DWORD、float、double、BYTE、short、BOOL、 COleDateTime 或 COleCurrency最小值/最大值;某些支持最大字符数
热键 (Hot Key) 控件msctls_hotkey32CHotKeyCtrl
列表框LISTBOXCListBoxCString最大字符数
List 控件SysListView32CListCtrl
月历控件 (Month Calendar Control)SysMonthCal32CMonthCalCtrlCTime最小值/最大值
进度控件msctls_progress32CProgressCtrl
Rich Edit 2.0 控件RichEdit20ACRichEditCtrlCString最大字符数
Rich Edit 控件RICHEDITCRichEditCtrlCString最大字符数
滚动条 (Scroll Bar)(垂直或水平)SCROLLBARCScrollBarint最小值/最大值
滑块控件 (Slider Control)msctls_trackbar32CSliderCtrlint最小值/最大值
数值调节钮控件 (Spin Control)msctls_updown32CSpinButtonCtrl
选项卡控件 (Tab Control)SysTabControl32CTabCtrl
树控件 (Tree Control)SysTreeView32CTreeCtrl

3. 对话框数据验证DDV

数值型关联变量比如int还能设置最大值最小值
在这里插入图片描述

当我输入的数据不在范围内,就会出提示
在这里插入图片描述

控件型关联变量

##如何建立控件型变量
在这里插入图片描述

  • 控件型关联变量,获取控件的窗口指针,通过变量绑定它

使用方法跟窗口指针一样

m_buttonControl.SetWindowTextW(_T("按钮"));//设置按钮文本
m_buttonControl.DestroyWindow();//销毁按钮

文章转载自:

http://6BKQ1hVI.tdqhs.cn
http://oROHMA92.tdqhs.cn
http://ovzxX7x2.tdqhs.cn
http://8UZsWho6.tdqhs.cn
http://EtxdrZLq.tdqhs.cn
http://s7DuEnIG.tdqhs.cn
http://lod2laNj.tdqhs.cn
http://BOgrQSZa.tdqhs.cn
http://JM6N8YrR.tdqhs.cn
http://yNELBfhS.tdqhs.cn
http://cS1VK0km.tdqhs.cn
http://HW9ZCE4n.tdqhs.cn
http://ij2GROz8.tdqhs.cn
http://AzxrZgAX.tdqhs.cn
http://AmNIM5L3.tdqhs.cn
http://Cz5R9h5B.tdqhs.cn
http://54w4ic6E.tdqhs.cn
http://HxeCsOud.tdqhs.cn
http://4ypfVKUk.tdqhs.cn
http://ga6uxEQr.tdqhs.cn
http://i4d4ub57.tdqhs.cn
http://2aLxLkb0.tdqhs.cn
http://AGhdDYZE.tdqhs.cn
http://LCecCDV7.tdqhs.cn
http://Ng1fGnHe.tdqhs.cn
http://2z04cOl6.tdqhs.cn
http://9vpXhkZi.tdqhs.cn
http://qL3RBED8.tdqhs.cn
http://IqMi3jmR.tdqhs.cn
http://5Ht0srk4.tdqhs.cn
http://www.dtcms.com/wzjs/779165.html

相关文章:

  • 深圳做网站的公司搜行者seo网络公司网站建设首页
  • 略阳县有关作风建设的网站深圳房管局官网
  • 网站优化 代码制作灯笼教程
  • 一级a做爰片就在线看网站微网站是免费的吗
  • 网络网站推广首荐乐云seo如何做cpa单页网站
  • 福永网站制作前端做网站使用的软件工具
  • 茌平网站制作直播软件开发公司
  • 做网站都要掌握什么软件网站维护要求
  • 咸宁网站建设个人网站引导页源码
  • asp.net网站和空网站有什么区别手机网站如何建站
  • 信息网站建设汇报wordpress页面链接如何修改
  • 电影网站怎么做友情链接上海的广告公司有哪些
  • 阿里云官方网站 icp代备案管理系统wordpress添加keywords
  • 搭建网站需要钱吗做优秀网站
  • 怎样安装网站模板网页图片下载插件
  • netcompont网站建站wordpress 更改中文
  • 公司企业网站教你如何建设网站阿里去
  • 网站开发软硬件条件做销售用的免费发布信息网站
  • 模板网站很牛苏州建设银行官方网站
  • 山东建设执业资格注册中心网站推广策略包括哪些内容
  • 湖北阳新县建设局网站众筹网站搭建
  • 网站制作教程 pdf下载百度网站收入提交
  • 移动网站设计方案网站开发好要租服务器吗
  • 有人用我的企业做网站帮做网站的网站
  • 企业网站模板 下载 论坛软件项目管理的主要内容有哪些?
  • 昆山h5网站建设深圳专业做网站哪家专业
  • 做一个京东这样的网站需要多少钱建设网站合同范本
  • 东营网站制作做推广必须知道的网站吗
  • 官方网站制作思路韩国美食做视频网站有哪些
  • 二手车网站制作dnf可以去哪个网站做代练