2013-02-20 39 views
4

我想向我的Win32應用程序添加一個狀態欄。我發現我可以使用CreateStatusWindow函數。我工作得很好,直到我重新調整窗口的大小。見我的代碼塊的一部分:在Win32應用程序中添加狀態欄

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) 
{ 
    HWND hWnd; 

    hInst = hInstance; // Store instance handle in our global variable 

    hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); 

    if (!hWnd) 
    { 
     return FALSE; 
    } 


    CreateStatusWindow(WS_CHILD | WS_VISIBLE, _T("Welcome to SpyWindows"), hWnd, 9000); 

    ShowWindow(hWnd, nCmdShow); 
    UpdateWindow(hWnd); 

    return TRUE; 
} 

這裏是我的應用程序的主窗口兩個printscreens:

enter image description here

我能做些什麼有一個良好的狀態欄? (I還希望它在更多領域劃分)

回答

7

documentation提到的是,當它接收到一個WM_SIZE消息的狀態欄將重新計算其相應的位置和大小:

窗口過程自動調整的大小每當它收到WM_SIZE消息時,狀態欄 。通常情況下,當父窗口的大小變爲 時,父級會向 狀態欄發送WM_SIZE消息。

因此,要實現這一目標的最簡單方法是中繼到狀態欄由母公司收到的WM_SIZE消息(與SendMessage(),從它的窗口過程)。消息參數無關緊要,因爲狀態欄在其計算中不使用它們。

相關問題