mfc控件学习

0、所有控件

  软件启动自动被选中:属性中的tabstop改为true或者false

1、Button

    1、

   动态设置button的字:btn.SetWindowTextW(_T("我不是一个按钮"));

   获取控件的内容,如Button和Edit Ctrol,用GetDlgItemTextW。函数原型:int GetDlgItemText(int nID, CString& rString) const;

   eg:CString str;

    GetDlgItemText(IDC_BUTTON,str);

  如果是双击响应,需要修改属性notify为TRUE

  2、设置不可点击

  Cwnd::EnableWIndow(false);

2、ComBo Box:就是一个下拉框,里面有很多属性可以使用,如选择波特率。

  1、在里面填入数据

  属性里有一DaTa,填入数据,不同数据之间用分号隔开。

  2、解决只能显示一行

  点击ComBo Box,有个黑点,把黑点往下拉。

  3、默认显示第某行

  CComboBox* pcombobox=(CComboBox*)GetDlgItem(IDC_combobox);

  pcombobox.SetCurSel(n);

  4、设置不可编辑

  在Type中选择成Drop List

3、Edit Control

  设置内容。要根据给这个控件设置的变量类型来决定。

  (1)、当设置变量类型为CString,假设变量名为edit:

    CString str=_T("shit");
    edit=str;
    UpdateData(FALSE);

  (2)、当设置变量类型为CEdit,假设变量名为edit1:

    edit1.SetWindowText(_T("shit"));

  (3)、设置Edit一直显示多行数据的最下面 

    1、CEdit* pedit = (CEdit*)GetDlgItem(IDC_EDIT1); //获得控件指针对象

       pedit->LineScroll(pedit->GetLineCount());//闪屏

       2、 pRcv_rich_edit->PostMessage(WM_VSCROLL, SB_BOTTOM,0);//不闪屏

  (4)、选择指定位置字符串,并选中

     pedit->SetSel(num1,num2);

       pedit->SetFocus();

     选中末尾,pedit->SetSel(-1,-1);

  (5)、追加一行

     m_edit.SetSel(-1,-1);  //插入光标放于最后
     m_edit.ReplaceSel(_T("123"));
     m_edit.ScrollWindow(0,0);  //滚动到插入点

4、CheckBox

  (1)、获取其控件指针

       CButton *pbutton=(CButton*)GetDlgItem(IDC_Check);//因为CheckBox的父类是CButton;

  (2)、判断是否被勾选

      if(pbutton->GetCheck()==1)//等于1是被勾选,0是没有勾选,其他是未知

        ...

5、CRichEditCtrl

  设置格式:

  CHARFORMAT cf; //格式结构体

  cf.dwMask = CFM_COLOR|CFM_SIZE;//必须初始化这个
    cf.dwEffects = CFM_BOLD;//黑体
    cf.crTextColor = RGB(0,0,0);
    cf.yHeight = 180;

  pedit->SetSel(num1,num2);

  SetSelectionCharFormat(cf);

注意:在对CRichEdit设置颜色的时候,应先把编辑框前面所有的_T(" ")去掉,因为获取的整个编辑框的字体个数(GetLenth)算上了回车,

而SetSel(num1,num2)是没有算上回车的;在使用此控件之前:you must call AfxInitRichEdit once before the dialog box is displayed. A typical place to call this function is in your program’s InitInstance member function.

6、CIpCtrlAddress

可以直接使用:this->SetDlgItemText(IDC_IP,_T("192.1.1.1");

 7、CStatic

  1、设置颜色

  添加消息函数OnCtlColor,添加代码

  if(pWnd->GetDlgCtrlID() == IDC_STATIC) pDC->SetTextColor(RGB(255,0,0));

原文地址:https://www.cnblogs.com/judes/p/5869030.html