怎样加菜单

怎样加菜单
怎样加菜单

1.qtreeview中怎么实现选中后鼠标右键弹出菜单?

答:setContextMenuPolicy+addAction继承自qwidget的基本可以这么干

重写mousePvressEvent和mouseReleaseEvent事件,发送事件给主窗体,主窗体接受到事件后弹出一个菜单

2.qt 右键问题

qt的右键扩展,需要继承虚函数contextMenuEvent,下面的一段来自qt的说明文档,用于添加新的右键菜单项。本来想在textEdit区域加右键,但是代码已经写好了,就懒的去继承QTextEdit,,所以直接加到了MainWindow上了,这样的话,右键点击textEdit区域还是缺省的选项,而右键点击外面的MainWindow区域就多出了一个clear选项。

void MainWindow::contextMenuEvent(QContextMenuEvent *event)

{

QMenu *menu = text->createStandardContextMenu();

QAction *act = menu->addAction(tr("Clear"));

connect(act,SIGNAL(triggered()),this,SLOT(on_actionClear_triggered()));

//...

menu->exec(event->globalPos());

delete menu;

}

3.Qt:QListWidget的item上实现右键菜单

问题:如何实现在一个列表中点击右键,如果在Item上面,则有“修改”选项,在其余空白处,则只有“添加”,"删除"选项。

实现右键菜单,从QListWidget中派生出ListWidget,重写

void QWidget::contextMenuEvent ( QContextMenuEvent * event ) [virtual protected]

当鼠标在ListWidget中右击时,就会调用这个事件。

void ListWidget::contextMenuEvent ( QContextMenuEvent * event )

{

QMenu* popMenu = new QMenu(this);

popMenu->addAction(new QAction(tr("添加"), this));

popMenu->addAction(new QAction(tr("删除"), this));

popMenu->addAction(new QAction(tr("修改"), this));

popMenu->exec(QCursor::pos()); // 菜单出现的位置为当前鼠标的位置

}

在程序中使用ListWidget,当鼠标在之上右击时,就会出现如上代码中的菜单,但是无论右击何处,都会相出现相同的选项。显然,在空白处的右键菜单上面不应该出现"修改"选项,不然修改的是那一个???

问题的关键就是判定调用右键菜单时,鼠标右击的位置处是不是一个Item。那么实现的代码应该是这样的:

void ListWidget::contextMenuEvent ( QContextMenuEvent * event )

{

QMenu* popMenu = new QMenu(this);

popMenu->addAction(new QAction("添加", this));

popMenu->addAction(new QAction("删除", this));

if(currentMousePosHasAItem())

{

popMenu->addAction(new QAction("修改", this));

}

popMenu->exec(QCursor::pos()); // 菜单出现的位置为当前鼠标的位置

}

如何才能判定鼠标右击时,是否是在一个Item上面呢?可爱的Qt很容易实现。QListWidgetItem * QListWidget::itemAt ( const QPoint & p ) const

Returns a pointer to the item at the coordinates p.

QListWidgetItem * QListWidget::itemAt ( int x, int y ) const

This is an overloaded member function, provided for convenience.

Returns a pointer to the item at the coordinates (x, y).

以上两个重载的函数,就是如何利用坐标位置获取item,如何返回的NULL,那么就没有Item。

void ListWidget::contextMenuEvent ( QContextMenuEvent * event )

{

QMenu* popMenu = new QMenu(this);

popMenu->addAction(new QAction("添加", this));

popMenu->addAction(new QAction("删除", this));

if(this->itemAt(QCursor::pos()) != NULL) //如果有item则添加"修改"菜单[1]*

{

popMenu->addAction(new QAction("修改", this));

}

popMenu->exec(QCursor::pos()); // 菜单出现的位置为当前鼠标的位置

}

写好上面的代码,咦?还是不行?呵呵,我这里也不行。因为itemAt()中接受的坐标是ListWidget坐标系的。而通过QCursor::pos()获得坐标是全局坐标。需要映射到ListWidget 上才可以,Qt Assist中是这样描述的。

QPoint QCursor::pos () [static]

Returns the position of the cursor (hot spot) in global screen coordinates.

Y ou can call QWidget::mapFromGlobal() to translate it to widget coordinates.

See also setPos(), QWidget::mapFromGlobal(), and QWidget::mapToGlobal().

所以最终的代码是:

void ListWidget::contextMenuEvent ( QContextMenuEvent * event )

{

QMenu* popMenu = new QMenu(this);

popMenu->addAction(new QAction("添加", this));

popMenu->addAction(new QAction("删除", this));

if(this->itemAt(mapFromGlobal(QCursor::pos())) != NULL) //如果有item则添加"修改"菜单[1]*

{

popMenu->addAction(new QAction("修改", this));

}

popMenu->exec(QCursor::pos()); // 菜单出现的位置为当前鼠标的位置

}

OK,功能实现。记得在自己的代码总要把QAction连接到处理的slot上。上面的代码菜单是没有功能的。

