随笔-145  评论-173  文章-70  trackbacks-0
浮动工具栏------即可以通过拖动使得工具栏停靠在界面的顶部,或者浮动在任何其他部位。从本质上来讲,浮动工具栏也就是一个工具栏,因此,可以利用相应的类来创建,即CToolBar类型的变量,也可以通过添加一个资源,然后设置关联。总之,需要利用相应的创建函数,来创建工具栏并显示。
以下是代码部分:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
        
return -1;
    
    
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(
"Failed to create toolbar\n");
        
return -1;      // fail to create
    }


    
if (!m_wndStatusBar.Create(this||
        
!m_wndStatusBar.SetIndicators(indicators,
          
sizeof(indicators)/sizeof(UINT)))
    
{
        TRACE0(
"Failed to create status bar\n");
        
return -1;      // fail to create
    }


    
// TODO: Delete these three lines if you don't want the toolbar to
    
//  be dockable
    m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
    EnableDocking(CBRS_ALIGN_ANY);
    DockControlBar(
&m_wndToolBar);
    
    
if(!m_newToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|
        CBRS_GRIPPER
|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)||!m_newToolBar.LoadToolBar(IDR_TOOLBAR1))
    
{                                                //添加新的工具栏
        TRACE0("Failed to create toolbar!\n"); 
        
return -1;
    }

    m_newToolBar.EnableDocking(CBRS_ALIGN_ANY);        
//运行工具栏停靠在框架窗口中
    DockControlBar(&m_newToolBar);            //将工具栏停靠在框架窗口中


    
return 0;
}

做出来之后,想到用来添加响应的代码,即使得新建的工具栏可以有响应函数,于是又添加了代码。
注意的是:1.资源文件中,每次编辑会生成一个按钮。
                  2.按钮对应ID,而ID对应消息。
                   3.将新建的ToolBar类作为View的子类下面的响应函数。
void CTest17View::OnButton32772() 
{
    
// TODO: Add your command handler code here
    MessageBox("This is the message of first toolbar!");
}

这样,点击就显示出来了信息了。
posted on 2010-02-17 16:20 deercoder 阅读(622) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理