您的当前位置:首页正文

HWND 与 QString 互转

2024-11-10 来源:个人技术集锦

HWND 转 QString

使用VS中 Spy++ 工具 获取窗口的标题和类名

//获取窗口句柄
QString strClassName("Qt5QWindowIcon");
QString strTitle("ToolBar");
QByteArray oClassNameArr = strClassName.toLocal8Bit();
QByteArray oTitleArr = strTitle.toLocal8Bit();
std::wstring wstrClassName = strClassName.toStdWString();
std::wstring wstrTitle = strTitle.toStdWString();
HWND hwnd = FindWindow(wstrClassName.c_str(), wstrTitle.c_str());

//将HWND转换为QString
TCHAR szBuffer[256];
wsprintf(szBuffer, L"0x%08p", hwnd);
QString strHWND = QString::fromWCharArray(szBuffer);

QString 转 HWND

1、QString 为十进制字符串,需要将其转换成int类型,再强转为HWND。

HWND hWind = (HWND)(m_strHWindID.toInt());

2、QString 为十六进制字符串,先通过append方法将QString的所有内容添加到QByteArray。其次通过toUInt方法转换成int类型,最后强转为HWND。

QByteArray oArray;
oArray.append(m_strHWindID);
int nHWindID = oArray.toUInt(Q_NULLPTR, 16);
HWND hWind = (HWND)(nHWindID);
显示全文