4.在QT中添加右键菜单

QWidget及其子类都可有右键菜单,因为QWidget有以下两个与右键菜单有关的函数:Qt::ContextMenuPolicy contextMenuPolicy () const

void setContextMenuPolicy ( Qt::ContextMenuPolicy policy )

Qt::ContextMenuPolicy 枚举类型包括:Qt::DefaultContextMenu, Qt::NoContextMenu, Qt::PreventContextMenu, Qt::ActionsContextMenu, and Qt::CustomContextMenu。

使用方式如下:

1)默认是Qt::DefaultContextMenu。

它是利用右键菜单事件contextMenuEvent()来处理(which means the contextMenuEvent() handler is called)。就是要重写contextMenuEvent( QContextMenuEvent * event )函数。

2)使用Qt::CustomContextMenu。

它是发出QWidget::customContextMenuRequested信号,注意仅仅只是发信号,意味着要自己写显示右键菜单的slot。

这个信号是QWidget唯一与右键菜单有关的信号(也是自有的唯一信号),同时也是很容易被忽略的signal:

void customContextMenuRequested ( const QPoint & pos )

该信号的发出条件是:用户请求contextMenu(常规就是鼠标右击啦)且同时被击的widget 其contextMenuPolicy又是Qt::CustomContextMenu。

注意:pos是该widget接收右键菜单事件的位置,一般是在该部件的坐标系中。但是对于QAbstratScrollArea及其子类例外,是对应着其视口viewport()的坐标系。如常用的QTableView、QHeaderView就是QAbstratScrollArea的子类。

因为仅发信号,所以需自己写显示右键菜单的slot来响应,例如一个表格(QTableView类型)表头的显示右键菜单槽:

datatable->horizontalHeader()->setContextMenuPolicy(Qt::CustomContextMenu);

connect(datatable->horizontalHeader(), SIGNAL(customContextMenuRequested(const QPoint&)),

this, SLOT(show_contextmenu(const QPoint&)));//this是datatable所在窗口

QMenu *cmenu = NULL;

show_contextmenu(const QPoint& pos)

{

if(cmenu)//保证同时只存在一个menu,及时释放内存

{

delete cmenu;

cmenu = NULL;

}

QMenu cmenu = new QMenu(datatable->horizontalHeader());

QAction *ascendSortAction = cmenu->addAction("升序");

QAction *descendSortAction = cmenu->addAction("降序");

QAction *filterAction = cmenu->addAction("过滤");

QAction *reshowAction = cmenu->addAction("重载");

connect(ascendSortAction, SIGNAL(triggered(bool)), this, SLOT(sort_ascend()));

connect(descendSortAction, SIGNAL(triggered(bool)), this, SLOT(sort_descend()));

connect(filterAction, SIGNAL(triggered(bool)), this, SLOT(show_filter_dlg()));

connect(reshowAction, SIGNAL(triggered(bool)), this, SLOT(reshow_data()));

cmenu->exec(QCursor::pos());//在当前鼠标位置显示

//cmenu->exec(pos)是在viewport显示

}

也可先做好cmenu,好处是始终使用一个:

QMenu cmenu = new QMenu(datatable->horizontalHeader());

QAction *ascendSortAction = cmenu->addAction("升序");

QAction *descendSortAction = cmenu->addAction("降序");

QAction *filterAction = cmenu->addAction("过滤");

QAction *reshowAction = cmenu->addAction("重载");

connect(ascendSortAction, SIGNAL(triggered(bool)), this, SLOT(sort_ascend()));

connect(descendSortAction, SIGNAL(triggered(bool)), this, SLOT(sort_descend()));

connect(filterAction, SIGNAL(triggered(bool)), this, SLOT(show_filter_dlg()));

connect(reshowAction, SIGNAL(triggered(bool)), this, SLOT(reshow_data()));

show_contextmenu(const QPoint& pos)

if(cmenu)

{

cmenu->exec(QCursor::pos());

}

}

3)使用Qt::ActionsContextMenu。

把部件的所有action即QWidget::actions()作为context menu显示出来。

还是上面的例子,要在表格(QTableView类型)表头显示右键菜单:

QAction *ascendSortAction = new QAction("升序", this);

QAction *descendSortAction = new QAction("降序", this);

QAction *filterAction = new QAction("过滤", this);

QAction *unfilterAction = new QAction("取消过滤", this);

connect(ascendSortAction, SIGNAL(triggered(bool)), this, SLOT(sort_ascend()));

connect(descendSortAction, SIGNAL(triggered(bool)), this, SLOT(sort_descend()));

connect(filterAction, SIGNAL(triggered(bool)), this, SLOT(filter_table()));

connect(unfilterAction, SIGNAL(triggered(bool)), this, SLOT(unfilter_table()));

datatable->horizontalHeader()->addAction(ascendSortAction);

datatable->horizontalHeader()->addAction(descendSortAction);

datatable->horizontalHeader()->addAction(filterAction);

datatable->horizontalHeader()->addAction(unfilterAction);

