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 ...
随机推荐
- python 参数传递 传值还是传引用
个人推测结论: 可变对象传引用,不可变对象传值 python里的变量不同于c中地址储值模型 a=100 b=100 print(id(a),id(b),a==b,a is b) #8790877986 ...
- Unity Shader 矩阵基本信息
基本信息 mul函数 mul函数,是表示矩阵M和向量V进行点乘,得到一个向量Z,这个向量Z就是对向量V进行矩阵变换后得到的值. HLSL的mul函数接受mul(V, M)或mul(M, V),要注意 ...
- QMD ST表 倍增
#include<iostream> #include<cmath> using namespace std; ; int a[maxn]; ]; ]; int quick(i ...
- Python脚本模拟僵尸进程与孤儿进程
最近一台机器的systemd内存高达30%多,一直不变,后来排查是僵尸进程,什么是僵尸进程呢,只能google,百度等先了解,然后自己总结了一下,虽然这是基础的东西,但是对于我来说就如新大陆一样.花了 ...
- mvc ajax访问后台时session过期无法跳转到Login页面问题解决
public class BaseController : Controller { protected User UserInfo { set { Session["UserInfo&qu ...
- leetcode习题练习
day001 #!user/bin/env python # -*- coding:utf-8 -*- #day001 两数之和 #方法1 def Sum(nbs,tgt): len_nums = l ...
- 自己遇到的ajax调用ashx文件无法获取返回值的一种情况
无法获取返回值的ashx文件大致如下: public void ProcessRequest (HttpContext context) { context.Response.ContentType ...
- shell脚本大小写转换
几个方法 1.tr命令 2.sed替换 3.awk的tolower() toupper() 4.perl语言 详见 http://blog.51cto.com/wangxiaoyu/197623 L ...
- 6.3.4 新的_Bool类型
如果把其他非零数值赋给_Bool类型的变量,该变量会被设置为1.这反映了C把所有的非零值都视为真. input_is_good = (scanf("%ld", &num) ...
- 网络共享存储服务NFS
网络共享存储服务NFS 作者:Eric 微信:loveoracle11g 环境准备 服务器系统 角色 IP RHEL 7.5 x86-64 NFS服务端 192.168.10.201 RHEL 7.5 ...