2013-03-12 49 views
0

我想在vC++窗口中更改标签。该标签显示每100毫秒更新一次的实时数据。那么我怎么能在vC++窗口中做到这一点?任何一个请帮助在窗口中更改标签

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) 
{ 
    HWND hRPMEx,hAvgTimeEx; 
    int wmId, wmEvent; 
    PAINTSTRUCT ps; 
    HDC hdc; 

    switch(message) 
    { 
    case WM_TIMER: 
     break; 

    case WM_CREATE: 
     hRPMEx = CreateWindowA("Static","",WS_CHILD | WS_VISIBLE | SS_LEFT, 
      20,100,220,25, 
      hWnd, (HMENU)IDC_RPM_EX, hInstance, NULL); 

     hAvgTimeEx = CreateWindowA("Static","",WS_CHILD | WS_VISIBLE | SS_LEFT, 
      20,150,220,25, 
      hWnd, (HMENU)IDC_AVGTIME_EX, hInstance, NULL); 
     break; 

    case WM_COMMAND: 
     wmId = LOWORD(wParam); 
     wmEvent = HIWORD(wParam); 
     // Parse the menu selections: 

     switch (wmId) 
     { 
     case IDC_BTN_CONNECT: 
      break; 

     case IDC_RPM_EX: 
      break; 

     case IDC_BTN_DISCONNECT: 
      break; 

     case IDM_ABOUT: 
      DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); 
      break; 

     case IDM_OPEN: 
      break; 

     case IDM_EXIT: 
      break; 

     default: 
      return DefWindowProc(hWnd, message, wParam, lParam); 
     } 

     break; 

    case WM_PAINT: 
     hdc = BeginPaint(hWnd, &ps); 
     EndPaint(hWnd, &ps); 
     break; 

    case WM_DESTROY: 
     PostQuitMessage(0); 
     break; 

    default: 
     return DefWindowProc(hWnd, message, wParam, lParam); 
    } 

return 0; 
} 

我应该在哪里给调用的函数更新标签(静态文本)

+1

这看起来很有意思:你已经设法编写了上面的代码,但是对它没有任何了解?我们怎么说这是** HOMEWORK **,你需要一两个提示。然后这里有一个提示:查看代码中每个东西的*文档*。 – 2013-03-12 08:07:18

+1

您还需要了解_indentation_。 – 2013-03-12 08:13:48

回答

1

两件事情:

  1. 定期更新的东西,你可以用一个定时器。举个例子:从这里

    // To set the timer 
        SetTimer(hwnd,    // handle to main window 
        IDT_TIMER1,   // timer identifier 
        10000,     // 10-second interval 
        (TIMERPROC) NULL);  // no timer callback 
    
        // In you WindProc Callback : 
        case WM_TIMER: 
        { 
         if (wParam == IDT_TIMER1) 
         { 
           // put your code here 
         } 
    
        } 
    

举例:从这里

BOOL WINAPI SetWindowText(
    _In_  HWND hWnd, 
    _In_opt_ LPCTSTR lpString 
); 

例:http://msdn.microsoft.com/en-us/library/windows/desktop/ms644901(v=vs.85).aspx

  1. 要改变窗口的标签http://msdn.microsoft.com/en-us/library/windows/desktop/ms633546(v=vs.85).aspx

+0

非常感谢georgesl – 2013-03-12 09:19:15