MFC下 SDI 单文档 对话框 工具栏编程总结

MFC下 SDI 单文档 对话框 工具栏编程总结
创建工具栏 分2种情况  对话框的工具栏  和 SDI 单文档工具栏编程 

    用到的函数 
 
    RecalcLayout    当窗体布局发生改变的时候  调用这个函数会调用 RePositionBar重新摆放工具条 
    ShowControlBar  显示隐藏 工具栏的函数    CControlBar是CToolBar的基类  石元伍
    IsWindowVisible  CWnd的函数返回BOOL  检测从CWnd派生的 窗体是否可见 
    CCmdUI          OnUpdateCmdUI消息  用于菜单的维护的一些函数如SetCheck等等   
 
 
1. 工具栏 菜单都是镶嵌在框架类上的对与 一个单文档应用程序来说    首先 定义一个  CTool
Bar 的对象 

     if (!m_newToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_RIGHT    //创建一个工具栏
  | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||  //加载一个工具栏 资源
  !m_newToolBar.LoadToolBar(IDR_TOOLBAR1))
400公里动车组下线 {
  TRACE0("Failed to create toolbar\n");
  return -1;      // fail to create
 }
        m_newToolBar.EnableDocking(CBRS_ALIGN_ANY);  //设置工具栏可以停靠 
  this->EnableDocking(CBRS_ALIGN_ANY);  //设置框架窗体可以被停靠    缺一不可
  this->DockControlBar(&m_newToolBar);  //停靠工具栏 
 
      以上是 SDI中MFC框架  OnCreate函数中  代码 
 
2.对话框的工具栏添加  特工具栏
 
         
 1.        ///////////////////特工具栏的添加
  CToolBar *m_wndToolBar=new CToolBar;    //工具条对象堆中创建
  m_wndToolBar->CreateEx( this,TBSTYLE_FLAT ,  WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS,
    CRect(10,10,0,0));        //创建工具栏
  m_wndToolBar->LoadToolBar(IDR_TOOLBAR1) ; //加载工具栏资源 
  RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0)
;  //停靠工具栏   

    AFX_IDW_CONTROLBAR_FIRST,  AFX_IDW_CONTROLBAR_LAST 
    指的是空间ID的范围,在MFC中 
    AFX_IDW_CONTROLBAR_FIRST  的值为  0xE800 
    AFX_IDW_CONTROLBAR_LAST    的值为  oxE8FF 
   
    意思是这个ID范围内的ControlBar都将被Reposition
 

2.经过上面步骤 已经在对话框上创建了我们家在的菜单资源  然后我们设置每个按钮的位图  通过  CImageList 类  GetToolBarCtrl 函数获得 CToolBarCtrl的一个引用 
 
  步骤是      CImageList * p=new CImageList;  //定义 CImageList对象
测向天线
              p->Create(30,30,ILC_COLOR32, 0, 13);  //创建图像列表 
              pp->Add(AfxGetApp()->LoadIcon(IDI_ICON13));  //向CImageList对象增加新的图标                pp->Add(AfxGetApp()->LoadIcon(IDI_ICON9));//add 图标
              (m_wndToolBar->GetToolBarCtrl()).SetImageList(pp); //设置图像列表 工具栏的 通过工具控件  CToolBarCtrl 控件 
 
 
3.设置 CToolTipCtrl  就是工具栏上面的浮动提示
宋汉良
 
  CToolTipCtrl *t=new CToolTipCtrl;  //在堆中创建一个 CToolTipCtrl控件
诗剧  t->Create(this);  //在本窗体中创建 
  t->SetMaxTipWidth(100);  //设置最大宽度
  t->SetTipBkColor(RGB(233,222,232));    //设置背景颜
  t->SetTipTextColor(RGB(22,122,122)); //设置提示的文本颜 
  t->AddTool(m_wndToolBar,"导出当前员工在线信息到磁盘",CRect(0,0,20,20),ID_OUTPUT);  //每次增加的tip都对一个这一个工具栏按钮的ID
  t->AddTool(m_wndToolBar,"清空系统运行时候产生的缓存文件",CRect(0,0,20,20),IDM_CLEAR); //ID就是工具栏按钮ID 
  t->Activate(true); 
    (m_wndToolBar->GetToolBarCtrl()).SetToolTips(t); //将TIP增加到 工具栏

本文发布于:2024-09-21 17:23:05,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/399702.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:工具栏   设置   函数
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议