我試圖設置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