酱坛子

专注C++技术 在这里写下自己的学习心得 感悟 和大家讨论 共同进步(欢迎批评!!!)

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  66 Posts :: 16 Stories :: 236 Comments :: 0 Trackbacks

公告

王一伟 湖南商学院毕业 电子信息工程专业

常用链接

留言簿(19)

我参与的团队

搜索

  •  

积分与排名

  • 积分 - 382164
  • 排名 - 63

最新随笔

最新评论

阅读排行榜

评论排行榜

1) Right click Solution Explorer -> Add -> Resource -> Tool Bar -> New. This will open into Tool Bar Editor.

2)You can Create/Paint Buttons here. Make sure you change the default Ids of these buttons to some proper usable ids. (Use Property Explorer for this), this will create a .bmp image in resources. (Lets say, The Tool Bar is ‘TDR_TOOLBAR1’ and the two buttons are ‘IDC_TBUTTON1’ and ‘IDC_TBUTTON2’ )

3)Now go to the .h for dialog(You can add a class to a dialog) on which toolbar need to be placed. Declare a ‘CToolBar’ Object

CToolBar m_FirstToolBar

4)Now on the .cpp file of the dialog, in ‘OnInitDialog()’ add following code;(You Can add OnInitDialog event to the directly by declaring it in .h file added and using it in .cpp file)

if(!m_FirstToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_FirstToolBar.LoadToolBar(IDR_TOOLBAR1))
{
   EndDialog(IDCANCEL);
}

RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST,0);
 

4.1. Here you can see the various attributes set for the toolbar in ‘CreateEx(...)’ like ‘TBSTYLE_FLAT’ for flat look of toolbar buttons;

4.2 In ‘LoadToolBar(...)’ the Resource created for the toolbar is used. This maps our toolbar object ‘m_FirstToolBar’ with resource ‘IDR_TOOLBAR1’

4.3 ‘RepositionBars()’ is used to place the toolbar on the dialog.

5) ‘MoveWindow()’ can be used to place the toolbar on the desired position.

m_FirstToolBar.MoveWindow( 50, 0,100, 100, 1 );

Now if you have finalized the place where you want to place the tool bar you can put it there using MoveWindow(...), my suggestion is to put a label in the design of dialog at place you want to put you toolbar; Then at run time get the position of this label and place the toolbar there using MoveWindow(...)

If you want to place this toolbar on Top Left and dynamically move all the controls accordingly and increase the dialog dimensions refer the article on this site I suggested above.

6)This is how the buttons of Tool Bar can be made visible/invisible

m_FirstToolBar.GetToolBarCtrl().HideButton(IDC_TBUTTON1, TRUE);

Notice that we have used the ‘IDC_TBUTTON1’ which we declared at the time of creating toolbar resource.

7) Similarly

m_FirstToolBar.GetToolBarCtrl().EnableButton(IDC_TBUTTON1,false)

can be used to disable a button.

8) To handle Click events: 8.1 Add following line to BEGIN_MESSAGE_MAP()

ON_COMMAND(IDC_TBUTTON1,OnToolBarButton1) 

8.2 Write the desired code in .cpp file

FirstToolBarDialog:: OnToolBarButton1()

{

- - - 

      - - - 

}

 
posted on 2006-10-22 13:45 @王一伟 阅读(1607) 评论(0)  编辑 收藏 引用 所属分类: 1. MFC

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