在Win32应用程序中添加状态栏

Vic*_*tor 4 c++ winapi statusbar

我想在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;
}
Run Code Online (Sandbox Code Playgroud)

这是我的应用程序主窗口的两个打印屏幕:

在此输入图像描述

如果有一个好的状态栏我该怎么办?(我也希望在更多领域划分它)

Fré*_*idi 7

文档提到状态栏在收到WM_SIZE消息时将重新计算其适当的位置和大小:

窗口过程会在收到WM_SIZE消息时自动调整状态栏的大小.通常,当父窗口的大小更改时,父级会向WM_SIZE状态栏发送消息.

因此,实现此目的的最简单方法是WM_SIZE将父级(使用SendMessage()从其窗口过程)接收的消息中继到状态栏.消息参数无关紧要,因为状态栏在其计算中不使用它们.