Adding statusbar in Win32 application

c++, statusbar, winapi

Solution

The documentation mentions that the status bar will recompute its appropriate position and size when it receives a WM_SIZE message:

The window procedure automatically adjusts the size of the status bar whenever it receives a `WM_SIZE` message. Typically, when the size of the parent window changes, the parent sends a `WM_SIZE` message to the status bar.

So, the simplest way to achieve this is to relay to the status bar the `WM_SIZE` messages received by the parent (with SendMessage(), from its window procedure). The message parameters do not matter, as the status bar does not use them in its computations.

Problem

I want to add a statusbar to my Win32 application. I found out that I can use `CreateStatusWindow` function. I works fine until I re-size my window. See a part of my block of code: ``` 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; } ``` Here are two printscreens of my application main window: What can I do to have a good status bar? (I also want to divide it in more areas)

Original source