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("\n")去掉,因为获取的整个编辑框的字体个数(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/10875138.html