Я хочу добавить строку состояния в мое приложение 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;
}
Вот две распечатки главного окна моего приложения:
Что я могу сделать, чтобы иметь хорошую строку состояния? (Я также хочу разделить это на больше областей)
документация упоминает, что строка состояния пересчитает свою соответствующую позицию и размер, когда она получает WM_SIZE сообщение:
Оконная процедура автоматически настраивает размер строки состояния
всякий раз, когда он получаетWM_SIZE
сообщение. Как правило, когда размер
родительское окно изменяется, родительскийWM_SIZE
сообщение для
статус бар.
Итак, самый простой способ добиться этого — перевести в строку состояния WM_SIZE
сообщения, полученные родителем (с Отправить сообщение(), из его оконной процедуры). Параметры сообщения не имеют значения, так как строка состояния не использует их в своих вычислениях.
Других решений пока нет …