datatable->horizontalHeader()->setContextMenuPolicy(Qt::ActionsContextMenu);

另外两个就是不显示context menu了:

Qt::NoContextMenu

the widget does not feature a context menu, context menu handling is deferred to the widget's parent.

Qt::PreventContextMenu

the widget does not feature a context menu, and in contrast to NoContextMenu, the handling is not deferred to the widget's parent. This means that all right mouse button events are guaranteed to be delivered to the widget itself through mousePressEvent(), and mouseReleaseEvent().

补充:

使用Qt::ActionsContextMenu比较简洁,但是如果需要根据当前菜单弹出的位置来定义不同菜单,或者像上个例子,在表格(QTableView类型)表头显示右键菜单时,我需要知道是哪一列表头被点击,从而在后来调用sort_ascend()排序函数时能够根据不同列进行不同排序策略,那么Qt::ActionsContextMenu就做不到了。

这种需要捕捉弹出位置的情况只好用Qt::ActionsContextMenu了,customContextMenuRequested ( const QPoint & pos )信号返回点击位置pos(在表头视口坐标系中位置),然后表头即可调用logicalIndexAt(pos)函数得到被点击section对应的index即被点击部分的列号,然后存下来可供后面action激活的排序槽使用。

show_contextmenu(const QPoint& pos)

{

//get related column of headerview

contextmenu_column = datatable->horizontalHeader()->logicalIndexAt(pos);

//show contextmenu

if(cmenu)

{

cmenu->exec(QCursor::pos());

}

}

菜单图标在菜单中加入图标

菜单图标:在菜单中加入图标 疯狂代码 https://www.360docs.net/doc/af3515645.html,/ ?:http:/https://www.360docs.net/doc/af3515645.html,/DeveloperUtil/Article25885.html VB菜单编辑器所提供的默认菜单是不能在菜单项中加入图标的,而许多流行的软件大都采用了漂亮的带有小图标的菜单,如果想利用VB实现这种效果就必须要调用API函数来实现了。例中我们使用了三个与菜单操作有关的函数:GetMenu、SetMenuItemBitmaps、GetSubMenu。 我们先来声明API函数,本例中用到的三个函数声明如下: Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long Private Declare Function SetMenuItemBitmaps Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long GetMenu函数的作用得到一个窗口中的菜单的句柄(这个菜单句柄应理解为处于某个窗体上的所有菜单的入口),其中各个参数的意义如下表所示: 参数 意义 hwnd Long,窗口句柄。对于vb,这应该是一个窗体句柄 返回值 Long,依附于指定窗口的一个菜单的句柄(如果有菜单);否则返回零 GetSubMenu函数用于取得一个弹出式菜单(弹出式菜单是指处于任何一级的菜单,注意不是菜单项)的句柄,它位于菜单中指定的位置,它的各个参数的意义如下: 参数 意义 hMenu Long,菜单的句柄 nPos Long,次级菜单在上级菜单中的位置。第一个位置的编号为0 返回值 Long,位于指定位置的弹出式菜单的句柄(如果有的话);否则返回零 SetMenuItemBitmaps函数用于设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√),它的各个参数的意义如下: 参数 意义 hMenu Long,菜单的句柄

插入菜单栏学习

插入菜单栏学习 1.表选项功能及应用 ①数据透视表和数据透视图 对于选定区域的表格数据进行可筛选性的组合、排列,通过新的表、柱形图直观反应出来。 ②表 对所选区域的表格数据设定可筛选功能的新表,可在其进行更详细的操作而不影响基础表格的数据形态。 2.插图选项功能及应用 ①图片:在表格中导入本地图片格式 ②剪贴画:在剪切画中搜索需要查找的内容并插入到相应的文本中 ③形状:插入可编辑内容的形状和样式 ④smartart图:用做ABC列表分栏、流程渐进、循环结构、层次递进、关系示意、矩阵安排以及棱锥式金字塔图。 3.图表选项功能及应用 柱形图(纵向)/条形图(横向):分为二维柱形图、三维柱形图、圆柱图、圆锥图和棱锥图 柱形图主要用于比较两个或两个以上的价值在不同时间或者在不同条件下的大小,只有一个变量,通常用于较小的数据集分析 折线图:显示在单位变量间隔下数据值的变化趋势 散点图:显示若干数据系列中各数值之间的关系

