Добавление строки состояния в приложение Win32

Я хочу добавить строку состояния в мое приложение Win32. Я узнал, что я могу использовать CreateStatusWindow функция. Я работаю хорошо, пока я не изменю размеры своего окна. Смотрите часть моего блока кода:

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

Вот две распечатки главного окна моего приложения:

введите описание изображения здесь

Что я могу сделать, чтобы иметь хорошую строку состояния? (Я также хочу разделить это на больше областей)

4

Решение

документация упоминает, что строка состояния пересчитает свою соответствующую позицию и размер, когда она получает WM_SIZE сообщение:

Оконная процедура автоматически настраивает размер строки состояния
всякий раз, когда он получает WM_SIZE сообщение. Как правило, когда размер
родительское окно изменяется, родительский WM_SIZE сообщение для
статус бар.

Итак, самый простой способ добиться этого — перевести в строку состояния WM_SIZE сообщения, полученные родителем (с Отправить сообщение(), из его оконной процедуры). Параметры сообщения не имеют значения, так как строка состояния не использует их в своих вычислениях.

7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]