按键 | 静态框 | 弹出框 | 文本框 | 下拉框 | 选择框 |
Button | Static-Test | Message-Box | Edit-Contral | Combo-Box | Check-Box |
MessageBox(_T("Version 1.0")); //只显示内容
MessageBox(_T("Version 1.0"), _T("SerialPort"), MB_OK); //显示内容和标题
(1)多行显示、回车换行、滑动条
属性 Multiline = True //多行
属性 Want Return = True //Enter键换行
属性 Vertical Scroll = True //如果需要垂直滚动条的话将
属性 Horizontal Scroll = True //需要水平滚动条的话将
(2)输入、输出
//从文本框获取输入
CString temp;
val.GetWindowText(temp);
//输出到文本框
CString temp;
temp += "abc";
val.SetWindowText(_T("abc"));
val.SetWindowText(temp);
//追加输出
val.ReplaceSel("abc");
(1) 下拉列表 and 默认值
// TODO: 在此添加额外的初始化代码
int BaudArr[] = { 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 56000, 57600, 115200 };
CString temp;
//波特率下拉列表
for (int i = 0; i < sizeof(BaudArr) / sizeof(int); i++)
{
temp.Format(_T("%d"), BaudArr[i]);
myBaud.InsertString(i, temp); //myBaud 是下拉框变量
}
//默认波特率
temp.Format(_T("%d"), 9600);
myBaud.SetCurSel(myBaud.FindString(0, temp));
(2) 默认值
myBaud.SetCurSel(i); //选择下拉列表中的第 i 个
(1)查看是否选中
if ( BST_CHECKED == IsDlgButtonChecked( IDC_CHECK1 ) )
{
// 勾选
}
else
{
//未选中
}
(2)改变选中状态
用API函数CheckDlgButton(); 这个函数只是用来改变对话框上的控件
CheckDlgButton(IDC_CHECKBOX1,BST_CHECKED); //将checkbox设置为选中状态
CheckDlgButton(IDC_CHECKBOX1,BST_UNCHECKED); //将checkbox设置为非选中状态
用API函数SendMessage()向控件发送BM_SETCHECK 消息
SendMessage(hwnd_checkbox,BM_SETCHECK ,BST_CHECKED,0); //将checkbox设置为选中状态
SendMessage(hwnd_checkbox,BM_SETCHECK ,BST_UNCHECKED,0); //将checkbox设置为非选中状态
CString s2 = s1 + _T("\r\n"); //添加回车
_T("")是一个宏,定义于tchar.h文件中。作用是将字符串转换为Unicode编码。
在C语言中普通的字符串使用ANSI进行文字处理。也就是常见的双引号字符串。但是由于数据类型的局限性,ANSI的字符串不能保存全部语言。比如说中文。
例如:char *str = "ABC";
Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。可以保存中文等。可以使用_T("ABC")或者L"ABC"的方式表示UNICODE编码。
_T()和L也存在区别。
L是一定使用UNICODE进行编码。
_T()会根据编译条件的设置,选择不同的编码格式。
(1)在初始化函数中:默认的状态控件状态、给变量初始化。如,选择框默选中、文本框默认文本。
(2)全局变量:通常放在xxxDlg.cpp函数前面定义
(1)数字 转 进制字符串
CString temp;
int a = 10;
temp.Format(_T("%d"), a); //数字 转 10进制字符串
temp.Format(_T("%x"), a); //数字 转 16进制字符串
my_textBox.SetWindowText(temp); //输出到 my_textBox 控件变量对应的文本框中
MessageBox(temp); //弹框弹出
(2)进制字符串 转 数字
如,L"61 62 63 44" --> L"abcd"
CString temp;
my_Recvtext.GetWindowText(temp); //取数字串
int n = temp.GetLength(); //长度
string s;
for(int i=0; i>hc; //字符流 转 数字
temp.Format(_T("%c"), hc); //16进制数字 转 字符
my_Sendtext.ReplaceSel(temp); //追加输出
}
1、Microsoft 官方资料
https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.forms.combobox.findstring?redirectedfrom=MSDN&view=netframework-4.8#System_Windows_Forms_ComboBox_FindString_System_String_System_Int32_
2、https://blog.csdn.net/qq_34849157/article/details/82257920
3、https://bbs.csdn.net/topics/461774
4、https://blog.csdn.net/self_mind/article/details/50781233