饼状图:显示在整个数据系统中,每个个体所占的权重 面积图:显示单位时间内变动的增幅 股价图:显示股票价格,运用股价图不仅可以显示图表并且可以显示出数据,使分析者一目了然的掌握 曲面图:立体显示数据值与中心数据值的偏离程度 圆环图:类似饼状图 气泡图:类似散点图 雷达图:显示数据值与中心数据值之间的变动 4.超链接图标功能及应用 超链接用于关联表格、文件、网站的跳转 5.文本图标功能及应用 ①文本框:分为横竖两种型式,可移动式备注、佐助等文本编辑,插入文本框后点击对应的文本框会出现格式菜单栏对其进行外形和样式进行设计(具体为:1.形状外形类:包括框中框、框中分割、框中形状等;2.形状样式:形状填充、形状轮廓、形状效果;) ②艺术字:插入具有字体格式的文本框(点击艺术字文本框出现格式菜单栏后,可以对艺术字进行文本填充、文本轮廓、文本效果、大纲样式、阴影、三维格式、三维旋转、文本框设置) ③对象:重要学习内容,可以在当前表格中插入各种OFFICE办公软件格式文本,创建类似于超链接的图片、文字连接格式,亦或建立表中表,表中文档等相关联的可操作的文本 ④符号插入(具有代码查询的符号、简图、表情等)

MFC 单文档中动态添加菜单项和响应菜单事件

MFC 单文档中动态添加菜单项和响应菜单事件 新建一个单文档程序 在查看菜单项中增加两个子菜单,分别为隐藏工具栏(ID_HIDE),新建菜单(ID_NEWMENU) 在Resource.h中增加一个ID_NEWMENU宏 #define ID_NEWMENU WM_USER+101 操作工具栏和状态栏 使用GetDescendantWindow函数获取工具栏和状态栏的指针为ID_HIDE添加消息映射,编辑代码如下 static bool m_Hide=false; m_Hide=!m_Hide; //获取工具栏指针 CWnd* pWndToolBar=(CWnd*)GetDescendantWindow(AFX_IDW_TOOLBAR); //获取状态栏指针 CWnd* pWndStatusBar=(CWnd*)GetDescendantWindow(AFX_IDW_STATUS_BAR); CMenu* pMenu=GetMenu(); CMenu* pSubMenu=pMenu->GetSubMenu(2); if(m_Hide) { pSubMenu->ModifyMenu(ID_HIDE,MF_BYCOMMAND,ID_HIDE,"显示工具栏"); if(pWndStatusBar!=NULL) pWndStatusBar->SetWindowText("隐藏工具栏"); if(pWndToolBar!=NULL) pWndToolBar->ShowWindow(SW_HIDE); } else { pSubMenu->ModifyMenu(ID_HIDE,MF_BYCOMMAND,ID_HIDE,"隐藏工具栏"); if(pWndStatusBar!=NULL) pWndStatusBar->SetWindowText("显示工具栏"); if(pWndToolBar!=NULL) pWndToolBar->ShowWindow(SW_SHOW); } 动态添加子菜单 为ID_NEWMENU增加消息映射,编辑代码如下 static UINT m_NewMenu=ID_NEWMENU+1; //获取菜单 CMenu* pMenu=GetMenu(); //获取索引为2的菜单项,即第3列菜单 CMenu* pSubMenu=pMenu->GetSubMenu(2); char buffer[1]; itoa(m_NewMenu-ID_NEWMENU,buffer,10); if(m_NewMenu<=ID_NEWMENU+5) { pSubMenu->AppendMenu(MF_SEPARATOR); //分隔线 pSubMenu->AppendMenu(MF_STRING | MF_ENABLED,m_NewMenu++, CString("新的菜单")+buffer); } //如果m_bAutoMenuEnable为true,则会依次检查View、Document、Frame的 //消息映射表是否有这个弹出菜单中每个菜单项的处理函数,澳门新濠天地官网https://www.360docs.net/doc/af3515645.html, 如果没有就会把那一项改为灰的 m_bAutoMenuEnable=false;

在VB中添加菜单

在VB中添加菜单 在Windows应用程序中,我们可以方便地通过菜单进行操作。就像我们常用的办公软件WORD: 程序的功能菜单在VB中可以借助菜单编辑器方便地生成菜单,下面随着我一步一步地操作,为自己的应用程序添加一个菜单。 首先新建一个工程,然后将窗体标题修改为“菜单程序示例”,如图: 当然这不是必须的! 在VB的菜单栏的“工具”菜单中选择“菜单编辑器”或直接点击快捷键CTRL+E打开。打开后的菜单编辑器是这样的: 此时还没有添加任何内容,下面我们为这个应用程序添加菜单内容,假设这个应用程序的菜单结构如下: 文件 ……新建 ……打开 ……保存 ……退出 编辑 ……剪切 ……复制 ……粘贴 帮助 ……关于前面有“……”标记的表示这是子菜单。现在我们就把这个结构用菜单编辑器来实现吧。 在打开的菜单编辑器的标题中输入“文件”,名称是供以后在程序中调用的,所以最好取个好记的与本菜单项相关的有意义的名称,我将它命名为“menu_File”,效果如图: 如果你用过WORD等程序,你会发现很多菜单上提供了一个快捷键,就是在菜单项的后面紧跟一对括号,其中指定一个字母,操作时只要用ALT键加上这个字母就可以打开这个菜单项了,如:文件(F)。这怎么实现呢?很简单,在上面的标题“文件”后输入“(&F)”就行了,试试吧。不要确定保存,我们还没有添加完呢。点击“下一个”按钮,将选择条移动到“文件”的下一行,然后用同样的方法输入“新建”菜单项,如果此时你点击保存,主窗口中将带有刚生成的菜单了,同时你也会发现“新建”菜单项和“文件”菜单项处于同一排,而不是以子菜单的形式生成在“文件”菜单项之内的,那怎么办呢?请仔细看看菜单编辑器中提供的各种功能吧(如图) 我们只要选中准备设置为子菜单的那一项(“新建”菜单项),点击上面的右箭头就行,点一次添加一级,如果点两次则是子子菜单,相应的菜单项前会用“…………”表示。用同样的方法把上面的菜单项添加到菜单编辑器中,效果如图: 在Windows应用程序中,有些菜单项被分隔条隔开,这样的效果怎么实现呢?我们在“文件”菜单中的“退出”菜单项上方添加一分隔条吧,选中“退出”菜单项,然后点击“插

