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