共享空间 » 日志 » ToolBar及状态栏的用法
ToolBar及状态栏的用法
Ж风之羽Ж 发表于 2008-08-08 16:47:13
成员变量申明:
CToolBarXP m_wndToolBar;
CStatusBarXP m_wndStatusBar;
CImageList m_ilTB;
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
CMenuXP::SetXPLookNFeel(this);
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("未能创建工具栏\n");
return -1; // 未能创建
}
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("未能创建状态栏\n");
return -1; // 未能创建
}
//设置ToolBar的图标列表
m_ilTB.Create(32, 32, TRUE | ILC_COLOR8, 4, 0);
HICON hIcon = NULL;
hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDI_ICON_LOGIN), IMAGE_ICON, 32, 32, 0);
m_ilTB.Add(hIcon);
hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDI_ICON_LOGOUT), IMAGE_ICON, 32, 32, 0);
m_ilTB.Add(hIcon);
m_wndToolBar.GetToolBarCtrl().SetImageList(&m_ilTB);
//设置状态栏
UINT nID,nStyle;
int width;
m_wndStatusBar.GetPaneInfo(0, nID, nStyle, width);
m_wndStatusBar.SetPaneInfo(0, nID, nStyle,450);
m_wndStatusBar.GetPaneInfo(1, nID, nStyle, width);
m_wndStatusBar.SetPaneInfo(1, nID, nStyle,100);
m_wndStatusBar.GetPaneInfo(2, nID, nStyle, width);
m_wndStatusBar.SetPaneInfo(2, nID, nStyle,100);
m_wndStatusBar.GetPaneInfo(3, nID, nStyle, width);
m_wndStatusBar.SetPaneInfo(3, nID, nStyle,100);
// TODO: 如果不需要工具栏可停靠,则删除这三行
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
// HANDLE he = ::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)SendHartbeatBack, this, 0, NULL);
//CloseHandle(he);
return 0;
}