怎么在右键菜单中添加word。excel

把横线中的信息复制的记事本中,然后另存为*.reg格式的文件。 -----------------------------------Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.doc] @="Word.Document.8" "Content Type"="application/msword" [HKEY_CLASSES_ROOT\.doc\OpenWithList] [HKEY_CLASSES_ROOT\.doc\OpenWithList\WordPad.exe] @="" [HKEY_CLASSES_ROOT\.doc\PersistentHandler] @="{98de59a0-d175-11cd-a7bd-00006b827d94}" [HKEY_CLASSES_ROOT\.doc\ShellNew] [HKEY_CLASSES_ROOT\.doc\Word.Document.6] [HKEY_CLASSES_ROOT\.doc\Word.Document.6\ShellNew] "FileName"="winword.doc" [HKEY_CLASSES_ROOT\.doc\Word.Document.8] [HKEY_CLASSES_ROOT\.doc\Word.Document.8\ShellNew] "FileName"="winword8.doc" [HKEY_CLASSES_ROOT\.doc\WordDocument] [HKEY_CLASSES_ROOT\.doc\WordDocument\ShellNew] "FileName"="winword2.doc" [HKEY_CLASSES_ROOT\.doc\WordPad.Document.1] [HKEY_CLASSES_ROOT\.doc\WordPad.Document.1\ShellNew] "NullFile"="" -----------------------------------以下是新建EXCEL文档的注册信息(.xls) -----------------------------------Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.xls] "Content Type"="application/vnd.ms-excel" @="Excel.Sheet.8" [HKEY_CLASSES_ROOT\.xls\Excel.Sheet.5] [HKEY_CLASSES_ROOT\.xls\Excel.Sheet.5\ShellNew] "FileName"="excel.xls" [HKEY_CLASSES_ROOT\.xls\Excel.Sheet.8] @="" [HKEY_CLASSES_ROOT\.xls\Excel.Sheet.8\ShellNew] "FileName"="excel9.xls" [HKEY_CLASSES_ROOT\.xls\ExcelWorksheet] [HKEY_CLASSES_ROOT\.xls\ExcelWorksheet\ShellNew] "FileName"="excel4.xls" [HKEY_CLASSES_ROOT\.xls\PersistentHandler]

第二讲 菜单的添加及其实现

《ArcGIS Engine+C#实例开发教程》第二讲菜单的添加及其实现 时间:2009-04-03 13:23:02 来源:https://www.360docs.net/doc/af3515645.html, 作者:3SDN原创点击量:1016 在上一讲中,我们实现了应用程序基本框架,其中有个小错误,在此先跟大家说明下。在“属性”选项卡中,我们当时添加的是DataGridView 控件,这个控件是用来显示数据表的,而专门用于属性的查询和设置的控件是PropertyGrid 控件。因此请你删除“属性”选项卡中的DataGridView 控件,再把位于“工具箱| 所有Windows 窗体|PropertyGrid ”(如果没有,右击选择“选择项”以添加此控件)控件拖到该选项卡。 在这一讲中,主要讲解菜单的添加和实现。 1、添加菜单 在设计视图中,单击菜单栏,会出现“请在此处键入”的提示,单击提示就可以键入菜单名称,如“文件”,再单击“文件”,即可输入其下拉子菜单,如下所示: Tips : 每创建一个菜单,请在其属性面板中设置Name 属性,而且不要为中文,因此Name 值将是此菜单响应函数的函数名的一部分,带中文的函数名,总是不好吧。 本讲中,我们将添加新建(New )、打开(Open )、添加数据(AddData )、保存(Save )、另存为(SaveAs )、退出(Exit )这些菜单,()内为相应的Name 属性值。 Tips: 你可以在属性面板中的Text 属性中,把菜单名设置为中英文形式,如“打开O pen ”,带下划线的O 表示此项菜单的快捷键是字母O ,设置方法是在相应字母前加上“& ”字符,如“打开&Open ”。但这种快捷键只在打开此下拉菜单时才有效,即当你单击“文件”菜单弹出下拉菜单时,按下字母O 就可以定位到“打开”菜单。 还有一种在程序运行时都有效的全局快捷键,可以在属性面板中的“ShortCutKeys ”中设置。

