如何解决如何使用c ++ win32 api更改不是我的应用程序中的菜单项控件的标题?
例如,如果我想更改为记事本“编辑”菜单下的“复制”字符串。
我正在尝试执行以下操作:
使用enumWindowsProc(效果很好)
BOOL CALLBACK enumWindowsProc(
__in HWND hWnd,__in LParaM lParam
) {
int length = ::GetwindowTextLength(hWnd);
if (0 == length) return TRUE;
TCHAR* buffer;
buffer = new TCHAR[length + 1];
memset(buffer,(length + 1) * sizeof(TCHAR));
GetwindowText(hWnd,buffer,length + 1);
wcout << buffer << endl;
wstring s2(buffer);
wstring s3(L"Notepad");
std::string::size_type found = s2.find(s3);
if (found != std::string::npos)
{
EnumChildWindows(hWnd,EnumChildProc,0);
}
delete[] buffer;
return TRUE;
}
,而不是使用EnumChildProc(没有给出所需的行为。我希望得到一个控件树):
BOOL CALLBACK EnumChildProc(HWND hwnd,LParaM lParam)
{
int length = ::GetwindowTextLength(hwnd);
if (0 == length) return TRUE;
TCHAR* buffer;
buffer = new TCHAR[length + 1];
memset(buffer,(length + 1) * sizeof(TCHAR));
GetwindowText(hwnd,length + 1);
OutputDebugString(buffer);
OutputDebugString(L"\n");
EnumChildWindows(hwnd,0);
delete[] buffer;
return TRUE;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。