【41】MFC入门到精通——MFC中 GetLBText()、GetWindowText()、SetWindowText区别

发布于:2025-07-18 ⋅ 阅读:(14) ⋅ 点赞:(0)

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);
}

网站公告

今日签到

点亮在社区的每一天
去签到