如何在右键菜单中添加word、excel等功能

如何在右键菜单中添加word、excel等功能 有时候重装系统或者操作不当,会发现鼠标右键新建菜单中没有word、excel等功能。如何那么在右键菜单中添加word、excel等功能?双语不用教启智园双语不用教动画片全集免费下载今天来为您分享如何在右键新建菜单中添加word、excel等功能。 (双语不用教动画片全集在线观看https://www.360docs.net/doc/af3515645.html,双语不用教动画片全集免费下载)你可以通过修改注册表来定制鼠标右键快捷菜单中的“新建”菜单所包含的项目。需要注意的是,在修改注册表以前请先将注册表备份,以免出现问题时无法恢复。 一、增加菜单项目 1.首先,决定您要增加到菜单中的文件类型,以及启动这类文件的应用程序。如果是某些在启动时会自动打开的新文件或让您可以立即使用的应用程序,如记事本、写字板或画图等,就不需要特别的准备工作。但如果是在启动时不会自动打开文件的应用程序,您必须依需求建立一个通用的文件范本,并将它保存在Windows中的ShellNew文件夹中。此文件夹在某些系统中是隐藏的,所以您可能必须先选择“查看”*“文件夹选项”,在“查看”选项卡中选取“显示所有文件”选项,单击“确定”即可。 2.选择“开始”*“运行”,输入“regedit”,打开注册表编辑器。单击“HKEY_CLASSES_ROOT”旁边的“+”号,可以看到左边窗口中有一排文件夹,都是以Windows中应用程序建立的文件的后缀名命名的(如.doc、.xls和.html等)。找出您要增加到“新建”菜单中的文件类型的后缀名,单击鼠标右键,选择“新建”*“主键”(在注册表中,每个文件夹都是一个主键),将新的主键取名为“ShellNew”。选取新建的主键,在右边视窗空白处单击鼠标右键,选择“新增”*“字符串值”。如果您使用的文件类型,其程序预设为在启动时打开空白文件,就将新字符串名称设定为“NullFile”; 如果您使用的文件类型,其程序在启动时不会自动打开空白文件的话,请将新字符串名称设定为“FileName”。双击“FileName”字符串图标(或选中后按Enter键),在“编辑字符串”对话框的“键值”文本框中输入文件类型范本的完整路径及名称。然后按确定,退出注册表编辑器。您可以立刻在“新建”菜单的文件列表中看到所做的修改。 以下是一个范例,要在桌面上或在文件夹中按右键建立新的Outlook Express 邮件。启动Outlook Express,选择“文件”*“新建”*“邮件”,再加入要放在邮件中的文字,然后选取“文件”*“另存为”,将邮件以“blank”的名称保存在\\Windows\\ShellNew文件夹中,Outlook Express 会自动为邮件加上.eml扩展名。接下来,依照前面的说明启动注册表编辑器,在HKEY_CLASSES_ROOT中找出.eml的文件夹,建立“ShellNew”主键,在此主键中新建一个字符串值,并将其名称设定为“FileName”。双击“FileName”字符串,在“编辑字符串”对话框的“键值”文本框中输入“C:\\Windows\\ShellNew\\blank.eml”(您可以自行设定路径和名称)。按下“确定”按钮,退出注册表编辑器即可。此时,您可以在桌面上按鼠标右键,选择“新建”*“Outlook Express Mail Message”(如附图所示)。桌面上就会出现一个新邮件图标,输入新邮件文件的名称并按下Enter键。双击新邮件的图标,输入邮件内容,完成之后,按下“发送”按钮即可。这一方法可用来建立电子邮件,并将邮件副本保存在Outlook Express(或其他类似的邮件程序)之外。 除了在右键菜单中添加各种功能外,有时我们会觉得右键菜单中部分功能是不需要的,这样我们就需要删除菜单项目。雅诗兰黛系列产品热销排行榜雅诗兰黛适合什么年龄为您讲讲删除菜单项目的种种方法。 (雅诗兰黛眼霜https://www.360docs.net/doc/af3515645.html,雅诗兰黛怎么样) 二、删除菜单项目 有许多种方法可以删除“新建”菜单中的文件类型列表,以下是3种方法。

在我的电脑右键菜单中添加项目

在我的电脑右键菜单中添加项目 默认的“我的电脑”右键菜单上只有“资源管理器”、“管理”、“搜索”,能不能让这个菜单功能更丰富一些呢?比如加入“服务”、“组策略”、“设备管理器”等等...... 下面是在桌面“我的电脑”右键菜单中添加“组策略”的方法。 1、打开注册表编辑器,依次展开 “HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8- 08002B30309D}\shell”,在“shell”分支下新建个项,名为“gpedit”。这个是右键菜单中项目显示名称,必须是英文,不能是中文。由于我们在右健菜单显示“组策略”中文名称,所以只能在下面“默认”值中输入中文名称。 2、在右窗双击“默认”,在弹出对话框,输入右键菜单中项目显示名称“组策略”。 3、“gpedit”分支下新建个dword,名为“SuppressionPolicy” 数据数值为“4000003c” 十六进制。 4、在gpedit”新建项,名为“command”。 5、点击“command”在右窗中找“默认”双击,在弹出对话框,输入 “%windir%\system32\mmc.exe /s %windir%\system32\gpedit.msc”(这个为执行命令,你也可以输入其它程序的路径。) 6、回到桌面刷新下,现在右击桌面“我的电脑”,是不是多了个“组策略”? 不仅可在桌面“我的电脑”右健菜单中添加,也可以桌面的其它图标右键添加项目,如“回收站”中添加“组策略” 打开注册表编辑器,定位[HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\shell],接下来操作步骤跟上相同。 另外一些图标标识: 我的电脑{20D04FE0-3AEA-1069-A2D8-08002B30309D} 我的文档{450D8FBA-AD25-11D0-98A8-0800361B1103} 拨号网络{992CFFA0-F557-101A-88EC-00DD010CCC48} 控制面板{21EC2020-3AEA-1069-A2DD-08002B30309D} 计划任务{D6277990-4C6A-11CF-8D87-00AA0060F5BF} 打印机{2227A280-3AEA-1069-A2DE-08002B30309D} 记事本{1FBA04EE-3024-11D2-8F1F-0000F87ABD16} 网络邻居{208D2C60-3AEA-1069-A2D7-08002B30309D} 回收站{645FF040-5081-101B-9F08-00AA002F954E} 公文包{85BBD920-42A0-1069-A2E4-08002B30309D} 字体{BD84B380-8CA2-1069-AB1D-08000948F534} Web 文件夹{BDEADF00-C265-11d0-BCED-00A0C90AB50F}

