更改窗口中的标签

Change label in window

本文关键字:标签 窗口      更新时间:2023-10-16

我想改变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. 要定期更新一些东西,你可以使用计时器。示例:

        // 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
            } 
        }
    

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

  1. 改变一个窗口的标签:

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

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