如何在工程菜單按鈕中添加商城
⑴ 如何在菜單中添加「搜索」按鈕
」可以直接調用xp的關機選項嗎?「這個已經解決,但是還沒有找到「搜索」怎樣添加
⑵ MFC中如何在菜單欄中添加按鈕
在窗口上放置一個combox控制項,然後綁定ccomboxex類變數調用insert函數插入文本就可以了
⑶ 如何在工具欄上面添加一個自己想要的按鈕
實現 單擊工具欄按鈕右側箭現拉菜單應該設置屬性編寫程
這樣圖標肯定是能看見內的,只是點不動,你試試這樣容:
重新再toobar中設計按鈕,完了再空白區雙擊左鍵,給它一個ID,如IDM_Test,在菜單欄田間一個菜單項,ID也用IDM_Test,CTRL+w添加消息處理command,增加函數,編輯代碼,寫一句MessageBox("test");這樣點按鈕後就會彈出TESt提示,你試試啥
⑷ 如何在bos單據中添加自定義的工具欄按鈕及相應相關操作
首先在業務單據上單擊滑鼠右鍵,在彈出的菜單里選擇「操作管理」。
備註:1、用SetPicture2可以突破僅能使用ico格式的限制,如本例,我使用的就是bmp格式的資源。
2、因為VB6的ico、BMP格式不能使用真彩色,但可以將真彩素材放到自定義資源中,然後再釋放使用,這就進一步突破了256色的限制。
3、vbWhite參數是指MaskColor,可以實現透明處理。比如我的bmp文件背景色都是白色,因此設置為vbWhite,這樣就實現了上圖所示的透明效果,否則會顯示出白色底色
⑸ 如何添加右鍵新建菜單里的內容
----當您在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.如果您自行卸載軟體後,該文件類型的菜單選項仍然存在,請進入資源管理器選擇「查看」*「文件夾選項」,單擊「文件類型」選項卡,選取您不再使用的文件類型,單擊「刪除」按鈕,確認刪除。如此可將文件類型從關聯文件菜單、注冊表以及「新建」菜單中刪除。 ----3.如果您需要保留與文件類型相關的應用程序,只想刪除「新建」菜單中的圖標,請按前面說明打開注冊表編輯器。單擊「HKEY_CLASSES_ROOT」前的「+」號,找出含有您要刪除的文件類型的擴展名的文件夾,單擊旁邊的「+」號。在左邊的樹狀圖中,選取正確擴展名下的「ShellNew」文件夾。此時,您可以製作一個此注冊表分支的備份,以便您恢復原有的設置(選擇「注冊表」*「導出注冊表文件」,指定文件名稱及保存的位置,「導出范圍」項目中必須選中「選擇的分支」,然後單擊「保存」)。在右邊窗口中選取「NullFile」或「FileName」,按下Delete鍵,然後按Enter鍵。如果您希望將此項目恢復到功能表中,請找到您導出的.reg文件,雙擊將其恢復到注冊表中。
⑹ 怎樣在一個軟體的菜單欄中插入新項
http://sifang2004.cnblogs.com/sifang2004/admin/archive/2006/06/26/436128.html
Visual Studio自動化和擴展
Visual Studio最大的特性之一就是其擴展性,對此我們中很多人應該都有所了解。Visual Studio 提供了三種不同級別的擴展:宏、外接程序和向導(就是我們本文中到的插件程序)以及 Visual Studio行業合作夥伴 (VSIP) 計劃。
若要創建自動化應用程序(如外接程序),則必須執行一些步驟獲取對自動化成員的訪問權。首先必須引用必需的自動化程序集,然後必須獲取對頂級對象 DTE2 的引用。
在 Visual Studio .NET 2002 和 Visual Studio .NET 2003 中,所有的核心自動化項均位於名為 EnvDTE 的程序集中,並且其最高分層對象為 DTE 對象。該對象是所有核心自動化對象、集合及其成員的父對象。DTE2 是從 DTE 派生的。
對於 Visual Studio 2005,只對這些核心自動化對象、集合及成員的一部分進行添加和更新。所有新的更新功能都位於名為 EnvDTE80 的程序集中(EnvDTE 8.0 版),而不會更新現有的程序集和危及現有外接程序和自動化項目的向後兼容性。EnvDTE80 中大多數更新的函數保留與早期版本相同的名稱,但是在函數名後加上數字 2。例如,在新版本中,TaskItems 集合名為 TaskItems2,Solution 對象名為 Solution2。由於新成員比早期版本的功能更強健,並且包含最新功能,因此推薦在編寫新的自動化應用程序時使用新對象和新集合。
雖然新項位於 EnvDTE80 中,但是大多數核心自動化功能仍然位於 EnvDTE 中。因此,在編寫新的自動化應用程序(如外接程序)時,一定要引用 EnvDTE 和 EnvDTE80 兩者。另外,如果使用 EnvDTE 程序集中的成員,也必須設置對 DTE 對象和 DTE2 對象的引用。這使您可以訪問所有的項。
外接程序是一些可以為您節省時間和精力的應用程序,可附加到 Visual Studio 集成開發環境 (IDE) 中使用。外接程序是 COM 對象,它們實現 IDTExtensibility2 介面,並通過 EnvDTE 和 EnvDTE80 程序集中包含的核心自動化對象模型與 IDE 通信。工具欄模型包含在 Microsoft.VisualStudio.CommandBars 中。
使用到的主要對象就是DTE對象,利用它我們能編程式控制制在Visual Studio中的任何東西,從工具欄,裝卸工具窗口,甚至編輯文件和初始化編譯。
創建一個插件工程
Visual Studio 2005插件能使用任何編程語言寫,當你在運行Add-In向導(也就是插件工程向導)時,你可以選擇使用何種語言編寫,向導還會向你顯示其它的選項,具體每個選項的含義與作用,請參考MSDN,我只列舉如下(外接程序就是本文所說的插件):
1. 創建一個新的 Visual Studio 外接程序項目。這會啟動「外接程序向導」。
該項目類型位於「其他項目類型」下的「擴展性」文件夾中。
2. 在「選擇編程語言」頁選擇一種語言。
這使您可以選擇將用來編寫外接程序的編程語言。
3. 在「選擇應用程序宿主」頁選擇一個或多個應用程序,如 Visual Studio。
這使您可以選擇需要的應用程序以便創建外接程序後可在其中運行該外接程序,如 Visual Studio 或 Visual Studio「宏 IDE」。
4. 在「輸入名稱和說明」頁中輸入外接程序的名稱和說明。
創建外接程序後,此名稱和說明顯示在「外接程序管理器」對話框的「可用外接程序」列表中,它告訴用戶外接程序的用途和工作方式等。
5. 在「選擇外接程序選項」頁可以指定:
² 是否希望外接程序顯示在「工具」菜單中。
² 希望啟動外接程序的時間。
² 外接程序是否不使用模型用戶界面 (UI),以便可以和命令行生成一起安全地使用。
此頁使您可以指定外接程序的某些行為選項。
6. 在「選擇『幫助』中的『關於』信息」頁指定是否要將外接程序的信息顯示在 Visual Studio「幫助」中的「關於」窗口中,如果是這樣,就會顯示所需信息。
可以添加到 Visual Studio「幫助」中的「關於」窗口的信息包括版本號、支持詳細信息和授權數據等。
完成步驟 1 - 6 後,選定的選項會顯示在「摘要」頁中。
7. 選擇「完成」創建外接程序。
現在,您已經擁有了一個功能齊全的基本外接程序。若要使外接程序能夠執行一些有用的操作,則必須添加相應代碼。
根據「Add-In Wizard」創建一個外接程序,它具有全面的功能,但是只有基本框架,創建完該程序後可立即運行它。向導會自動生成一個Connect.cs文件,這個文件就是任何Visual Studio插件的起動點,它實現了一些關鍵介面,例如IDTExtensibility2, IDTCommandTarget,在幾個關鍵方法中提供一些啟動代碼,最重要的一個方法就是OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)。當啟動一個插件時,第一個調用的方法就是它,你可以在其中增加一些初始化代碼,以及一些技術性的處理代碼,只要這些是工作在Visual Studio自動模型所公開的范圍之內。通常,該方法被插件向導生成的代碼填充,它實現你當時所做出的選擇(例如,增加一個工具菜單項)。
在Onconnection方法中許多代碼都有很好注釋說明,我們就不詳細解釋了,首先我們要注意的這三行代碼:
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
if (connectMode == ext_ConnectMode.ext_cm_AfterStartup || connectMode == ext_ConnectMode.ext_cm_Startup)
第一行就是緩存一個DTE對象,這是在Visual Studio啟動插件時由它提供的,第二行就是緩存插件自己的一個實例,在你的編寫的插件代碼中你將會經常調用它,第三行是一個if語句,當插件啟動後,涉及到的條件的處理,Visual Studio通常會兩次啟動插件,一次就是設置自己的UI,如菜單項,菜單欄按鈕等等;另外,當插件真正運行後,插件被再次啟動,這可以發生在兩種不同情況下(第一是當VS啟動後自動運行,或者是在VS啟動後通過其它進程來運行)。If語句中兩個條件含義你可以參照下表:
成員名稱
說明
ext_cm_AfterStartup
外接程序是在 Visual Studio 啟動後載入的。
ext_cm_CommandLine
外接程序是從命令行載入的。
ext_cm_External
外接程序是由外部客戶端載入的。(Visual Studio 不再使用此設置。)
ext_cm_Solution
外接程序是在解決方案中載入的。
ext_cm_Startup
外接程序是在 Visual Studio 啟動時載入的。
ext_cm_UISetup
外接程序是為用戶界面設置而載入的。
枚舉ext_ConnectMode的成員
OnConnection方法中的其它代碼都有注釋,根據你當初在向導中做出的選擇,代碼會有所不同,對於該Line Counter插件來說,我們去掉了所有的自動生成的代碼,完全用自己寫的代碼代替了,如果你希望跟著本文聽我解釋如果創建一個工具欄插件,那麼按如下設置創建一個新的工程:
工程名稱:LineCounterAddin
語言:c#
插件名稱:Line Counter
插件描述:Line Counter 2005 - Source Code Line Counter
其它選項:默認
工程創建後,添加如下引用:
System.Drawing
System.Windows.Forms
最後,添加一個用戶控制項LineCounterBrowser,該用戶控制項是本插件的主要的交換介面,它就像普通的Widows Form那樣工作,當然這不是本文討論的重點,你可以下載源碼,從源碼中查看該用戶控制項的詳細細節,現在,我們向新的用戶控制項中加入下面的代碼:
private DTE2 m_dte;
public DTE2 DTE
{
set
{
m_dte = value;
}
}
暫時在用戶控制項代碼中我們不需要任何其它東西,這個屬性以及相應的變數為我們提供了一種從Connect類向我們的UI類傳遞DTE對象引用的方法。我們在Connect類的OnConnection方法中設定該屬性,OnConnection方法中的全部代碼就如下面的,已經注釋的非常清楚,在這我就不做深入解釋了。
public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
// Cache the DTE and add-in instance objects
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
// Only execute the startup code if the connection mode is a startup mode
if (connectMode == ext_ConnectMode.ext_cm_AfterStartup || connectMode == ext_ConnectMode.ext_cm_Startup)
{
try
{
// Declare variables
string ctrlProgID, guidStr;
EnvDTE80.Windows2 toolWins;
object objTemp = null;
// The Control ProgID for the user control
ctrlProgID = "LineCounterAddin.LineCounterBrowser";
// This guid must be unique for each different tool window,
// but you may use the same guid for the same tool window.
// This guid can be used for indexing the windows collection,
// for example: applicationObject.Windows.Item(guidstr)
guidStr = "{2C73C576-6153-4a2d-82FE-9D54F4B6AD09}";
// Get the executing assembly...
System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
// Get Visual Studio's global collection of tool windows...
toolWins = (Windows2)_applicationObject.Windows;
// Create a new tool window, embedding the LineCounterBrowser control inside it...
m_toolWin = toolWins.CreateToolWindow2(_addInInstance, asm.Location, ctrlProgID, "Line Counter", guidStr, ref objTemp);
// Pass the DTE object to the user control...
LineCounterBrowser browser = (LineCounterBrowser)objTemp;
browser.DTE = _applicationObject;
// and set the tool windows default size...
m_toolWin.Visible = true; // MUST make tool window visible before using any methods or properties,
// otherwise exceptions will occurr.
//toolWin.Height = 400;
//toolWin.Width = 600;
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
Debug.WriteLine(ex.StackTrace);
}
}
// Create the menu item and toolbar for starting the line counter
if (connectMode == ext_ConnectMode.ext_cm_UISetup)
{
try
{
// Get the command bars collection, and find the MenuBar command bar
CommandBars cmdBars = ((Microsoft.VisualStudio.CommandBars.CommandBars)_applicationObject.CommandBars);
CommandBar menuBar = cmdBars["MenuBar"];
// Add command to 'Tools' menu
CommandBarPopup toolsPopup = (CommandBarPopup)menuBar.Controls["Tools"];
AddPopupCommand(toolsPopup, "LineCounterAddin", "Line Counter 2005", "Display the Line Counter 2005 window.", 1);
// Add new command bar with button
CommandBar buttonBar = AddCommandBar("LineCounterAddinToolbar", MsoBarPosition.msoBarFloating);
AddToolbarCommand(buttonBar, "LineCounterAddinButton", "Line Counter 2005", "Display the Line Counter 2005 window.", 1);
}
catch (Exception ex)
{
string error = ex.Message;
}
}
}
在Visual Studio的執行期間的不同點,OnConnection方法會運行幾次,我們關注的是方法被調用的可能原因中的兩個,其一是UI Setpup,另外就是Startup,當因為UI Setpup OnConnection方法被調用時,為了這個插件,我們想用一個菜單項以及菜單欄按鈕更新Visual Studio的用戶介面,我們是在OnConnection方法中的第二個if語句中完成的。當OnConnection方法因為Startup(有兩種不同的方法-當VS啟動時,VS啟動後)調用時我們顯示我們的插件。
當執行UI Setup時,我們已經創建了幾個private輔助方法來簡化處理,下面,你能發現不少方法能幫助你在Visual Studio中建立新的CommandBar,還可以向這些CommandBar中添加命令。這些方法還包含向菜單中添加菜單項,這些方法也都注釋得非常清楚了。關於這些方法,要注意的一件事情就是他們認為你的插件項目中有一個包含你所有你希望為你命令使用的圖片(包括菜單項以及你工具條上的按鈕。等下我就解釋如何添加自定義的圖標。
/// <summary>
/// Add a command bar to the VS2005 interface.
/// </summary>
/// <param name="name">The name of the command bar</param>
/// <param name="position">Initial command bar positioning</param>
/// <returns></returns>
private CommandBar AddCommandBar(string name, MsoBarPosition position)
{
// Get the command bars collection
CommandBars cmdBars = ((Microsoft.VisualStudio.CommandBars.CommandBars)_applicationObject.CommandBars);
CommandBar bar = null;
try
{
try
{
// Create the new CommandBar
bar = cmdBars.Add(name, position, false, false);
}
catch (ArgumentException)
{
// Try to find an existing CommandBar
bar = cmdBars[name];
}
}
catch
{
}
return bar;
}
/// <summary>
/// Add a menu to the VS2005 interface.
/// </summary>
/// <param name="name">The name of the menu</param>
/// <returns></returns>
private CommandBar AddCommandMenu(string name)
{
// Get the command bars collection
CommandBars cmdBars = ((Microsoft.VisualStudio.CommandBars.CommandBars)_applicationObject.CommandBars);
CommandBar menu = null;
try
{
try
{
// Create the new CommandBar
menu = cmdBars.Add(name, MsoBarPosition.msoBarPopup, false, false);
}
catch (ArgumentException)
{
// Try to find an existing CommandBar
menu = cmdBars[name];
}
}
catch
{
}
return menu;
}
/// <summary>
/// Add a command to a popup menu in VS2005.
/// </summary>
/// <param name="popup">The popup menu to add the command to.</param>
/// <param name="name">The name of the new command.</param>
/// <param name="label">The text label of the command.</param>
/// <param name="ttip">The tooltip for the command.</param>
/// <param name="iconIdx">The icon index, which should match the resource ID in the add-ins resource assembly.</param>
private void AddPopupCommand(CommandBarPopup popup, string name, string label, string ttip, int iconIdx)
{
// Do not try to add commands to a null menu
if (popup == null)
return;
// Get commands collection
Commands2 commands = (Commands2)_applicationObject.Commands;
object[] contextGUIDS = new object[] { };
try
{
// Add command
Command command = commands.AddNamedCommand2(_addInInstance, name, label, ttip, false, iconIdx, ref contextGUIDS, (int)vsCommandStatus.vsCommandStatusSupported + (int)vsCommandStatus.vsCommandStatusEnabled, (int)vsCommandStyle.vsCommandStylePictAndText, vsCommandControlType.vsCommandControlTypeButton);
if ((command != null) && (popup != null))
{
command.AddControl(popup.CommandBar, 1);
}
}
catch (ArgumentException)
{
// Command already exists, so ignore
}
}
/// <summary>
/// Add a command to a toolbar in VS2005.
/// </summary>
/// <param name="bar">The bar to add the command to.</param>
/// <param name="name">The name of the new command.</param>
/// <param name="label">The text label of the command.</param>
/// <param name="ttip">The tooltip for the command.</param>
/// <param name="iconIdx">The icon index, which should match the resource ID in the add-ins resource assembly.</param>
private void AddToolbarCommand(CommandBar bar, string name, string label, string ttip, int iconIdx)
{
// Do not try to add commands to a null bar
if (bar == null)
return;
// Get commands collection
Commands2 commands = (Commands2)_applicationObject.Commands;
object[] contextGUIDS = new object[] { };
try
{
// Add command
Command command = commands.AddNamedCommand2(_addInInstance, name, label, ttip, false, iconIdx, ref contextGUIDS, (int)vsCommandStatus.vsCommandStatusSupported + (int)vsCommandStatus.vsCommandStatusEnabled, (int)vsCommandStyle.vsCommandStylePict, vsCommandControlType.vsCommandControlTypeButton);
if (command != null && bar != null)
{
command.AddControl(bar, 1);
}
}
catch (ArgumentException)
{
// Command already exists, so ignore
}
}
現在我們有了必要的代碼,讓插件正確地集成到Visual Studio用戶介面中去的代碼,並當得到請求時顯示插件,我們需要增加命令處理,在插件中處理命令是一件相當簡單的事情,這個 IDTCommandTarget介面,我們的Connect 類實現了它,提供了一些必要的方法從Visual Studio中正確地處理命令。你將需要根據下面的代碼更新QueryStatus和Exec 方法,下面的代碼的含義是,當它的菜單項或者工具條按鈕被點擊後顯示出Line Counter插件。
public void QueryStatus(string commandName, vsCommandStatusTextWanted neededText, ref vsCommandStatus status, ref object commandText)
{
if(neededText == vsCommandStatusTextWanted.vsCommandStatusTextWantedNone)
{
// Respond only if the command name is for our menu item or toolbar button
if (commandName == "LineCounterAddin.Connect.LineCounterAddin" || commandName == "LineCounterAddin.Connect.LineCounterAddinButton")
{
// Disable the button if the Line Counter window is already visible
if (m_toolWin.Visible)
{
// Set status to supported, but not enabled
status = (vsCommandStatus)vsCommandStatus.vsCommandStatusSupported;
}
else
{
// Set status to supported and eneabled
status = (vsCommandStatus)vsCommandStatus.vsCommandStatusSupported | vsCommandStatus.vsCommandStatusEnabled;
}
return;
}
}
}
public void Exec(string commandName, vsCommandExecOption executeOption, ref object varIn, ref object varOut, ref bool handled)
{
handled = false;
if(executeOption == vsCommandExecOption.vsCommandExecOptionDoDefault)
{
// Respond only if the command name is for our menu item or toolbar button
if (commandName == "LineCounterAddin.Connect.LineCounterAddin" || commandName == "LineCounterAddin.Connect.LineCounterAddinButton")
{
// Only display the add-in if it is not already visible
if (m_toolWin != null && m_toolWin.Visible == false)
{
m_toolWin.Visible = true;
}
handled = true;
return;
}
}
}
隨著OnConnection方法的完成,你就已經建立了一個漂浮工具窗口的插件,完整的用戶控制項能讓你計算你的解決方案中總共的代碼行數,各個工程的代碼行數,以及各個文件的代碼行數。
⑺ 怎樣在右鍵菜單中添加其它的項目
假設要在滑鼠右鍵菜單中添加「千千靜聽」,方法如下:
打開「我的電腦」→「工具」→「文件夾選項」(控制面板裡面也有)
→點擊「文件類型」標簽
→在「已注冊的文件類型」裡面找,找到「MP3」
→點擊「高級」 按鈕
→點擊「新建」按鈕→在「操作」框裡面輸入「千千靜聽」(也可以輸入其他內容);
點「瀏覽」按鈕→切換到程序組目錄下,比如C:\Program Files\TTPlayer,選擇 TTPlayer.exe,點擊「打開」。
有些右鍵菜單不能用以上方法添加,比如HKEY_CURRENT_USER\Software\Microsoft\Windows \CurrentVersion\Explorer\Discardable\PostSetup\ShellNew 對應的「新建」菜單項,以上方法就不適用,需要手動添加。
但是,這里的菜單項的數值是二進制的數據,編寫起來很麻煩。
不過,有其他工具軟體可以幫助建立右鍵菜單,比如,優化大師等軟體可以協助建立「Microsoft Excel 工作表」等菜單。
當然,重新安裝一遍相應的程序如Office 2003等也可以恢復「Microsoft Excel 工作表」等滑鼠右鍵菜單。
⑻ 用java做界面,如何在菜單,按鈕和背景中嵌入界面啊,可以給代碼例子啊,[email protected]
是背景圖嗎?
⑼ 如何在vc++MFC工程文件中添加按鈕和菜單
這個程序應該用了四個單選按鈕,按確定時判斷哪個按鈕被選中就彈出相應的菜單。好像用不著setcheck,只用對四個按鈕控制項分別getcheck,得到哪個按鈕被選中就行了。
⑽ 怎樣在右鍵菜單中添加新建項目
定製滑鼠右鍵「新建」菜單選項
----當您在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(或其他類似的郵件程序)之外。