AutoCAD添加菜单

(如何在Autocad2005中添加菜单)中等问题 1# luckstar110发表于2007-10-20 10:56 AM | 只看该作者 | 倒序看 帖 | 打印 在CAD2005里有;怎么用Object2005,C++.net给它加菜单呀; 包括有子菜单; 中级会员 威望 3 金钱 100 魅力 精华

0 积分 330 帖子 56 中级会员 威望 1 金钱 100 魅力 0 精华 积分 310 帖子 16

初级会员 威望 0 金钱 40 魅力 0 精华 0 积分 120 帖子 4 资深会员 威望 0 金钱 358 魅力 100 5# gmy2009发表于 2009-4-4 04:10 PM | 只看该作者学习!

资深会员 威望 1 金钱 516 魅力 40 精华 2 积分 1678 帖子 121 6# pglyxq发表于 2009-4-5 05:16 PM | 只看该作者 本帖最后由 pglyxq 于 2009-4-5 05:19 PM 编辑 我不太赞成用ARX帮助文档中说的那种方法在CAD中添加菜单,看看国内一些专业的二次开发软件也没有采用这种办法,它们都是在MNU菜单文件中写好菜单和工具条,然后把它们作为一个局部菜单插入到CAD菜单栏中,同时生成一个新的菜单组(这样用户在操作的过程中便于管理CAD的菜单组和二次开发的菜单组)。最后用下面的程序加载相应的菜单文件即可: //在ARX中使用COM接口需包含以下头文件并引入acad.tlb类型库 //在不同的计算机上acad.tlb库路径有可能不一样,需作相应的修改 #include "acad15.h" #include "comdef.h" #import "c:\Program Files\AutoCAD 2002\acad.tlb" no_implementation raw_interfaces_only named_guids //以上两行为一行 void addMenuGroup_MenuBar() { //检测是否存在"ACAD"菜单组 bool isFind = false; HRESULT hr; IAcadApplication *pAcadApp = NULL; LPDISPATCH pDisp; pDisp =

AutoCAD添加自定义的自定义的菜单栏或工具条快捷键

在AutoCAD中添加自定义的菜单栏或工具条快捷键(三) 作者:李小林(四川省雅安市名山区) 有时我们自己编辑了一些AutoCAD的vlx、lsp加载程序,如果在命令栏直接输入自定义的程序命令也可执行该命令,但有时忘记了这些命令的调用命令那就要打开程序记下命令名啦,这样也不方便使用,人有时候就是记性不好,所我就这个问题作如下解决,并以我自编的几个vlx和lsp程序加载为例。 在《AutoCAD提取多段线顶点坐标的LISP程序源代码(一)》中的几个lsp和vlx程序加载在菜单栏中,随时调用的方法。 一、将程序源代码编辑成vlx或lsp程序,放在AutoCAD 2012安装目录下的support文件夹中。 自定义程序(注意:ZBBZ.VLX的程序命名为”ZBBZ”;多段线顶点坐标转换.lsp的命名为”ZBTQ”;点坐标转换至EXCEL表或文本文件.lsp中有三个程序:①点坐标转换至EXCEL表程序命名为”ZBZHE”,②点坐标转换为dat格式文本程序命名为”ZBZHD”,③点坐标转换为txt格式文本程序命名为”ZBZHT”)。 二、开启AutoCAD 2012程序

