我想在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;
}
以下是我的应用程序主窗口的两个打印屏幕:
如果有一个好的状态栏我该怎么办? (我也想把它分成更多的区域)
答案 0 :(得分:7)
documentation提到状态栏在收到WM_SIZE消息时会重新计算其适当的位置和大小:
窗口过程会自动调整状态栏的大小 每当收到
WM_SIZE
消息时。通常,当大小时 父窗口更改,父窗口发送WM_SIZE
消息 状态栏。
因此,实现此目的的最简单方法是将父节点(SendMessage()从其窗口过程)收到的WM_SIZE
消息中继到状态栏。消息参数无关紧要,因为状态栏在计算中不使用它们。