MFC入门相关

1.MFC的“匈牙利标识符命名法”,这是一个约定,可以增加代码的可读性:

  • 声明或定义了一个类,那么这个类可以以“C”(class)为前缀,如CHelloWorldDlg类;
  • 定义一个无符号型的局部变量,可以用“u”(unsigned)为前缀,如UINT uPort; ULONG uFlags;
  • 如果是int或long类型的变量,则以“n”为前缀;
  • DWORD类型的变量前缀为“dw”;
  • 字符数组以“sz”作为前缀;
  • CString类的对象以“str”作为前缀;
  • 指针以“lp”或“p”(long pointer或pointer,在WIN32环境下这两种指针并没有什么差别)作为前缀;
  • 引用以“r”为前缀;
  • 布尔型变量以“b”为前缀;
  • 句柄型的变量以“h”(handle)作为前缀。
  • 如果变量是全局的,那么以“g_”(global)开头,如BOOL g_bFlags;
  • 如果是类的成员变量则以“m_”(member)开头,如HICON m_hIcon;。

2.对话框资源与类的绑定:

1 enum { IDD = IDD_HELLOWORLD_DIALOG };

3.成员函数:

  • virtual void DoDataExchange(CDataExchange* pDX);是用来支持DDX(对话框数据交换,将一个变量和一个控件进行绑定的时候用DDX)和DDV(对话框数据效验,检验该控件是否为你所需要的时候用DDV)机制的成员函数。
  • virtual BOOL OnInitDialog();是在对话被创建(Create)后立即被执行的函数,因此在这里可以添加对话框的初始化所需要的自定义代码。
  • afx_msg void OnSysCommand(UINT nID, LPARAM lParam);是对话框的处理WM_SYSCOMMAND消息的函数。WM_SYSCOMMAND消息是关于系统控制的消息,如鼠标在标题栏上的操作等。
  • afx_msg void OnPaint();是对话框处理WM_PAINT的函数,当对话框窗体发生重绘时有WM_PAINT消息到达程序。
  • afx_msg HCURSOR OnQueryDragIcon();当用户拖动最小化窗口时系统调用此函数取得光标显示。
  • afx_msg void OnBnClickedHelloworld();是处理按钮单击消息的处理函数。

4.Edit控件:

  • GetDlgItem()函数是获取的其文本内容,获取数值:int nValue = _ttoi(strInput);的方法来转换。
  • 右键点击添加的控件,选择“添加变量”菜单项,设置其访问属性(建议用protected);在类别中选择Value(默认是Control);设置int和变量名m_nValue,点击完成按钮。完成“添加变量”向导后,在DoDataExchange()中,系统自动添加了一条语句:DDX_Text(pDX, IDC_INPUT, m_nValue);意思是将ID为IDC_INPUT的控件与m_nValue成员变量进行绑定。当程序执行UpdateData()的时候,数据便开始进行交换,数据交换方向由UpdateData的参数确定。
  • UpdateData(TRUE);就是让文本框的值更新到m_nValue里,如果是UpdateData(FALSE);就是将变量中的数据返回给文本框里。

5.Check控件和Radio控件:

