精华内容
下载资源
问答
  • 如题,各位能否能忙解答下 ,谢谢! 现在工具栏右边有个边框
  • 在Frame类的OnCreate函数加上 ::ShowWindow(m_wndToolBar,SW_HIDE);

    在Frame类的OnCreate函数加上 ::ShowWindow(m_wndToolBar,SW_HIDE);

    展开全文
  • 文档自定义工具栏

    千次阅读 2013-03-18 15:43:07
    //装载工具栏上资源图片 CImageList m_ImgList; //创建新的工具栏 CToolBar m_newToolBar;   //去掉自带的工具栏 m_wndToolBar.ShowWindow(SW_HIDE); //设置自己的工具栏 SetIcon(LoadIcon...

    Mark一下

    //装载工具栏上资源图片 
    CImageList m_ImgList;
    //创建新的工具栏
    CToolBar m_newToolBar;
    


     

    //去掉自带的工具栏  
    	m_wndToolBar.ShowWindow(SW_HIDE);  
    	//设置自己的工具栏  
    	SetIcon(LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME)),TRUE);  
    	//加载资源图片  
    	m_ImgList.Create(32,32,ILC_COLOR24 | ILC_MASK,1,1);  
    	m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));  
    	m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));  
    	m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));  
    	m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));  
    
    	//创建工具栏  
    	m_newToolBar.Create(this);  
    	//设置按钮  
    	//m_newToolBar.SetButtons(Array,4);  
    
    	m_newToolBar.SetButtonInfo(0, IDB_MAIN_BUTTON1, TBSTYLE_BUTTON, 0);
    	m_newToolBar.SetButtonInfo(1, IDB_MAIN_BUTTON2, TBSTYLE_BUTTON, 1);
    	m_newToolBar.SetButtonInfo(2, IDB_MAIN_BUTTON3, TBSTYLE_BUTTON, 2);
    	m_newToolBar.SetButtonInfo(3, IDB_MAIN_BUTTON4, TBSTYLE_BUTTON, 3);
    
    	//设置按钮图标文字  
    	m_newToolBar.SetButtonText(0,_T("设置端口"));  
    	m_newToolBar.SetButtonText(1,_T("配置插件"));  
    	m_newToolBar.SetButtonText(2,_T("日志管理"));  
    	m_newToolBar.SetButtonText(3,_T("关于"));  
    
    	//设置按钮大小  
    	m_newToolBar.GetToolBarCtrl().SetButtonWidth(60,120);  
    	//将按钮和资源图标相关联  
    	m_newToolBar.GetToolBarCtrl().SetImageList(&m_ImgList);  
    	m_newToolBar.SetSizes(CSize(70,60),CSize(32,32));  
    	//激活鼠标提示功能  
    	m_newToolBar.EnableToolTips(TRUE);  
    	//显示工具栏  
    	RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);  


     

    展开全文
  • 创建工具栏 分2种情况 对话框的工具栏 和 SDI 单文档工具栏编程   用到的函数     RecalcLayout 当窗体布局发生改变的时候 调用这个函数会调用 RePositionBar重新摆放工具条   ShowCont
      
    

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


        用到的函数 
     
        RecalcLayout     当窗体布局发生改变的时候  调用这个函数会调用 RePositionBar重新摆放工具条 
        ShowControlBar   显示隐藏 工具栏的函数     CControlBar是CToolBar的基类 
        IsWindowVisible  CWnd的函数返回BOOL  检测从CWnd派生的 窗体是否可见 
        CCmdUI           OnUpdateCmdUI消息  用于菜单的维护的一些函数如SetCheck等等    

     

     

    1. 工具栏 菜单都是镶嵌在框架类上的对与 一个单文档应用程序来说     首先 定义一个  CToolBar 的对象 


         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))
     {
      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增加到 工具栏

        
                 

     


     

    展开全文
  • Qt菜单栏、工具栏、状态栏介绍及工具栏action的动态增删显示实现方式 版本说明 版本 作者 日期 备注 0.1 loon 2018.11.12 初稿 目录 文章目录Qt菜单栏、工具栏、状态栏介绍及工具...

    Qt菜单栏、工具栏、状态栏介绍及工具栏action的动态增删显示实现方式


    版本说明

    版本作者日期备注
    0.1loon2018.11.12初稿

    目录

    一、需求和目的

    基本上所有的编辑器都支持工具栏快捷功能的动态增删,即我们在菜单栏上打钩就可以在工具栏上看到相应功能的快捷按钮,取消打钩则在工具栏上就移除了该功能的快捷按钮,那么Qt如何实现这个功能呐,我们本次总结的目的就是记录我解决这个问题的思路和方法。

    二、菜单栏、工具栏、状态栏

    对于这三个概念先做一个简单的了解,我们直接上一个source insight的图,来说一下什么是菜单栏、工具栏和状态栏:

    在这里插入图片描述

    最上面的可以下拉的菜单栏,然后是快捷点击的工具栏,最下面的是显示某些状态信息的状态栏。菜单栏的功能一般来说就是最全的,工具栏的内容可以在菜单栏中进行设置以在有限的位置显示出我们需要的常用的一些功能的快捷点击按钮(此外,还有快捷键,这里就不展开了)。

    三、Qt菜单栏、工具栏和状态栏的基本操作说明

    打开Qt助手,分别搜索menuBar、toolBar、statusBar,找到对应的QMenuBar、QToolBar、QStatusBar的类说明进行了解。基础的应用了解一下其方法和属性(公有的、私有的、受保护的都了解一下)、槽、信号等,再了解一些如何使用的 详细描述以及一些注意事项就可以很快上手了。

    在这里插入图片描述

    1、QMenuBar:

    见名知意一下,使用的时候再具体去看一下,基本没什么问题,下面的是公有方法,还有一些其他的内容在助手上都很详细,根据需要去了解一下即可。

    函数说明
    QMenuBar(QWidget *parent = Q_NULLPTR)
    ~QMenuBar()
    QAction *actionAt(const QPoint &pt) const
    QRect actionGeometry(QAction *act) const
    QAction *activeAction() const
    QAction *addAction(const QString &text)
    QAction *addAction(const QString &text, const QObject *receiver, const char *member)
    QAction *addMenu(QMenu *menu)
    QMenu *addMenu(const QString &title)
    QMenu *addMenu(const QIcon &icon, const QString &title)
    QAction *addSeparator()
    void clear()
    QWidget *cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const
    QAction *defaultAction() const
    QAction *insertMenu(QAction *before, QMenu *menu)
    QAction *insertSeparator(QAction *before)
    bool isDefaultUp() const
    bool isNativeMenuBar() const
    void setActiveAction(QAction *act)
    void setCornerWidget(QWidget *widget, Qt::Corner corner = Qt::TopRightCorner)
    void setDefaultAction(QAction *act)
    void setDefaultUp(bool )
    void setNativeMenuBar(bool nativeMenuBar)
    NSMenu *toNSMenu()

    详细描述:

    QMenuBar类提供了一个水平菜单栏。

    菜单栏由下拉菜单项列表组成。使用addMenu()添加菜单项。例如,假设menubar是一个指向QMenuBar的指针,fileMenu是一个指向QMenu的指针,那么下面的语句将菜单插入到菜单栏中:

    menuBar->addMenu(fileMenu);
    

    菜单项文本中的&号设置Alt+F作为此菜单的快捷方式。(你可以使用“&&”在菜单栏中得到一个真正的&符号。)

    没有必要设置菜单栏。它自动将自己的几何图形设置到父小部件的顶部,并在父小部件调整大小时适当地修改它。

    使用

    在大多数主窗口样式应用程序中,您将使用QMainWindow中提供的menuBar()函数,将qmenu添加到菜单栏中,并将QActions添加到弹出菜单中。

    示例(来自菜单示例):

    fileMenu = menuBar()->addMenu(tr(“文件”));
    fileMenu->addAction(newAct);
    

    可以使用removeAction()方法删除菜单项。

    可以使用QWidgetAction类的实例将小部件添加到菜单中。然后,可以按照通常的方式将这些操作插入到菜单中;有关详细信息,请参阅QMenu文档。

    平台依赖的外观和感觉

    不同的平台对菜单栏的外观和用户交互时的行为有不同的要求。例如,Windows系统经常被配置为只在按下Alt键时才显示菜单栏中显示键盘快捷键的下划线字符助记符。

    其它还有一些在MAC和Win CE上使用的一些说明,这里就不多说了。

    2、QToolBar

    详细描述:

    QToolBar类提供一个包含一组控件的可移动面板。

    使用addAction()或insertAction()通过添加操作添加工具栏按钮。可以使用addSeparator()或insertSeparator()分隔按钮组。如果工具栏按钮不合适,可以使用addWidget()或insertWidget()插入小部件。合适的小部件的例子有QSpinBox、QDoubleSpinBox和QComboBox。当按下工具栏按钮时,它会发出actiontrigger()信号。

    工具栏可以固定在特定区域(例如窗口顶部),也可以在工具栏区域之间移动;请参阅setMovable()、isMovable()、allowedAreas()和isAreaAllowed()。

    当工具栏的大小调整到太小而不能显示它所包含的所有项目时,扩展按钮将作为工具栏中的最后一个项目出现。按下扩展按钮将弹出一个菜单,其中包含当前不在工具栏中的项目。

    如果QToolBar不是QMainWindow的子窗口,它就失去了使用addWidget()在工具栏中添加小部件填充扩展弹出框的能力。请使用继承QWidgetAction并实现QWidgetAction::createWidget()创建的小部件操作。

    请参阅QToolButton、QMenu、QAction和应用程序示例。

    可以看到工具栏还可以插入QSpinBox、QDoubleSpinBox和QComboBox小部件呐,感兴趣的可以试试,此外,点击工具栏按钮时发出的是actiontrigger信号。

    3、QStatusBar

    QStatusBar类提供了一个适合显示状态信息的水平条。

    每个状态指示器分为以下三类:

    • Temporary(暂时的)-暂时占据状态栏的大部分。例如,用于解释工具提示文本或菜单项。
    • Normal(一般的) -占据状态栏的一部分,可能被临时消息隐藏。例如,用于在字处理器中显示页和行号。
    • Permanent(永久的)-永远不会隐藏。例如,一些应用程序将大写锁定指示器放在状态栏中,用于重要的模式指示。

    QStatusBar可以显示所有三种类型的指示器。

    通常,状态栏功能的请求与QMainWindow对象相关。QMainWindow提供了一个主应用程序窗口,其中包含一个菜单栏、工具栏、停靠小部件和一个围绕大型中央小部件的状态栏。可以使用QMainWindow::statusBar()函数检索状态栏,并使用QMainWindow::setStatusBar()函数替换状态栏。

    使用showMessage()显示临时消息:

    void MainWindow::createStatusBar()
    {
    	statusBar()->showMessage(tr(“准备好”));
    }
    

    要删除临时消息,请使用clearMessage()槽函数,或在调用showMessage()时设置时间限制。例如:

    void MainWindow::print ()
    {
    #ifndef QT_NO_PRINTDIALOG
    	QTextDocument *document = textEdit->document();
    	QPrinter printer;
    
    	QPrintDialog dlg(&printer, this);
    	if (dlg.exec() != QDialog::Accepted){
    		return;
    	}
    
    	document->print(&printer);
    	statusBar()->showMessage(tr(“Reday”),2000);
    # endif
    }
    

    使用currentMessage()函数来检索当前显示的临时消息。QStatusBar类还提供了messageChanged()信号,当临时状态消息发生更改时发出该信号。

    通过创建一个小部件(QLabel、QProgressBar甚至QToolButton),然后使用addWidget()或addPermanentWidget()函数将其添加到状态栏中,可以显示普通消息和永久消息。使用removeWidget()函数从状态栏删除此类消息。

    statusBar()->addWidget(new MyReadWriteIndication);
    

    默认情况下,QStatusBar在右下角提供一个QSizeGrip。您可以使用setSizeGripEnabled()函数禁用它。使用isSizeGripEnabled()函数确定大小手柄的当前状态。

    参见QMainWindow, QStatusTipEvent, GUI设计手册:状态栏和应用实例。

    由此可以看出状态栏一般都分成三份呐(暂时、一般、永久)。此外,还可以插入小部件别忘记用。

    四、工具栏功能在菜单栏进行动态配置的实现思路

    1、思路

    根据上面的描述,我们可以看到一般就是用addaction和insertaction添加action的,一般我们用Qt设计师设计完后action都已经有了,所以addaction不是很好用了,我这里是用insertaction,但是insert要指定放在哪个action前面,这就麻烦了,我们动态添加的时候不知道前一个action是什么,所以这里就用到了一个小技巧: 在最后设置占位action(占位的action名字设置为|即可),那么我们insertaction时就插入到对应的占位action前面就可以了,即设置空白的action进行占位。 移除就不用多说了,直接removeaction。

    使action可选的方式就是设置action为checked即可选的,然后就可以设置enabled来(true、false)显示√了。

    定义工具栏的显示与否这里就不说了,很简单,使用其自带的槽函数结合一个action按钮就可以了。

    2、结果展示

    这里主要演示工具栏的action动态增删,至于状态栏菜单栏的扩展这里就不演示了(图片大小不能超过5M哈)。

    在这里插入图片描述

    五、最后

    学习如何使用Qt创建菜单栏、工具栏和状态栏很简单,按部就班即可,但是如何灵活的运用这些知识来解决实际问题往往需要一些技巧,这些技巧往往就是我们要总结和回顾的经验。

    展开全文
  • mfc单文档的自定义工具栏

    千次阅读 2018-08-21 17:15:16
    MFC的单文档项目有自带工具栏,同时作为开发者可以自定义想要的工具栏,下面给出笔者的一种做法供大家参考: 编辑自带工具栏的步骤分为以下几步: 第一步:进入项目资源管理器,找到Toolbar文件夹新建一个Toolbar...
  • MFC中 单文档程序 删除工具栏

    千次阅读 2011-12-29 09:47:40
    方法一 、在创建工程的过程中可通过Docking toolbar 选择不生成工具栏。...控制是否显示工具栏  //MainFrm.cpp m_wndToolBar为自带的工具关联的变量  //在int CMainFrame::OnCreate()中创建 在Ma
  • 工程类型:mfc 多文档 office office2007 1、去掉ribbon 在CMainFrame::OnCreate中删除 //m_wndRibbonBar.Create(this);//Delete by psq //m_wndRibbonBar.LoadFromResource(IDR_RIBBON); 2、添加菜单 删除...
  • CAPP工业文档模版设计和打印添加了许多漂亮的工具栏图标,我在网上下的,不知道从哪里下的,分享给大家,很值得一看。
  • OFFICE2007工具栏显示设置

    千次阅读 2012-10-19 16:55:19
    突然一天帮舍友在网上下载了一个word文档直接打开,菜单栏(工具栏)神一般消失了(如截图1),需要点击对应的菜单栏才会显示对应的工具栏,哥使用起来甚是不爽……   哥各种试验不成功,第一次出现这种问题呀...
  • 正常显示工具栏图标如下: ![图片说明](https://img-ask.csdn.net/upload/201511/11/1447222226_334268.png) 然而我将正常工具栏的位图用在我的程序上却显示如下: ![图片说明]...
  • 在做项目的时候,需要去掉系统自带的工具栏,添加我们自己创建的工具栏,但是为了看上去美观,我们可以在工具栏上添加相应的图标,具体的实现方法如下: 1、在网上搜集资源图标(.ico格式)的,如果不好找,下面...
  • 1,去掉工具栏和状态栏,在 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 中注销掉相关的工具栏和状态栏语句,即可。2,去掉菜单,在 BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)...
  • 福昕阅读器不显示菜单栏和工具栏

    万次阅读 2015-04-21 15:53:31
    问题: 在使用福昕阅读器的过程中,突然发现菜单栏和工具栏都没有了,甚至连滚动条都没了,怎么办呢?点哪个地方都没有右键菜单可以把菜单栏和工具栏调处理。 解决:
  • 但是我自己已经检查了很多遍,结果顶部工具栏一直不显示,也不知道为什么,结果在重新仔细看layui的官方文档,发现layui的这个属性是2.4版本之后才有的,我自己的是2.0版本的layui,真的是服了。 ...
  • 原文地址:http://www.docwar.com/b/15001/5.htm当使用... 工具条的定制 工具条的是定义在一个JavaScript数组中的,它包含了editor中可用的,显示在"toolbarrows"的元素。有两种方式为editor设置你想要的工具。他可
  • MFC改变系统默认颜色的进度条,时间显示,还有字体对话框,颜色对话框,和新建的工具栏,和改变背景颜色
  • 最近有个小老弟自己在网上找了一大堆插件,然后他想做一个类似菜单什么的去使用这些零碎的插件,想自定义一个工具集,然后就问我菜单,工具栏,屏幕菜单等等的做法,这里做一个总结,相关资料信息在XD论坛,明经通道...
  • MFC单文档工具栏有开始结束按钮,点击开始,在状态栏中,则显示开始时间,并开始计数,点击停止,则显示停止时间
  • 在“工具”菜单中,指向“宏”,并单击“宏”,打开其对话框。 <br />  2.在“宏名”框中,键入“AutoOpen”,单击“创建”按钮 (如图2),打开“Microsoft Visual Basic”编辑窗口。如果在列表框中已有...
  • iphone里如何实现像图片浏览那样的自动隐藏和导航条和工具栏呢?其实很简单,只需要设置toolbar和navigationBar的显示和隐藏属性就可以了。 效果图如下 未隐藏的效果图 隐藏后的效果图  ...
  • VC 添加与显示工具栏提示信息

    千次阅读 2010-08-27 13:46:00
    对于包含在 CFrameWnd 派生的父窗口中的按钮或其他控件,工具提示会自动显示。这是因为 CFrameWnd 有一个用于 TTN_GETDISPINFO 通知的默认处理程序,该程序处理来自与控件关联的工具提示 (ToolTip) 控件的 TTN...
  • MFC界面美化之工具栏(1)

    千次阅读 2016-12-12 11:17:45
    文档/视图默认的工具栏上只有图标而没有文字。可以将文字在图标下方显示,也可以将文字在图标右侧显示。 1 在图标下方显示文字 在CMainFrame::OnCreate()函数中,在工具栏创建之后,也就是m_wndToolBar.CreateEx()...
  • 掌握MDI窗体的程序设计方法掌握工具栏的属性设置和使用方法掌握图像列表的属性设置和使用方法掌握MDI窗体中菜单与工具栏的协调运用Visual Basic程序设计实验指导第页二预备知识1MDI多文档界面多文档界面MDIMultiple ...
  • MFC关于工具栏介绍

    千次阅读 2010-01-14 11:56:00
    而这些可以借助于工具栏,如在MicrosoftWord中的工具栏,相关的操作基本上都可以借助工具栏来完成。下面,我就将我知道的关于VC中关于工具栏的一些东西写写,与大家共享,不对的地方请大家帮忙纠正。 下面我以...
  • 工具栏设计

    千次阅读 2010-07-26 14:48:00
    工具栏设计 计算机编程2010-02-01 11:25:06阅读156评论0字号:大中小 http://book.csdn.net/bookfiles/521/10052117702.shtml<br />6.2 工具栏设计 工具栏中包含了一组用于执行命令的按钮,每个按钮...
  • TinyMCE工具栏配置详解

    万次阅读 多人点赞 2018-04-10 14:28:01
    TinyMCE工具栏配置详解 写在前面 本文章讲述TinyMCE的工具栏方面的配置方法。 本文的前提为你已经将TinyMCE整合到了你自己的项目中。 什么是工具栏 如图一个编辑器的工具部分。 分为两个部分,上面的...
  • echarts loading加载页&工具栏

    千次阅读 2017-08-31 16:41:00
    echarts的loading加载和工具栏

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 144,327
精华内容 57,730
关键字:

如何显示文档工具栏