1 GetLBText()
GetLBText()函数.该函数为组合框成员函数其原型为:
void GetLBText( int nIndex, CString &rString ).
- 参数说明:nIndex为列表框中数据的索引值, rString 为字符串,
- 函数说明:把索引号为nIndex的数据放到rString变量中.
GetLBTextLen(int nIndex)函数就是得到索引号为nIndex中数据的长度。
int baudindex;
baudindex = m_Combo_Baud.GetCurSel();
if (baudindex != CB_ERR)
{
SetCommParameter();
//把索引号为baudindex的数据放到m_Str_Baud变量中,传给m_Combo_Baud控件
m_Combo_Baud.GetLBText(baudindex, m_Str_Baud);
}
2 GetWindowText() 和SetWindowText
GetWindowText()获取指定窗口或控件的文本
- 该函数将指定窗口的标题条文本(如果存在)拷贝到一个缓存区内。
- 如果指定的窗口是一个控件,则拷贝控件的文本。
- 但是,GetWindowText可能无法获取外部应用程序中控件的文本
2.1 区别对比
GetDlgItem()
//eg1
CString title, content;//字符串变量充当中间量
GetDlgItem(IDC_EDIT1)->GetWindowText(title);//获取一控件的内容字符串
GetDlgItem(IDC_EDIT2)->GetWindowText(content);
//eg2
CWnd* static_status = GetDlgItem(IDC_COMSTATUS_STATIC);
status_str = _T("STATUS:") + m_Str_Com + " CLOSED," + m_Str_Baud + ',' + m_Str_Check + ',' + m_Str_Data + ',' + m_Str_Stop;
static_status->SetWindowText(status_str);
//eg1
CString User,Pwd;
User = _T("admin"):
Pwd = _T("123");
GetDlgItem(IDC_USER_EDIT)->SetWindowText(User);
GetDlgItem(IDC_PWD_EDIT)->SetWindowText(Pwd);
//eg2
GetDlgItem(IDC_OPENCOM_BUTTON)->SetWindowText(_T("串口打开"));
::SetWindowText(hWnd2, _T("窗口句柄练习"));
::GetWindowText(hWnd1, ch, MAX_PATH);//获取指定窗口或控件的文本
2.2 二者综合实例
在静态文本框中,连续输出多行文字,前面的行不被覆盖;
for (int i = 0; i < 3; i++) {
if (i == 0)
str = _T("MFC运行或调试在 VS输出框,打印字符串信息");
else if (i == 1)
str = _T(" == Good");
else if (i == 2)
str.Format(TEXT("第 %d 次连续输出"), i);
CString str2;
GetDlgItemText(IDC_STATIC_LOG, str2);//获取已显示的文本
str2 = str2 + _T("\r\n") + str;//加换行、加新的文本,ICR_Process_result即新的文件内容
SetDlgItemText(IDC_STATIC_LOG, str2);
}