2015-10-08 61 views
-1

好的,這裏是我的代碼,我只提供一個函數的意義,其餘的不會有幫助。我一直在尋找這個問題,似乎無法弄清楚。在switch語句中未初始化的局部變量 - Win32 API

Error: uninitialized local variable 'hTextBox' used Win32Project2

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) 
{ 
    HDC hdc; 
    RECT rect; 
    PAINTSTRUCT ps; 
    HWND hTextBox; 

    switch (message) 
    { 

     case WM_CREATE: 
      hTextBox = CreateWindow(L"edit", L"", WS_CHILD|WS_VISIBLE|WS_BORDER, 5, 5, 200, 25, hwnd, NULL, NULL, NULL); 

      CreateWindow(L"button", L"Click me!", WS_CHILD | WS_VISIBLE, 20, 40, 75, 25, hwnd, (HMENU)1, NULL, NULL); 
      break; 

     case WM_COMMAND: 

      switch (LOWORD(wparam)) 
      { 
      case 1: 
       int returnedCharacters = 0; 
       returnedCharacters = GetWindowText(hTextBox, &szTextSaved[0], 20); 
       break; 
      } 


     case WM_PAINT: 
      hdc = BeginPaint(hwnd, &ps); 
      GetClientRect(hwnd, &rect); 
      DrawText(hdc, L"This is a text message!", -1, &rect, DT_CENTER | DT_VCENTER); 
      EndPaint(hwnd, &ps); 
      break; 

     case WM_DESTROY: 
      PostQuitMessage(0); 
      break; 
    } 

    return DefWindowProc(hwnd, message, wparam, lparam); 
} 

回答

2

它不是靜態的,所以它不會記得在WM_CREATE發生了什麼

+0

謝謝:d,這傢伙從來沒有提到這一點,所以我不知道。 – KingRaider