三、打开菜单栏—工具—自定义—界面,如下图。 四、点击“创建新命令”按钮。

五、按钮图像框中点选与程序命名相符的按钮或不选取任何按钮。 六、选择一个按钮再编辑—保存,新建的按钮就存入了按钮图像中。

七、在特性框的【名称】栏中输入要加载的程序名称(名称自编);在【宏】栏中已有^C^C后面输入各自加载程序的命令名称”ZBTQ”、”ZBZHD”、”ZBZHT”、”ZBZHE”(这个名称必需与调用程序名称一致)点击【应用】后命令列表中就已添加了该命令;在【说明】中简明说明程序用途。 八、若想将上面的程序加载【菜单】或【工具栏】栏中就选中菜单后点鼠标右键【新建菜单】,本例就在菜单栏中加载。

怎么添加和删除右键新建菜单里面的东西

----当您在Windows桌面单击鼠标右键,选择“新建”来建立快捷方式或文件夹时,除了快捷方式与文件夹这2个选项之外,还有一个很长的文件菜单,包含了电脑中安装的一些应用软件,您可以很容易地建立文件列表中所包含类型的新文件。我们在这里向您介绍如何通过修改注册表来定制鼠标右键快捷菜单中的“新建”菜单所包含的项目。需要注意的是,在修改注册表以前请先将注册表备份,以免出现问题时无法恢复。 一、增加菜单项目 ----1.首先,决定您要增加到菜单中的文件类型,以及启动这类文件的应用程序。如果是某些在启动时会自动打开的新文件或让您可以立即使用的应用程序,如记事本、写字板或画图等,就不需要特别的准备工作。但如果是在启动时不会自动打开文件的应用程序,您必须依需求建立一个通用的文件范本,并将它保存在Windows中的ShellNew文件夹中。此文件夹在某些系统中是隐藏的,所以您可能必须先选择“查看”*“文件夹选项”,在“查看”选项卡中选取“显示所有文件”选项,单击“确定”即可。 ----2.选择“开始”*“运行”,输入“regedit”,打开注册表编辑器。单击“HKEY_CLASSES_ROOT”旁边的“+”号,可以看到左边窗口中有一排文件夹,都是以Windows中应用程序建立的文件的后缀名命名的(如.doc、.xls和.html等)。找出您要增加到“新建”菜单中的文件类型的后缀名,单击鼠标右键,选择“新建”*“主键”(在注册表中,每个文件夹都是一个主键),将新的主键取名为“ShellNew”。选取新建的主键,在右边视窗空白处单击鼠标右键,选择“新增”*“字符串值”。如果您使用的文件类型,其程序预设为在启动时打开空白文件,就将新字符串名称设定为“NullFile”; 如果您使用的文件类型,其程序在启动时不会自动打开空白文件的话,请将新字符串名称设定为“FileName”。双击“FileName”字符串图标(或选中后按Enter键),在“编辑字符串”对话框的“键值”文本框中输入文件类型范本的完整路径及名称。然后按确定,退出注册表编辑器。您可以立刻在“新建”菜单的文件列表中看到所做的修改。 ----以下是一个范例,要在桌面上或在文件夹中按右键建立新的Outlook Express 邮件。启动Outlook Express,选择“文件”*“新建”*“邮件”,再加入要放在邮件中的文字,然后选取“文件”*“另存为”,将邮件以“blank”的名称保存在\\Windows\\ShellNew文件夹中,Outlook Express 会自动为邮件加上.eml扩展名。接下来,依照前面的说明启动注册表编辑器,在HKEY_CLASSES_ROOT中找出.eml的文件夹,建立“ShellNew”主键,在此主键中新建一个字符串值,并将其名称设定为“FileName”。双击“FileName”字符串,在“编辑字符串”对话框的“键值”文本框中输入“C:\\Windows\\ShellNew\\blank.eml”(您可以自行设定路径和名称)。按下“确定”按钮,退出注册表编辑器即可。此时,您可以在桌面上按鼠标右键,选择“新建”*“Outlook Express Mail Message”(如附图所示)。桌面上就会出现一个新邮件图标,输入新邮件文件的名称并按下Enter键。双击新邮件的图标,输入邮件内容,完成之后,按下“发送”按钮即可。这一方法可用来建立电子邮件,并将邮件副本保存在Outlook Express(或其他类似的邮件程序)之外。 二、删除菜单项目 ----有许多种方法可以删除“新建”菜单中的文件类型列表,以下是3种方法。 ----1.删除您不使用的程序的文件类型,最好是卸载整个应用程序。可以利用“控制面板”中的“添加/删除程序”功能。此操作同时会将“新建”菜单的文件列表中的相应项目删除。----2.如果您自行卸载软件后,该文件类型的菜单选项仍然存在,请进入资源管理器选择“查

相关文档
最新文档