我基于对话框创建了一个MFC应用程序。在此,我在对话框底部添加了一个CStatusBar,将此代码添加到CMyDialog :: InitDIalog()中:
//Create status bar
BOOL bReturn = m_wndStatusBar.Create(this);
m_wndStatusBar.SetIndicators(indicators,1);
// Find the Size of Dialog box
CRect rect;
GetClientRect(&rect);
// Size the two panes
m_wndStatusBar.SetPaneInfo(0,IDD_INDICATOR_STATUS, SBPS_NORMAL, rect.Width());
// This is where we actually draw it
RepositionBars( AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, IDD_INDICATOR_STATUS ) ;
注意在对话框编辑器中,我必须在状态栏的底部留一些空格。到目前为止工作正常,状态栏正确显示:
当我调整对话框大小时会出现问题。我将此代码放入CMyDialog :: OnSize():
RepositionBars( AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, IDD_INDICATOR_STATUS) ;
m_wndStatusBar.SetForegroundWindow();
CStatusBar窗口的位置已正确调整...但状态栏显示在其他控件后面。
知道如何解决这个问题吗?为什么在这种情况下调用SetForegroungWindow()不起作用?