首页 > 解决方案 > GetWindowTextA 无法获取 ComboBox MFC C++ 的文本

问题描述

GetWindowTextA用来获取 ComboBox 的文本,但""即使hwnd是正确的,它也会是一个空字符串。

使用从其他类获取文本时没有问题GetWindowTextA,但它不适用于该类ComboBox。是否与相关,需要其他功能才能从 ComboBox 获取文本?

谢谢。


编辑:

组合框来自其他应用程序窗口中的控件

#include<windows.h>
#include<iostream>
using namespace std;

int main() {

        POINT pt;
        Sleep(3000);
        GetCursorPos(&pt);

        HWND hWnd = WindowFromPoint(pt); 

        char class_name[100];
        char title[100];

        GetClassNameA(hWnd,class_name, sizeof(class_name));
        GetWindowTextA(hWnd,title,sizeof(title));

        cout <<"Window name : "<<title<<endl;
        cout <<"Class name  : "<<class_name<<endl;

        return 0;

}

标签: c++comboboxmfc

解决方案


如果您已将 CComboBox 变量添加到对话框类,请使用“添加控件变量”向导,如此处所述添加成员变量,您可以轻松使用 CComboBox 方法检索所选组合项的文本,如下图所示:

void CMFCDlgAppDlg::OnBnClickedButton1()
{
    CString itemText;
    m_Combo.GetLBText(m_Combo.GetCurSel(), itemText);
    AfxMessageBox(itemText);
}

推荐阅读