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

ラベル(静的テキスト)を更新する関数をどこで呼び出す必要がありますか?

4

1 に答える 1

1

2つのこと:

  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

于 2013-03-12T08:24:33.500 に答える