我试图设置Windows的“保存文件为...”对话框的“保存”按钮上的文本。如果我打电话“GetWindowText()
”我看到“&保存”,所以我知道这是正确的按钮)。我已经设置了钩子,收到消息,找到了按钮(如果我打电话“GetWindowText()
”我看到“&保存”如何设置Windows文件对话框中“保存”按钮上的文本?
接下来我使用“SetWindowText()
”(并且称为“GetWindowText()
”来检查它 - 文本是否正确)更改了文本。
但是...该按钮仍然说“保存”。
我可以使用完全相同的代码更改“取消”按钮 - 没问题。 “保存”按钮有什么特别之处?我该如何改变它。
码(为它的价值):
static UINT_PTR CALLBACK myHook(HWND hwnd, UINT msg, WPARAM, LPARAM)
{
if (msg == WM_INITDIALOG) {
wchar_t temp[100];
HWND h = GetDlgItem(GetParent(hwnd),IDOK);
GetWindowTextW(h,temp,100); // temp=="&Save"
SetWindowTextW(h,L"Testing");
GetWindowTextW(h,temp,100); // temp=="Testing"
}
}
根据这些信息,听起来好像按钮正在WM_INITDIALOG之后进行更改。没有内置的扩展机制,允许您自定义对话框的各个方面(不使用挂钩)? – jdigital 2009-03-04 20:04:04
我试着在每次调用回调函数时查看按钮的文本(在WM_INITDIALOG之后有相当多的调用...)。文本总是说“测试”(但它与显示内容不一样)。 – 2009-03-04 22:17:38