MFC笔记2
1.Create()函数创建,该函数原型如下:
BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
lpszCaption是按钮上显示的文本;dwStyle指定按钮风格,可以是按钮风格与窗口风格的组合,取值有:
窗口风格:
·WS_CHILD 子窗口,必须有
·WS_VISIBLE 窗口可见,一般都有
·WS_DISABLED 禁用窗口,创建初始状态为灰色不可用的按钮时使用
·WS_TABSTOP 可用Tab键选择
·WS_GROUP 成组,用于成组的单选按钮中的第一个按钮
按钮风格:
·BS_PUSHBUTTON 下压式按钮,也即普通按钮
·BS_AUTORADIOBUTTON 含自动选中状态的单选按钮
·BS_RADIOBUTTON 单选按钮,不常用
·BS_AUTOCHECKBOX 含自动选中状态的复选按钮
·BS_CHECKBOX 复选按钮,不常用
·BS_AUTO3STATE 含自动选中状态的三态复选按钮
·BS_3STATE 三态复选按钮,不常用
以上风格指定了创建的按钮类型,不能同时使用,但必须有其一。
·BS_BITMAP 按钮上将显示位图
·BS_DEFPUSHBUTTON 设置为默认按钮,只用于下压式按钮,一个对话框中只能指定一个默认按钮
·rect指定按钮的大小和位置;
·pParentWnd指示拥有按钮的父窗口,不能为NULL;
·nID指定与按钮关联的ID号,用上一步创建的ID号。
不同控件类的Create()函数略有不同,可参考相关资料。
例:p_MyBut->Create( "动态按钮", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(20,10,80,40), this, IDC_MYBUTTON );
这样,我们就在当前对话框中的(20,10)处创建了宽60,高30,按钮文字为“动态按钮”的下压式按钮。
2.动态创建一个月日历控件
1)在头文件添加#define IDC_MCCA (WM_USER+110)
2)在cpp文件在窗体中添加成员指针:CMonthCalCtrl *m_pCtrlMonth
3)在窗体初始化的时候初始化控件,这里所说的窗体初始化,并不是窗体类的初始化函数,而是OnInitialUpdate()或OnInitDialog()或OnCreate()函数
void CCharStatisticDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCharStatisticDlg)
DDX_Text(pDX, IDC_EDIT1, m_strTxt);
DDX_Text(pDX, IDC_CH, m_strCh);
DDX_Text(pDX, IDC_EN, m_strEn);
DDX_Text(pDX, IDC_AL, m_strTotal);
//}}AFX_DATA_MAP
}
Updatedata(TRUE) 表示将控件的值赋值给成员变量,即从窗口编辑框中读入数据;
Updatedata(FALSE) 表示将成员变量的值赋值给控件,将数据从窗口显示。
DoDataExchange 函数其实是为了实现一项数据动态绑定技术
而DDX_XXX函数才是真正实现动态绑定技术的函数,函数在MFC\Include\AFXDD_.H中声明。
MFC笔记2的更多相关文章
- MFC笔记
一.Win32基本程序概念 所有的windows程序都必须载入windows.h MFC程序都有一个Stdafx.h文件,它载入了MFC框架必须的文件. Windows程序以消息为基础,以事件驱动之. ...
- MFC笔记10
1. CDC MemDC1; MemDC1.SetBkMode(OPAQUE); 背景模式,VC6下面有三种:/* Background Modes */#define TRANSPARENT 1// ...
- MFC笔记7
1.VS中显示行号 工具 -> 选项 -> 文本编辑器 -> C/C++ -> 行号 2.VS中调整字体大小 工具 -> 选项 -> 环境->字体和颜色 3. ...
- MFC笔记6
1.MFC文件的读写操作 写操作 创建一个编辑框(IDC_INFOR_EDIT1),在里面输入信息,创建一个按钮(IDC_BUTTON),点击按钮会触发(OnBnClickedButton2()函数) ...
- MFC笔记5
1.MessageBox() 引用自(http://www.douban.com/note/40199603/) 一 函数原型及参数 function MessageBox(h ...
- MFC笔记3
1. C6有默认的提示代码功能,但是其默认的快捷键是Ctrl + Space,这一般情况下是切换输入法快捷键,所以,只需重新设置一下快捷键就可以实现提示代码功能,具体设置位置如下: 工具(T) -&g ...
- MFC笔记1
1.在对话框文档中定义两个定时器,每间隔5秒弹出一个消息框提示“定时器1”,每隔5秒弹出一个消息框提示“定时器2” UINT ID_TIMER1 = 1 , ID_TIMER2 = 2; //设置 ...
- MFC笔记(DN)
01:MFC应用程序编程 02:MFC菜单.工具栏.状态栏 03:视图窗口
- MFC笔记<持续更新>
1.设置垂直滚动条的位置在末尾 SCROLLINFO si; GetScrollInfo(SB_VERT, &si, SIF_PAGE | SIF_RANGE | SIF_POS); si.f ...
随机推荐
- php网站速度性能优化(转)
一个网站的访问打开速度至关重要,特别是首页的打开加载过慢是致命性的,本文介绍关于php网站性能优化方面的实战案例:淘宝首页加载速度优化实践 .想必很多人都已经看到了新版的淘宝首页,它与以往不太一样,这 ...
- macbook下mysql安装
1 原材料 1.1 mysql-5.7.22-macos10.13-x86_64.dmg 2 msql在macbook下的安装: 双击dmg进行解压, 再双击解压出来的pkg文件进行安装 3. Con ...
- jsp/servlet环境搭建
手动配置servlet开发环境: 1. eclipse.tomcat.jdk下载安装: 2. eclipse新建项目,项目依赖tomcat的jar包(包含tomcat和servlet相关jar包)以及 ...
- websocket 心跳重连
websocket 的基本使用: var ws = new WebSocket(url); ws.onclose = function () { //something reconnect(); // ...
- 如何安装miniconda(python虚拟环境)
anaconda是用于科学计算的python发行版本(可用于python虚拟环境的管理),miniconda是简化版的anaconda 1.下载安装miniconda 下载miniconda 因为An ...
- CPU使用情况之平均负载
需求场景: 新入职公司,需要监控方案,于是先把zabbix里有关OS模块的监控项全部列出来,并一个一个去研究具体的代表的意思:发现其他的都很容易理解,只要有关CPU监控的就难以理解.于是 ...
- PPTV(pplive)_forap_1084_9993.exe 木马清除经历
## 流氓行经 这几天电脑上突然自动安装pptv,金山毒霸清除了也不管用, 卸载了pptv过一会又自动安装上了,太嚣张了哈. ## 监控进程跟目录变化 接下来使用 ProcessMonitor 监控进 ...
- Wireshark win7 没有找到接口;找不到接口
下载安装winpcap: https://www.winpcap.org/install/default.htm
- 【python】dist-packages和site-packages的区别
一.dist-packages和site-packages的区别 sudo apt-get install 安装的package存放在/usr/lib/python2./dist-packages目录 ...
- Flask--(项目准备)--添加日志
日志:记录程序运行的状态,在manage.py同级目录下创建logs文件夹 定义日志文件: import logging from logging.handlers import RotatingFi ...