BOOL CALLBACK CwgDlg::EnumWindowsProc(HWND hwnd, DWORD lParam) { // 窗口是否可视 if (!::IsWindowVisible(hwnd)) { return TRUE; } // 窗口是否可激活 if (!::IsWindowEnabled(hwnd)) { return TRUE; } // Do something char szTitle[255]; setlocale(LC_ALL,""); ::GetWindowText(hwnd, (LPWSTR)szTitle, sizeof(szTitle)); CString str(szTitle); sztext[sum]=str; sum = sum + 1 ; //m_combo.AddString(_T("鸡啄米")); 无法使使用m_combo变量
return TRUE;
}
void CwgDlg::OnBnClickedButton1()
{
// TODO: Add your control notification handler code here
EnumWindows((WNDENUMPROC)EnumWindowsProc, 0);
CString str;
str.Format(_T("%d"), sum);
MessageBox(str,_T("程序运行结果"),MB_OK);
sum = 0 ;
}
EnumWindows遍历窗口后使用句柄获取标题GetWindowText取得的全都是乱码和空值,求大神指点
GetWindowText依赖于你的程序是否为unicode版本的,VS中查看szTitle内存地址的信息,可以看到十六进制的字符是unicode还是GBK