1
我更新窗口的標題欄:更新標題欄WINAPI
/* inside the window procedure */
HWND edit_handle;
/* ... */
case WM_COMMAND: {
if (LOWORD(wParam) == 2) { /* 2 is the code for the button */
int len = GetWindowTextLengthW(edit_handle);
if (len > 0) {
wchar_t buf[len + 1];
GetWindowTextW(edit_handle, buf, len + 1);
SetWindowTextW(hwnd, buf);
}
}
break;
}
然而,當我打電話SetWindowTextW
,標題欄並沒有改變:它仍然是以前的樣子。
是編輯控件的句柄。
之前(在剛剛加載的窗口):
按下OK按鈕後
添加一個錯誤檢查,看看GetLastError關於它的一天。 – usr2564301 2014-11-01 01:15:25
使用WinAPI時,**始終**檢查文檔中的返回值是什麼,**總是**檢查返回值。文檔告訴你返回值的含義(以及何時需要調用GetLastError()以獲取更多信息)。 **從不**認爲函數的工作,除非你已經得到一個表明成功的返回值。當我總是說,這意味着**總是**。 *每一次*,無一例外,不管函數調用看起來多麼簡單。 – 2014-11-01 01:34:59
這裏常見的錯誤是在WndProc中聲明窗口句柄('edit_handle')作爲局部變量,這意味着它實際上是一個空指針。 – 2014-11-01 01:55:11