WEB开发网
开发学院软件开发VC MFC程序员的WTL指南(4)工具条与状态条 阅读

MFC程序员的WTL指南(4)工具条与状态条

 2006-07-22 22:03:37 来源:WEB开发网   
核心提示: 使用Rebar代替简单的工具条CFrameWindowImpl也支持使用Rebar控件,使你的程序看起来像IE,MFC程序员的WTL指南(4)工具条与状态条(8),使用Rebar也是在程序中使用多个工具条的一个方法(译者加:前面讲过,另一个方法就是修改WTL的源代码),CFrameWind

使用Rebar代替简单的工具条

CFrameWindowImpl也支持使用Rebar控件,使你的程序看起来像IE,使用Rebar也是在程序中使用多个工具条的一个方法(译者加:前面讲过,另一个方法就是修改WTL的源代码)。要使用Rebar需要在向导的第二页选上支持Rebar的检查框,如下所示:

第二个例子工程WTLClock3就使用了Rebar控件,如果你正在跟着例子代码学习,那现在就打开WTLClock3。

你首先会注意到创建工具条的代码有些不同,出现这种感觉是因为我们在程序中使用了rebar。以下是相关的代码:

LRESULT CMainFrame::OnCreate(...)
{
  HWND hWndToolBar = CreateSimpleToolBarCtrl ( m_hWnd,
              IDR_MAINFRAME, FALSE,
              ATL_SIMPLE_TOOLBAR_PANE_STYLE );
  CreateSimpleReBar(ATL_SIMPLE_REBAR_NOBORDER_STYLE);
  AddSimpleReBarBand(hWndToolBar);
// ...
}

代码从创建工具条开始,只是使用了不同的风格,也就是ATL_SIMPLE_TOOLBAR_PANE_STYLE,它定义在atlframe.h文件中,与ATL_SIMPLE_TOOLBAR_STYLE风格相似,只是附加了一些诸如CCS_NOPARENTALIGN之类的风格,这是使工具条作为Rebar的子窗口能够正常工作所必需的风格。

下一行代码是调用CreateSimpleReBar()函数,该函数创建Rebar控件并将句柄存到m_hWndToolBar中。接下来调用AddSimpleReBarBand()函数为Rebar创建一个条位并告诉Rebar这个条位上是一个工具条。

CMainFrame::OnViewToolBar()函数也有些不同,它只隐藏Rebar上工具条所在的条位而不是隐藏m_hWndToolBar(如果隐藏m_hWndToolBar将隐藏整个Rebar而不仅仅是工具条)。

如果你使用多个工具条,只需像向导为我们生成的关于第一个工具条的代码那在OnCreate()创建它们并调用AddSimpleReBarBand()添加到Rebar就行了。CFrameWindowImpl使用标准的Rebar控件,不像MFC那样支持可停靠的工具条,你所能作得就是排列这些工具条在Rebar中的位置。

上一页  3 4 5 6 7 8 9 10  下一页

Tags:MFC 程序员 WTL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接