如何在状态条中(CStatusbar Pane)加入Bitmap图
以下的代码将演示如何在状态条的第一个方块中显示Bitmap图。Visual C 4.0
以后的MFC的CStatusBar使用状态窗口通用控制,所以代码与早期版本有所不同。
在一个AppWizard应用的状态条中加入一个新的方块,在Mainfrm.cpp中加入下列语句
//Mainfrm.cpp
static UINT indicators[] =
ID_SEPARATOR, // status line indicator
ID_INDICATOR_BITMAP, // BITMAP状态条
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
从CStatusBar派生一个新类(例如CBitmapStatusBar),并且用这个新类取代CMainFrame
中的CStatusBar(Mainfrm.h)
//Mainfrm.h
//CStatusBar m_wndStatusBar;
CBitmapStatusBar m_wndStatusBar;
在新类的.h和.cpp中加入下面两个函数的声明和定义
//BitmapStatusBar.h
class CMyStatusBar : public CStatusBar {...
#if _MFC_VER < 0x400
virtual void DoPaint(CDC* pDC);
#else
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
#endif
...}
//BitmapStatusBar.cpp
#if _MFC_VER < 0x400
void CBitmapStatusBar::DoPaint(CDC* pDC)
{
CRect rect;
GetItemRect(1,