class CMyDialog: public CDialog
{
.............
CStatusBarCtrl m_wndStatusBar;
}
BOOL CPictureDlg::OnInitDialog()
{
.................
//加入状态栏
if(m_wndStatusBar.Create(WS_CHILD|WS_CHILD|CCS_BOTTOM|CCS_NODIVIDER,
CRect(0,0,0,0),this,ID_STATUSBAR))
{
TRACE("\nSucess to create statusbar!\n");
m_wndStatusBar.SetParts(3,nWidth);
m_wndStatusBar.SetText(_T("Pane 2"),1,0);
m_wndStatusBar.SetText(_T("Pane 3"),2,0);
m_wndStatusBar.SetMinHeight(50);
m_wndStatusBar.Invalidate();
}
else
TRACE("\nFailed to crate the statusbar!\n");
}
调试显示创建成功,为什么显示不成功了???
多谢那位高手指教了!
{
.............
CStatusBarCtrl m_wndStatusBar;
}
BOOL CPictureDlg::OnInitDialog()
{
.................
//加入状态栏
if(m_wndStatusBar.Create(WS_CHILD|WS_CHILD|CCS_BOTTOM|CCS_NODIVIDER,
CRect(0,0,0,0),this,ID_STATUSBAR))
{
TRACE("\nSucess to create statusbar!\n");
m_wndStatusBar.SetParts(3,nWidth);
m_wndStatusBar.SetText(_T("Pane 2"),1,0);
m_wndStatusBar.SetText(_T("Pane 3"),2,0);
m_wndStatusBar.SetMinHeight(50);
m_wndStatusBar.Invalidate();
}
else
TRACE("\nFailed to crate the statusbar!\n");
}
调试显示创建成功,为什么显示不成功了???
多谢那位高手指教了!
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
试试
CRect(0,0,0,0),this,ID_STATUSBAR)你在Create中给状态栏指定的窗口是(0,0,0,0),它当然不会显示了。
m_StatusBar = new CStatusBarCtrl;
m_StatusBar->Create(WS_CHILD|WS_VISIBLE|SBT_OWNERDRAW,
CRect(0,0,0,0), this, 0);int strPartDim[4]= {180, 260, 340, -1};
m_StatusBar->SetParts(4, strPartDim);m_StatusBar->SetText(_T("Dialog / StatusBar / Toolbar"),0,0);
m_StatusBar->SetText(_T("Example"), 1, 0);CString string;
string.LoadString(IDS_MYCOMPUTER);
m_StatusBar->SetText(string, 3 ,SBT_NOBORDERS );
m_StatusBar->SetIcon(3,
SetIcon(AfxGetApp()->LoadIcon(IDI_COMP),
FALSE));
我用CStatusBar加了个RepositionBars就有StatusBar了。