精华内容
下载资源
问答
  • 如题,我想在对话框上创建一个菜单栏...3.菜单栏工具栏显示和隐藏 4.在工具栏的按钮悬停有提示信息 直接创建一个MFC 对话框程序,直接用VS 20* * 直接创建就行了,我用的VS2012。一、创建菜单栏在资源视图中插入一个

    如题,我想在对话框上创建一个菜单栏和工具栏,并且能在菜单栏用checked 对工具的显示和隐藏,而且在工具栏的按钮上悬停有提示信息。
    大概这个对话框是这样:

    0.创建一个对话框
    1.建立菜单栏
    2.建立工具栏
    3.菜单栏 让工具栏显示和隐藏
    4.在工具栏的按钮悬停有提示信息
    

    直接创建一个MFC 对话框程序,直接用VS 20* * 直接创建就行了,我用的VS2012。

    一、创建菜单栏

    在资源视图中插入一个MENU资源,ID设置为IDR_MENU1
    在 C***Dlg::OnInitDialog()函数中添加如下代码:

        CMenu menu;  
        menu.LoadMenu(IDR_MENU1);  //IDR_MENU1为菜单栏ID号  
        SetMenu(&menu); 

    这样运行菜单栏就在对话框上直接显示了。

    二、创建工具栏

    这里我找了很多代码,也看了很多资料,我是再OnInitDialg()函数中定义的 CToolBar m_toolbar;无论我怎么写,这个工具栏一直都不出来,也让我很疑惑,后来定义了全局变量就没事了,这里我还是有很大的疑惑。局部变量在执行这个函数的时候也创建了啊,为啥就不显示呢?稍后我在研究研究。
    在资源视图里添加一个TOOLBAR ,IDR_TOOLBAR1,并且添加两个按钮,随便画上点图案就行。
    在OnInitDialg()中添加如下代码:

    if (! m_toolbar.CreateEx( this,TBSTYLE_FLAT ,  WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS,
            CRect(2,2,0,0)) ||    ! m_toolbar.LoadToolBar(IDR_TOOLBAR1) )
        {
            AfxMessageBox("failed to create toolbar\n");
            return FALSE;
        }
        //m_toolbar.ShowWindow(SW_SHOW); //显示工具栏,这里先注释掉,让菜单栏管理 SW_SHOW是宏定义1
        RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);

    这里不注释哪行,工具栏也可以显示了。

    三、菜单栏的checked对工具的管理

    在C***DLg.h中添加

    void OnInitMenuPopup(CMenu *pPopupMenu, UINT nIndex, BOOL bSysMenu); //显示toolbar

    在.cpp 消息函数映射中添加 ON_WM_INITMENUPOPUP()

    在.cpp中添加如下代码:

    void CServerDlg::OnInitMenuPopup(CMenu *pPopupMenu, UINT nIndex, BOOL bSysMenu)
    {
        //显示toolbar
        ASSERT(pPopupMenu != NULL);
        // Check the enabled state of various menu items.
        CCmdUI state;
        state.m_pMenu = pPopupMenu;
        ASSERT(state.m_pOther == NULL);
        ASSERT(state.m_pParentMenu == NULL);
        // Determine if menu is popup in top-level menu and set m_pOther to
        // it if so (m_pParentMenu == NULL indicates that it is secondary popup).
        HMENU hParentMenu;
        if (AfxGetThreadState()->m_hTrackingMenu == pPopupMenu->m_hMenu)
        {
            state.m_pParentMenu= pPopupMenu; // Parent == child for tracking popup.
        }
        else if ((hParentMenu = ::GetMenu(m_hWnd)) != NULL)
        {
            CWnd* pParent = this;
            // Child windows don't have menus--need to go to the top!
            if (pParent != NULL && (hParentMenu = ::GetMenu(pParent->m_hWnd)) != NULL)
            {
                int nIndexMax = ::GetMenuItemCount(hParentMenu);
                for (int nIndex = 0; nIndex < nIndexMax; nIndex++)
                {
                    if (::GetSubMenu(hParentMenu, nIndex) == pPopupMenu->m_hMenu)
                    {
                        // When popup is found, m_pParentMenu is containing menu.
                        state.m_pParentMenu = CMenu::FromHandle(hParentMenu);
                        break;
                    }
                }
            }
        }
        state.m_nIndexMax = pPopupMenu->GetMenuItemCount();
        for (state.m_nIndex = 0; state.m_nIndex < state.m_nIndexMax;state.m_nIndex++)
        {
            state.m_nID = pPopupMenu->GetMenuItemID(state.m_nIndex);
            if (state.m_nID == 0)
            {
                continue; // Menu separator or invalid cmd - ignore it.
            }
            ASSERT(state.m_pOther == NULL);
            ASSERT(state.m_pMenu != NULL);
            if (state.m_nID == (UINT)-1)
            {
                // Possibly a popup menu, route to first item of that popup.
                state.m_pSubMenu = pPopupMenu->GetSubMenu(state.m_nIndex);
                if (state.m_pSubMenu == NULL
                    || (state.m_nID = state.m_pSubMenu->GetMenuItemID(0)) == 0
                    || state.m_nID == (UINT)-1)
                {
                    continue; // First item of popup can't be routed to.
                }
                state.DoUpdate(this, TRUE); // Popups are never auto disabled.
            }
            else
            {
                // Normal menu item.
                // Auto enable/disable if frame window has m_bAutoMenuEnable
                // set and command is _not_ a system command.
                state.m_pSubMenu = NULL;
                state.DoUpdate(this, FALSE);
            }
            // Adjust for menu deletions and additions.
            UINT nCount = pPopupMenu->GetMenuItemCount();
            if (nCount < state.m_nIndexMax)
            {
                state.m_nIndex -= (state.m_nIndexMax - nCount);
                while (state.m_nIndex < nCount
                    && pPopupMenu->GetMenuItemID(state.m_nIndex) == state.m_nID)
                {
                    state.m_nIndex++;
                }
            }
            state.m_nIndexMax = nCount;
        }
    
    }

    在cpp中定义全局变量

        bool state=true; //默认显示toolbr

    在菜单栏的下拉菜单添加响应事件COMMAND,如图这里写图片描述
    这里写图片描述
    这里一定要 一定要选好类
    再添加响应事件 UPDATE_COMMAND_UI
    代码如下:

    void C***Dlg::Onsettoolbar()
    {
        // TODO: 在此添加命令处理程序代码
        state = !state;
        m_toolbar.ShowWindow(state); // 0 隐藏 1 显示
    }
    
    
    
    
    void C***Dlg::OnUpdatesettoolbar(CCmdUI *pCmdUI)
    {
        // TODO: 在此添加命令更新用户界面处理程序代码
    
        pCmdUI->SetCheck(state);
    
    }

    到这里工具栏就可以利用菜单栏里的checked 来控制是否显示

    四、工具栏悬停提示信息

    我在创建工具栏的时候就加上了可以有提示信息的属性CBRS_TOOLTIPS,也可以后续用m_toolbar.EnableToolTips(TRUE);实现。悬停显示信息的方法有多种,自己可以去网上查。
    同样在.h文件中加入如下代码:

    afx_msg BOOL OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult );//toolbar提示信息

    cpp的消息函数映射中加入

    ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify)

    cpp中加入如下代码:

    BOOL CServerDlg::OnToolTipNotify(UINT id, NMHDR *pNMHDR, LRESULT *pResult)
    {
        //显示 toolbar  按钮的提示信息
        TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
        CString str;
        UINT nID =(UINT)pNMHDR->idFrom; //获取工具栏按钮ID
        if(nID)
        {
            nID = m_toolbar.CommandToIndex(nID); //根据ID获取按钮索引
            if (nID != -1)
            {
                switch(nID)
                {
                case 0:
                    pTTT->lpszText  = "设置参数";
                    break;
                case 1:
                    pTTT->lpszText  = "管理服务";
                    break;
                default:
                    pTTT->lpszText = " ";
                    break;
    
                }
    
                //获取工具栏文本           
                pTTT->hinst = AfxGetResourceHandle();
                return(TRUE);
            }
        }
        return(FALSE);
    }
    

    到这里我想要的功能全部实现。
    这里写图片描述
    这里写图片描述
    这里写图片描述
    欢迎大佬指点迷津。

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

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


    版本说明

    版本 作者 日期 备注
    0.1 loon 2018.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创建菜单栏、工具栏和状态栏很简单,按部就班即可,但是如何灵活的运用这些知识来解决实际问题往往需要一些技巧,这些技巧往往就是我们要总结和回顾的经验。

    展开全文
  • 福昕阅读器不显示菜单栏工具

    万次阅读 2015-04-21 15:53:31
    问题: 在使用福昕阅读器的过程中,突然发现菜单栏工具栏都没有了,甚至连滚动条都没了,怎么办呢?点哪个地方都没有右键菜单可以把菜单栏工具栏调处理。 解决:

    问题:

    在使用福昕阅读器的过程中,突然发现菜单栏和工具栏都没有了,甚至连滚动条都没了,怎么办呢?点哪个地方都没有右键菜单可以把菜单栏和工具栏调处理。

    解决:

    解决办法其实很简单,只需要按F9,菜单就又重回来了。

    显示工具栏则只需按F8键即可,再按一次关闭。也可以通过菜单来操作:

    视图->工具栏->显示工具栏。

    展开全文
  • IE 8界面中菜单栏无法显示,勾选菜单栏没有反应 通过修改注册表就可以实现这一目的,执行以下操作: 单击“开始 >> 运行”,在弹出的“运行”对话框中输入“Regedit”,按下回车键打开注册表编辑器 定位,“HKEY_...

    本人原创:转载或者引用请注明出处

     

    一、搜索栏
    IE 8界面中菜单栏无法显示,勾选菜单栏没有反应
    通过修改注册表就可以实现这一目的,执行以下操作:
    单击“开始  >> 运行”,在弹出的“运行”对话框中输入“Regedit”,按下回车键打开注册表编辑器
    定位,“HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main”分支下;
    右击右边的空白区域,选择“新建 >>DWORD值”,
    新建一个名为“AlwaysShowMenus”的DWORD值,并将其数值数据修改为“1”
    再单击“确定”按钮就可以了。

     

    二、地址栏
    将IE 8界面中菜单栏和工具栏对调,使得菜单栏处于界面的最上端
    通过修改注册表就可以实现这一目的,执行以下操作:
    单击“开始  >> 运行”,在弹出的“运行”对话框中输入“Regedit”,按下回车键打开注册表编辑器
    定位,“HKEY_CURRENT_USER\Software\Microsoft\InternetExplorer\Toolbar \WebBrowser”分支下;
    右击右边的空白区域,选择“新建 >>DWORD值”,
    新建一个名为“ITBar7Position”的DWORD值,并将其数值数据修改为“1”
    再单击“确定”按钮就可以了。

     

    展开全文
  • 最近有捡起了LInux,换了新版本,有好多设置有点儿生疏 在使用的过程中,对一些比较典型的问题或者方法,进行一个总结,方便后面查看,也给...其实这个问题也比较尴尬,如下图:想设置一些参数和选项也找到 ...
  • vscode菜单栏显示

    万次阅读 2019-01-16 19:14:28
    今天手贱不知怎么隐藏了顶部菜单栏成了这种状态 后来发现是因为设置了 查看====&gt;外观=======&gt;切换菜单栏 想要改回来只需要在没有菜单栏的状态下按下alt 查看====&gt;外观=======&gt;切换...
  • 在PyQt5中的菜单栏工具

    千次阅读 2017-12-24 02:59:32
    在这一部分,我们学习创建状态栏,菜单栏工具栏。一个菜单是位于菜单栏的一组命令。一个工具栏有一些按钮,这些按钮在应用程序中拥有一些常用命令。状态栏显示状态信息,通常位于应用窗口下方。...
  • 在学习Qt 菜单工具栏设置图标的过程中,发现无论怎么设置,更改图片资源,都显示图片,然后就进行了以下步骤,解决了该问题: 1、构建 -> 清理项目; 2、构建 -> 构建项目; 3、构建 -> 执行qmake; 4、...
  • 什么工具栏,什么菜单栏什么是标题栏?       回答 1 、   菜单栏就是窗口最上方,标题栏下方的那部分,通常 有“文件,编辑,查看,工具,帮助”等选项。   工具栏一般在菜单栏下方,通常有“前进,后退...
  • Qt纯代码实现菜单栏工具栏、状态栏

    千次阅读 热门讨论 2019-04-23 22:02:23
    在QWidget中实现菜单栏工具栏、状态栏 其他 子窗口获取父窗口指针 QWidget阻塞模式 本篇演示的例子是在QMainWindow中进行的,在QWidget中可采取另外的方法,在文末会涉及。 菜单栏 步骤:创建菜单栏->...
  • 我电脑上用的是Adobe Reader 9,在一次使用时,小心给工具栏和菜单栏隐藏了,为了将它们弄出来,费了我好长时间。等到问题解决之后,我才发现原来并难。 在小心隐藏了菜单栏工具栏之后,点右键也找到恢复...
  • 工具栏可以显示出来知道怎么回事。
  • Ubuntu16.04菜单栏侧边栏不显示

    千次阅读 2018-10-18 22:47:10
    今天开机,发现桌面没有了菜单栏和侧边栏了。 在找问题的过程有一些症状: (1)只有桌面上显示一些原有的文档或图片。但打开文档或者图片后也是没有窗口菜单栏,这样连关闭都没法点,快捷Alt+F4也没有反应。...
  • Fiddler 显示菜单工具栏

    千次阅读 2017-11-28 11:22:36
    Fiddler的工具栏不见了,解决办法如下........
  • CAD工具栏不见了怎么显示出来 CAD面板不见了怎么显示出来 解决方法一: 1、打开“工具”-&gt;“选项”-&gt;“配置”-&gt;“重置”。 解决方法二: 1、切换工作空间 ...
  • 【Qt开发】菜单栏工具栏和状态栏

    千次阅读 2019-05-09 15:28:50
    菜单栏工具栏,状态栏应用中经常见到,下图解释一目了然,实际开发中 两种方式来实现,一种是使用纯代码QMenuBar,QToolBar,QStatusBar来设计开发,另一种使用Qt Designer通过拖拽的形式来实现,减少了大量的代码...
  • Mac电脑的菜单栏是在电脑顶部,一般情况下无论打开什么程序都不会改变位置,但是可能会出现某些小BUG导致菜单栏无法显示,遇到这种情况如何把它显示出来的呢?小编大家带来以下几种办法,希望可以帮助到大家。 ① ...
  • android fragment 菜单项/工具栏不显示

    千次阅读 2017-08-13 20:23:54
    除了下面两个方法 代码2,还需要在 onCreate()...// 让FragmentManager知道CrimeFragment需接收选项菜单方法回调 setHasOptionsMenu(true); /* * * 代码2 * 将布局文件中的菜单项目填充到menu中 * * */ @Override
  • 标题栏、菜单栏工具栏、状态栏

    千次阅读 2019-07-15 11:58:02
    菜单栏实际是一种树型结构,软件的大多数功能提供功能入口。 点击以后,即可显示出菜单项。菜单栏是按照程序功能分组排列的按钮集合,在标题栏下的水平栏。通常有“文件、编辑、查看、工具、帮助” ...
  • C#中菜单栏,工具栏,状态栏的学习总结 1.菜单栏:分为下拉菜单,右键菜单MenuStrip派生自  1.1下拉菜单的使用: 1.1.1将菜单项通过Items属性的Add或者AddRange添加到menuStrip1的根菜单处   ToolStripMenuItem...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 179,458
精华内容 71,783
关键字:

为什么工具菜单栏显示不出来