发新话题
打印

如何在状态条中(CStatusbar Pane)加入Bitmap图

如何在状态条中(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,

TOP

发新话题