2013-02-20 79 views
4

我想向我的Win32应用程序添加一个状态栏。我发现我可以使用CreateStatusWindow函数。我工作得很好,直到我重新调整窗口的大小。见我的代码块的一部分:在Win32应用程序中添加状态栏

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

这里是我的应用程序的主窗口两个printscreens:

enter image description here

我能做些什么有一个良好的状态栏? (I还希望它在更多领域划分)

回答

7

documentation提到的是,当它接收到一个WM_SIZE消息的状态栏将重新计算其相应的位置和大小:

窗口过程自动调整的大小每当它收到WM_SIZE消息时,状态栏 。通常情况下,当父窗口的大小变为 时,父级会向 状态栏发送WM_SIZE消息。

因此,要实现这一目标的最简单方法是中继到状态栏由母公司收到的WM_SIZE消息(与SendMessage(),从它的窗口过程)。消息参数无关紧要,因为状态栏在其计算中不使用它们。

相关问题