BOOL bState;
bState = ((CButton*)GetDlgItem(IDC_CHECK1))->GetCheck();//获取复选框状态,一定要再获得CWnd指针后,强制转换为CButton指针
((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(1);        //设置单选框状态为选中
时间: 2024-08-02 11:50:47

MFC入门相关的相关文章

MFC 状态栏相关使用(CStatusBar & CStatusBarCtrl)

原文:MFC 状态栏相关使用(CStatusBar & CStatusBarCtrl),沙漠紫风铃 本文介绍了MFC中和状态栏相关的用法: 在MFC的的单文档应用中,在建好应用程序之后,CMainFrame类中定义了状态栏对象CStatusBar  m_wndStatusBar; 而在int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)函数中做了状态栏的创建,代码如下: if (!m_wndStatusBar.Create(this) |

MFC入门教程之控件(7)设备自动检测ondevicechange的添加和使用

MFC入门学习(1)了解MFC 源文档<http://blog.csdn.net/codectq/article/details/19131227> MFC入门学习之控件(2)创建一个对话框窗口并在运行时显示 源文档<http://blog.csdn.net/codectq/article/details/19131289> MFC入门学习之控件(3)标签控件Tab Control的添加和使用 源文档<http://blog.csdn.net/codectq/article/

MFC File相关命令流程分析

一个APP可以有多个文档模板,一个文档模板可以有多个文档(Document),一个Document可以有多个View.在程序.要在程序中添加新的文档模板可以如下所示: CSingleDocTemplate*pDocTemplate; pDocTemplate = newCSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CmfcArchiveDoc), RUNTIME_CLASS(CMainFrame), // 主 SDI 框架窗口 RUNTIME_

MFC 打印相关操作

虽说现在已经有越来越多的人转向用C#来做界面的开发,但是对于一个习惯了C++这种半面向对象语言的人来说,MFC依然是难割舍的存在.最近在做些数据库相关的事,因为是数据库,自然离不开打印报表之类的东西,所以顺带的也去研究了下如何用MFC来进行打印相关的的操作. 本篇文章参考的比较多的是这篇文章和MSDN的示例代码,另外这篇文章也提供了很多有用的参考,如果想看原文的话可以去看看. 直接用微软提供的CPrintDialog类进行打印的相关操作是非常简单的,本人将代码封装成为两个函数,除了实际往一页纸上

MFC界面相关

一MFC 的菜单 1 相关类 WIN32 - HMENU MFC - CMenu 类对象 CMenu - 封装了操作菜单的各种API 函数,还封装了很重要成 员 m_hMenu(保存菜单句柄) 2 菜单使用 2.1 添加菜单资源 2.2 设置菜单(将菜单挂到窗口中) 1)在创建主框架窗口的(Create)过程中 2)在框架窗口的WM_CREATE 消息处理中 CMenu menu; menu.LoadMenu CFrameWnd::SetMenu 2.3 设置菜单项状态 ON_WM_INITME

运维入门相关知识介绍

运维入门 从最低的说起1.设备网线的线序接法,百兆和千兆网线,光纤线,思科路由,华为路由,交换机什么的,包括一些VLAN组建,交换机和路由器之间的学习,一般我建议学习到CCNP就够了,计算机硬件了解,一般你自己DIY过电脑,一般都清楚明白.了解服务器和普通PC的区别,服务器 分别是 1U 2U 4U,然后就是找托管的托管服务器,费用根据机房线路多少,带宽,地域而决定,注册域名,备案最好也懂. 2.数据链路层关乎就是MAC地址的走向,交换机学习,局域网的东西. 3.网络层了解中国互联网几大ISP,

[00001]-[2015-06-22]-[01]-[MFC动态链接库相关编程]

MFC动态链接库的创建与访问 [创建]新建工程MFC AppWizard(dll) 注意FileView视图中的[dll.cpp]和[dll.def]文件 [dll.cpp] 用于实现大部分的功能的文件 [dll.def] --------------------------------------------------------------------- ; 动态链接库1.def : Declares the module parameters for the DLL. LIBRARY "

vs2015c++/MFC入门知识全集/实例规范书籍视频下载孙鑫c++对话框计算器基础控件使用教程系列

VIP教程可免费看.可免费下载前部分试看教程地址:http://dwz.cn/4PcfPk免费下载地址:http://dwz.cn/mfc888 本课程目录 67章 [MFC项目开发第01天]Windows程序开发基础01Windows程序开发基础102Windows程序开发基础203Windows程序开发基础368章 [MFC项目开发第02天]简单Win32程序开发01简单Win32程序开发02简单Win32程序开发03简单Win32程序开发69章 [MFC项目开发第03天]MFC架构与原理分

SpriteBuilder v1.4 &amp;&amp; cocos2d-iphone v3.3 &amp;&amp; Xcode6 新手入门相关

创建ccb文件时,有5种可供选择的类型,分别是Scene,Node, Layer,Spriter,Paricles 这五种类型的区别简单来说如下 Scene:是一个可供选择的场景(Scene),与你期待的也许不同,它的根节点是CCNode,而不是CCScene.它与Node类型的主要不同是它在SpriteBuilder种默认显示一个很好的设备框架---(翻译的不好,原文如下:it defaults to display a nice device frame around it in Sprit