⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 工具条和状态条.htm

📁 VC的一些技巧性文档
💻 HTM
📖 第 1 页 / 共 4 页
字号:
<html><style type="text/css"><!--.p9 {  font-family: "宋体"; font-size: 9pt}a        {text-transform: none; text-decoration: none;}a:hover {text-decoration: underline; color: #FF0000;}--></style><body background="di2001.jpg"><h3 align="center"><font COLOR="#AOAO99">工具条和状态条</font></h3><table width="100%"><tr><td><font color="0000FF"><a name="1">增强型的状态条</a></font></td></tr><tr><td><p>首先在你的应用中添加一个新类,这个类的基类是CStatusBar类。本文中这个类叫做CEnhanceStatusBar。<Br>在头文件中声明以下的控件ID和标志:<Br>#define IDC_PROGRESS          3001    //进程条<Br>#define IDC_INFOBUTTON        3002    //Info按钮<Br>#define IDC_LEFTBUTTON        3003    //左移按钮<Br>#define IDC_RIGHTBUTTON       3004    //右移按钮<Br></Br>#define ENHANCEBAR_PROGRESS   1       //进程条标志<Br>#define ENHANCEBAR_INFO       2       //Info按钮标志<Br>#define ENHANCEBAR_BUTTON     4       //左、右移按钮标志<Br></Br>将下列成员函数和成员变量添加到CEnhanceStatusBar类中,并且根据你的需要设置其属性为public/protected/private:<Br>CBitmapButton    LeftButton;           //左移按钮<Br>CBitmapButton    RightButton;          //右移按钮<Br>CBitmapButton    InfoButton;           //Info按钮<Br>CProgressCtrl    ProgressControl;      //进程条<Br></Br>//下面的四个成员函数返回各个控件:<Br>CBitmapButton& GetLeftButton() {return LeftButton;};<Br>CBitmapButton& GetRightButton() {return RightButton;};<Br>CBitmapButton& GetInfoButton() {return InfoButton;};<Br>CProgressCtrl& GetProgressControl() {return ProgressControl;};<Br></Br>UINT             ButtonWidth;         //按钮宽度<Br>UINT             ButtonHeight;        //按钮高度<Br>UINT             ButtonSpace;         //按钮间距<Br></Br>int             StatusFlags;          //状态条标志<Br>int             ProgressPane;         //进程条所在的pane标号<Br>int             ButtonPane;           //按钮所在的pane标号<Br></Br>BOOL Create(CWnd* wnd, int flags, int progress, int button);//状态条生成函数<Br>virtual BOOL AddButtonControl();      //添加按钮控件<Br>virtual BOOL AddProgressControl();    //添加进程条控件<Br>virtual void PositionControls();      //调整控件位置<Br>virtual void DestroyControls();       //删除控件<Br></Br>//下面是为了测试按钮及进程条控件而添加的一些函数及变量<Br>CStringList     Messages;                        //一组CString,用于存贮讯息<Br>POSITION        CurrentMessagePosition;          //当前讯息在List中的位置<Br>virtual BOOL AddMessage(CString msg, int pos);   //加入一条讯息<Br>virtual BOOL ClearMessages();                    //删除所有讯息<Br>virtual void SetProgress(BOOL show, int range);  //设置进程条<Br></Br>编写构造函数和析构函数,并给Create()函数加入代码:<Br>CEnhanceStatusBar::CEnhanceStatusBar()<Br>{<Br>&nbsp;&nbsp;&nbsp;&nbsp;//初始化参数<Br>&nbsp;&nbsp;&nbsp;&nbsp;ButtonWidth = 14;<Br>&nbsp;&nbsp;&nbsp;&nbsp;ButtonHeight = 13;<Br>&nbsp;&nbsp;&nbsp;&nbsp;ButtonSpace = 3;<Br>&nbsp;&nbsp;&nbsp;&nbsp;CurrentMessagePosition = 0;<Br>&nbsp;&nbsp;&nbsp;&nbsp;StatusFlags = 0;<Br>&nbsp;&nbsp;&nbsp;&nbsp;ProgressPane = 0;<Br>&nbsp;&nbsp;&nbsp;&nbsp;ButtonPane = 0;<Br>}<Br></Br>CEnhanceStatusBar::~CEnhanceStatusBar()<Br>{<Br>&nbsp;&nbsp;&nbsp;&nbsp;ClearMessages();//删除所有讯息<Br>&nbsp;&nbsp;&nbsp;&nbsp;DestroyControls();//删除控件<Br>}<Br></Br>BOOL CEnhanceStatusBar::Create(CWnd* wnd, int flags, int progress, int button)<Br>{<Br>&nbsp;&nbsp;&nbsp;&nbsp;if (m_hWnd ==0)<Br>&nbsp;&nbsp;&nbsp;&nbsp;{<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!CStatusBar::Create(wnd))<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<Br>&nbsp;&nbsp;&nbsp;&nbsp;}<Br>&nbsp;&nbsp;&nbsp;&nbsp;ClearMessages();<Br>&nbsp;&nbsp;&nbsp;&nbsp;DestroyControls();//在通过菜单命令改变状态条格式时,这个调用很重要,<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//因为各控件只能生成一次,所以必须先删除<Br></Br>&nbsp;&nbsp;&nbsp;&nbsp;//得到标志和pane号<Br>&nbsp;&nbsp;&nbsp;&nbsp;StatusFlags = flags;//flags标志状态条的格式,有无进程条和某些按钮等。<Br>&nbsp;&nbsp;&nbsp;&nbsp;ProgressPane = progress;//progress表示状态条所在的pane号<Br>&nbsp;&nbsp;&nbsp;&nbsp;ButtonPane = button;//button表示按钮所在的pane号<Br></Br>&nbsp;&nbsp;&nbsp;&nbsp;if (!AddProgressControl())//加入进程条<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<Br>&nbsp;&nbsp;&nbsp;&nbsp;if (!AddButtonControl())//加入按钮<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<Br>&nbsp;&nbsp;&nbsp;&nbsp;//加入你自己的控件<Br>&nbsp;&nbsp;&nbsp;&nbsp;//if (!AddCustomControl())<Br>&nbsp;&nbsp;&nbsp;&nbsp;//    return FALSE;<Br>&nbsp;&nbsp;&nbsp;&nbsp;//加入你自己的控件<Br>&nbsp;&nbsp;&nbsp;&nbsp;EnableToolTips(TRUE);<Br>&nbsp;&nbsp;&nbsp;&nbsp;PositionControls();//调整控件位置<Br>&nbsp;&nbsp;&nbsp;&nbsp;//调整你自己的控件的位置<Br>&nbsp;&nbsp;&nbsp;&nbsp;//PositionCustomControl();<Br>&nbsp;&nbsp;&nbsp;&nbsp;//调整你自己的控件的位置<Br>&nbsp;&nbsp;&nbsp;&nbsp;return TRUE;<Br>}<Br></Br>给AddButtonControl()、AddProgressControl()和DestroyControls()函数加入代码:<Br>BOOL CEnhanceStatusBar::AddButtonControl()<Br>{<Br>&nbsp;&nbsp;&nbsp;&nbsp;//设置ButtonRect<Br>&nbsp;&nbsp;&nbsp;&nbsp;CRect ButtonRect;<Br>&nbsp;&nbsp;&nbsp;&nbsp;ButtonRect.left = 100;<Br>&nbsp;&nbsp;&nbsp;&nbsp;ButtonRect.top = 2;<Br>&nbsp;&nbsp;&nbsp;&nbsp;ButtonRect.right = 114;<Br>&nbsp;&nbsp;&nbsp;&nbsp;ButtonRect.bottom = 15;<Br></Br>&nbsp;&nbsp;&nbsp;&nbsp;//下面加入左移和右移按钮<Br>&nbsp;&nbsp;&nbsp;&nbsp;if (StatusFlags & ENHANCEBAR_BUTTON)<Br>&nbsp;&nbsp;&nbsp;&nbsp;{<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!LeftButton.Create("",WS_CHILD|WS_VISIBLE|BS_OWNERDRAW,<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ButtonRect,this, IDC_LEFTBUTTON))<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE0("Failed to create LeftButton button\n");<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!LeftButton.LoadBitmaps(IDB_LEFTBUTTON,IDB_LEFTBUTTON_SEL,NULL,<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IDB_LEFTBUTTON_DIS))<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE0("Failed to load LeftButton bitmap\n");<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LeftButton.EnableWindow(FALSE);<Br></Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!RightButton.Create("",WS_CHILD|WS_VISIBLE|BS_OWNERDRAW,<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ButtonRect,this,IDC_RIGHTBUTTON))<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE0("Failed to create RightButton button\n");<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!RightButton.LoadBitmaps(IDB_RIGHTBUTTON,IDB_RIGHTBUTTON_SEL,<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL,IDB_RIGHTBUTTON_DIS))<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE0("Failed to load RightButton bitmap\n");<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RightButton.EnableWindow(FALSE);<Br>&nbsp;&nbsp;&nbsp;&nbsp;}<Br></Br>&nbsp;&nbsp;&nbsp;&nbsp;//下面加入Info按钮<Br>&nbsp;&nbsp;&nbsp;&nbsp;if (StatusFlags & ENHANCEBAR_INFO)<Br>&nbsp;&nbsp;&nbsp;&nbsp;{<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!InfoButton.Create("",WS_CHILD|WS_VISIBLE|BS_OWNERDRAW,<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ButtonRect,this,IDC_INFOBUTTON))<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE0("Failed to create InfoButton\n");<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!InfoButton.LoadBitmaps(IDB_INFO,IDB_INFO_SEL,NULL,IDB_INFO_DIS))<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE0("Failed to load InfoButton bitmap\n");<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InfoButton.EnableWindow(FALSE);<Br>&nbsp;&nbsp;&nbsp;&nbsp;}<Br>&nbsp;&nbsp;&nbsp;&nbsp;return TRUE;<Br>}<Br></Br>BOOL CEnhanceStatusBar::AddProgressControl()<Br>{<Br>&nbsp;&nbsp;&nbsp;&nbsp;if (StatusFlags & ENHANCEBAR_PROGRESS)<Br>&nbsp;&nbsp;&nbsp;&nbsp;{<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置ProgressRect<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CRect ProgressRect;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProgressRect.left = 100;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProgressRect.top = 2;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProgressRect.right = 200;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProgressRect.bottom = 15;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!ProgressControl.Create(WS_CHILD,ProgressRect,this,IDC_PROGRESS))<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE0("Failed to create ProgressControl\n");<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<Br>&nbsp;&nbsp;&nbsp;&nbsp;}<Br>&nbsp;&nbsp;&nbsp;&nbsp;return TRUE;<Br>}<Br></Br>void CEnhanceStatusBar::DestroyControls()<Br>{<Br>&nbsp;&nbsp;&nbsp;&nbsp;if (InfoButton.m_hWnd)<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InfoButton.DestroyWindow();//删除Info按钮<Br>&nbsp;&nbsp;&nbsp;&nbsp;if (LeftButton.m_hWnd)<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LeftButton.DestroyWindow();//删除左移按钮<Br>&nbsp;&nbsp;&nbsp;&nbsp;if (RightButton.m_hWnd)<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RightButton.DestroyWindow();//删除右移按钮<Br>&nbsp;&nbsp;&nbsp;&nbsp;if (ProgressControl.m_hWnd)<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProgressControl.DestroyWindow();//删除进程条<Br>&nbsp;&nbsp;&nbsp;&nbsp;//删除你自己的控件<Br>&nbsp;&nbsp;&nbsp;&nbsp;//DestroyCustomControl();<Br>&nbsp;&nbsp;&nbsp;&nbsp;//删除你自己的控件<Br>}<Br></Br>给PositionControls()函数加入代码:<Br>void CEnhanceStatusBar::PositionControls()<Br>{<Br>&nbsp;&nbsp;&nbsp;&nbsp;if (StatusFlags & ENHANCEBAR_BUTTON)<Br>&nbsp;&nbsp;&nbsp;&nbsp;{<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ((!LeftButton.m_hWnd || !RightButton.m_hWnd || ButtonPane == -1))<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CRect PaneRect, ButtonRect;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//得到pane的大小,pane的宽度可以在CMainFrame的OnCreate()函数中设置<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetItemRect(ButtonPane, &PaneRect);<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//计算ButtonRect<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ButtonRect.right = PaneRect.right - 1;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ButtonRect.top = ((PaneRect.bottom - PaneRect.top) - ButtonHeight)/2<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ PaneRect.top;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ButtonRect.bottom = ButtonRect.top + ButtonHeight;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ButtonRect.left = ButtonRect.right - ButtonWidth;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (StatusFlags & ENHANCEBAR_INFO)<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ((!InfoButton.m_hWnd || ButtonPane == -1))<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InfoButton.MoveWindow(ButtonRect);//调整Info按钮的位置<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//计算ButtonRect<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ButtonRect.right = ButtonRect.left - ButtonSpace;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ButtonRect.left = ButtonRect.right - ButtonWidth;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RightButton.MoveWindow(ButtonRect);//调整右移按钮的位置<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//计算ButtonRect<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ButtonRect.right = ButtonRect.left - ButtonSpace;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ButtonRect.left = ButtonRect.right - ButtonWidth;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LeftButton.MoveWindow(ButtonRect);//调整左移按钮的位置<Br>&nbsp;&nbsp;&nbsp;&nbsp;}<Br></Br>&nbsp;&nbsp;&nbsp;&nbsp;if (StatusFlags & ENHANCEBAR_PROGRESS)<Br>&nbsp;&nbsp;&nbsp;&nbsp;{<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ((!ProgressControl.m_hWnd || ProgressPane == -1))<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CRect ProgressRect;<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetItemRect(ProgressPane, &ProgressRect);//得到ProgressRect的大小<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (ProgressControl.m_hWnd)<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProgressControl.MoveWindow(ProgressRect);//调整进程条的位置<Br>&nbsp;&nbsp;&nbsp;&nbsp;}<Br>}<Br></Br>现在修改Mainfrm.cpp,修改其中indicators[]和OnCreate()函数:<Br>static UINT indicators[] =<Br>{<Br>&nbsp;&nbsp;&nbsp;&nbsp;ID_SEPARATOR, // status line indicator<Br>&nbsp;&nbsp;&nbsp;&nbsp;ID_INDICATOR_CONTROLS,//按钮<Br>&nbsp;&nbsp;&nbsp;&nbsp;ID_INDICATOR_MISC,//进程条<Br>};<Br></Br>int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)<Br>{......<Br>&nbsp;&nbsp;&nbsp;&nbsp;if (!m_wndStatusBar.Create(this, ENHANCEBAR_PROGRESS | ENHANCEBAR_INFO<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| ENHANCEBAR_BUTTON, 2, 1) || !m_wndStatusBar.SetIndicators<Br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(indicators, sizeof(indicators)/sizeof(UINT)))<Br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -