• 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()函数

      m_pCtrlMonth = new CMonthCalCtrl;
      m_pCtrlMonth->Create(WS_VISIBLE|WS_CHILD|WS_BORDER|MCS_NOTODAY,CRect(20,10,220,160),this, IDC_MCCA );
      m_pCtrlMonth->ShowWindow(SW_SHOW);
      编译运行就会显示月日历
     3.

    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函数才是真正实现动态绑定技术的函数,函数在MFCIncludeAFXDD_.H中声明。

  • 相关阅读:
    后端写前端用什么框架
    什么是互联网
    数据的意义
    LR特征维数特别大实时计算问题
    一次线上服务线程数飙到8000
    jsoup 解析html
    做研究的方式
    推荐系统架构文章
    如何识别广告评论
    运营和做事方式
  • 原文地址:https://www.cnblogs.com/zhangerxiaoma/p/4979895.html
Copyright © 2020-2023  润新知