精华内容
下载资源
问答
  • 在Windows操作系统中安装WinRAR后,右击一个文件弹出的菜单中会出现“添加到 XXX.RAR”等菜单项。它是怎么做到呢。下面听我详细讲来。 修改右键菜单需要动注册表了。一般地说,只要是在windows系统中已注册过...

    在Windows操作系统中安装WinRAR后,右击一个文件弹出的菜单中会出现“添加到 XXX.RAR”等菜单项。它是怎么做到的呢。下面听我详细讲来。

     

     

    修改右键菜单需要动注册表了。一般地说,只要是在windows系统中已注册过的扩展名,在HKEY_CLASSES_ROOT下均有“·该扩展名”子键 ,记录该扩展名的一些信息,对某种特定类型的文件的右键菜单的修改,便是在该键或“扩展名file”键下的操作。当然如果要对所有类型的文件修改便是在HKEY_CLASSES_ROOT/*下添加相应命令。

     

    下面我举个例子来说明。

    做过VB开发的朋友肯定不会不熟悉Regsvr32这个命令,你是不是很烦不停在运行命令中注册和反注册一些控件。下面我们专门针对.dll和.ocx这再从类文件添加注册和反注册再从个命令。添加成功后您就可以方便地在任何dll类型的右击菜单上注册或反注册这些动态库了,听起来的确很爽!

     

    打开注册表,找到HKEY_CLASSES_ROOT/dllfile。在dllfile下新建

    shell/Regsvr32/command ,command的键值是regsvr32 %1

    相应地再建一个反注销的命令

    shell/Regsvr32/command ,command的键值是regsvr32 %1 -u

    添加后的效果如下图

     

     

    相信针对ocx已经不用我说了吧。呵呵!

    看看修改后的效果吧

     

     

    快去试试吧。。

     

     

     

     

    展开全文
  • 当我们要设置一个菜单不可用时,系统会发出一条消息WM_INITMENUPOPUP(可以理解为初始化菜单项弹出窗口消息) ,在此说明Mfc的命令更新仅适用于即弹出式菜单子菜单栏上的子菜单项),不能用于永久显示的菜单栏的...

    Mfc命令更新机制:




            在应用程序中,菜单栏是一直要显示的,所以就要实时去更新它,显示它的即时状态(可用/不可用)。当我们要设置一个菜单不可用时,系统会发出一条消息WM_INITMENUPOPUP(可以理解为初始化菜单项弹出窗口消息) ,在此说明Mfc的命令更新仅适用于即弹出式菜单项(子菜单栏上的子菜单项),不能用于永久显示的菜单栏的菜单项(如上图所示);然后MFC的基类CFrameWnd接管这个消息,并且它创建一个CCmdUI对象与第一个菜单项相关联,调用一个成员函数DoUpdate()。这个函数发出CN_UPDATE_COMMAND_UI消息,这个消息带有一个CCmdUI类型的指针,它会去检测是否有接管这个消息的宏ON_UPDATE_COMMAND_UI,有就去调用对应的响应函数(即消息映射原理)进行处理,执行完成之后这个一开始创建的CCmdUI对象会与第二个菜单项相关联,执行同样的操作...依次下去。


           菜单栏菜单项的ID与工具栏的ID如果相同,则设置这个ID对应的菜单项不可用,对应菜单项和工具栏的工具项都会不可用。即如果想要把工具栏上的图标与菜单栏的菜单项相关联,只需要把他们的ID设置为一样的就可以了

    设置菜单栏中的子菜单项剪切从不可用变为可用(从灰的变为黑色的可点击项):

    pCmdUI->Enable();             //CCmdUI的成员函数

    也可以做更高级的判断以下为设置新建菜单项不可用:

    void CMainFrame::OnUpdateFileNew(CCmdUI* pCmdUI) 
    {
    // TODO: Add your command update UI handler code here
    //	if(ID_FILE_NEW==pCmdUI->m_nID)   //用ID判断是否为新建菜单项,m_nID为CCmdUI的成员变量
    //	 pCmdUI->Enable(FALSE);
    if(0==pCmdUI->m_nIndex)	 //用索引序号判断是否为新建菜单项,这种判断不能与工具条中的图标相关联
    pCmdUI->Enable(FALSE);
    }

    设计一个右键弹出静态菜单:

    1、首先在Resource(资源)下的Menu中新建一个菜单,双击用户界面编辑窗口中的手动增加菜单,再弹出的对话窗中填写右键菜单的父项(这个不会显示在实际应用程序          中),随便输入一个caption(标题),在其子项中添加我们想要的右键弹出菜单子项(即会在应用程序中显示);

    2、要建立一个右键弹出菜单,就要响应鼠标右键消息,这里需要在CTestView类中增加一个WM_RBUTTONDOWN消息的响应函数OnRButtonDown(),在这个函数中,需要用    到一个函数来显示我们的菜单,在msdn中查到BOOL TrackPopupMenu( UINT nFlags, int x, int y, CWnd* pWnd, LPCRECT lpRect = NULL );参数分别是菜单显示的位置          (当弹出菜单显示的时候,鼠标是在弹出菜单的正中间还是左上角还是右上角等等)、xy是鼠标右键点击位置的xp坐标、这个弹出菜单输入哪个窗口、一个弹出菜单鼠标点击   时也保持显示的区域;特别注意这里的x/y坐标默认是整块屏幕的坐标,我们需要把它转移到应用程序窗口中来,这里要用一个msdn中查到的函                            数:ClientToScreenLPPOINT lpPoint )。

    void CMenu2View::OnRButtonDown(UINT nFlags, CPoint point) 
    {
    // TODO: Add your message handler code here and/or call default
    CMenu menu;	 //定义一个菜单变量
    menu.LoadMenu(IDR_MENU1);	 //加载设计好的菜单
    CMenu* pPopup=menu.GetSubMenu(0);	//定义菜单指针获取第一个子菜单栏
    ClientToScreen(&point);	 //转移坐标系到应用程序窗口中来
    pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, GetParent());                  
    //显示右键弹出菜单,GetParent()写到弹出菜单是CMainFrame拥有,当CTestView类中没有弹出菜单子项点击的响应函数的时候会去CMainFrame
    //类中查找相应的响应函数;如果这里写的是this,那么不会去检查CMainFrame类中是否有弹出菜单子项的响应函数(可以在两个类中都加上响应函数试一下)
    CView::OnRButtonDown(nFlags, point);
    }



    用代码动态添加左键弹出菜单:

    1这里需要在CMainFrame框架类的OnCreate函数中去添加,这里我们在msdn中查到 兩个函数,这个函数可以实现两种方式的添加;

    2一种是在上图所示的帮助后面追加一个菜单项:

    BOOL AppendMenu( UINT nFlags,  UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL );这个函数的参数分别表示:

          1):添加菜单的类型(有MF_POPUP(弹出菜单)、MF_SEPARATOR(分隔符)、   MF_STRING(字符串));

          2):Specifies either the command ID of the new menu item or, if nFlags is set to MF_POPUP,  the menu handle (HMENU) of a pop-up menu. The nIDNewItem parameter is ignored (not  needed) if nFlags is set to MF_SEPARATOR.(如果第一个参数设置为MF_POPUP(弹出菜 单)的时候,这个参数就是这个弹出菜单的一个CMenu的句柄,设置为MF_SEPARATOR(分隔符)时,这个参数可以省略,设置为MF_STRING时,这个参数表示菜单项的ID)

          3):是菜单项的名称

    3

     CMenu menu;
    menu.CreatePopupMenu();	 //创建一个空的弹出菜单与一个CMenu	变量相关联
    //GetMenu()->AppendMenu(MF_POPUP,(UINT)menu.m_hMenu,"WinSun"); //将弹出	菜单添加到上图中的帮助后面
    GetMenu()->InsertMenu(2,MF_BYPOSITION|MF_POPUP,(UINT)menu.m_hMenu,
    "WinSun");	 //将弹出菜单插入到到第二个菜单项(即上图中的编辑)的后面,这里是通过索引编号进行定位
    menu.AppendMenu(MF_STRING,IDM_HELLO,"Hello");//添加一个ID为	IDM_HELLO的字符串类型菜单项到WinSun弹出菜单的子项中
    menu.AppendMenu(MF_STRING,112,"WangDong");
    menu.AppendMenu(MF_STRING,113,"Mybole");
    //************Detaches a Windows handle from a CWnd object and returns the 	handle.(意思是解开一个CWnd对象窗口的句柄,返回一个句柄
    menu.Detach();//这里就是防止OnCreate函数执行完后menu对象析构而造成的错误
    GetMenu()->GetSubMenu(0)->AppendMenu(MF_STRING,114,"Welcome");//这里是	在菜单栏的第一个菜单的子菜单中最后追加一个字符型的菜单项Welcome
    GetMenu()->GetSubMenu(0)->InsertMenu(ID_FILE_OPEN,MF_BYCOMMAND | 	MF_STRING, 115,"王东");//通过ID编号进行插入一个字符型的子菜单项
    GetMenu()->DeleteMenu(1,MF_BYPOSITION);//删除菜单栏中的第二个菜单项(即	编辑)
    GetMenu()->GetSubMenu(0)->DeleteMenu(2,MF_BYPOSITION);//删除菜单栏中第	一个菜单项下的第3个子菜单项(即打开)

    现在设计好了弹出菜单,就需要对弹出菜单项进行命令响应:

    想法:首先需要获取到我们想要响应的菜单项,这里就需要去VC编辑器坐下变的FILEVIEW中,在Header Files里的Resource.h添加一条声明ID的宏,是

    #define IDM_HELLO 111

    这样就将ID111Hello菜单项的宏设置为IDM_HELLO,然后由于前面是代码添加的菜单,所以无法在资源编辑器中手动点击ClassWizard来添加消息响应函数,这里就模仿之前点击添加消息响应函数所产生的代码(即消息响应机制):

    实现:

    1首先在CMainFrame框架类的头文件的声明消息映射DECLARE_MESSAGE_MAP()之前加入消息响应函数原型声明afx_msg void OnHello();

    2然后在CMainFrame框架类的源文件的BEGIN_MESSAGE_MAP()END_MESSAGE_MAP()之间加入消息响应函数的一个宏ON_COMMAND(IDM_HELLO,OnHello) //注意       这里不能加分号。

    3然后在CMainFrame框架类的源文件的后面定义消息响应函数:

    void CMainFrame::OnHello()
    {
    MessageBox("Hello!");
    }

    这样就完成了我们代码添加的菜单项的消息响应。


    展开全文
  • 静态菜单操作包括标记菜单,默认菜单,图形菜单的实现原理及具体实现,快捷弹出菜单的实现方式及其命令响应函数的添加。 动态菜单操作主要包括:如何让程序运行时产生新的子菜单和菜单,以及如何手工地为这些新...

    本节学习了菜单编程方面的内容,包括静态菜单操作和动态菜单操作两大块。

    静态菜单操作包括标记菜单,默认菜单,图形菜单的实现原理及具体实现,快捷弹出菜单的实现方式及其命令响应函数的添加。

    动态菜单操作主要包括:如何让程序运行时产生新的子菜单和菜单项,以及如何手工地为这些新产生的菜单项命令添加消息响应处理函数。

    本节还实现了如何在顶层窗口,即框架类窗口中截获对菜单命令的处理。

    通过这节还应该了解Windows中消息的分类,以及菜单命令消息的路由过程,进一步熟悉Cstring类的应用。

     

    静态菜单操作

    //1.标记菜单(2种方法)

           //GetMenu()->GetSubMenu(0)->CheckMenuItem(0,MF_BYPOSITION| MF_CHECKED);     //通过菜单项的索引设置一个标记菜单

           //GetMenu()->GetSubMenu(0)->CheckMenuItem(ID_FILE_NEW,MF_BYCOMMAND| MF_CHECKED);  //通过菜单项的标识设置一个标记菜单

     

           //2.默认菜单

           //GetMenu()->GetSubMenu(0)->SetDefaultItem(1,TRUE);      //通过菜单项的索引设置一个默认菜单,最后一个参数为TRUE

           //GetMenu()->GetSubMenu(0)->SetDefaultItem(ID_FILE_OPEN,FALSE);   //通过菜单项的标识设置一个默认菜单最后一个参数为FALSE

           //GetMenu()->GetSubMenu(0)->SetDefaultItem(5,TRUE);  //设置打印菜单项时索引时5,不是4,因为分隔栏在子菜单中是占据索引位置的

           //一个子菜单只能有一个默认菜单项

     

           //3.图形标记菜单

     

           /*CStringstr;

           str.Format("x=%d,y=%d",GetSystemMetrics(SM_CXMENUCHECK),GetSystemMetrics(SM_CYMENUCHECK));

           //CString类的Format函数可以按照一定的格式把内容格式化,然后将结果保存到CString类型的字符串对象中

           //GetSystemMetrics()函数可以取得窗口上各种资源的尺寸,根据参数决定

           //根据取得的尺寸信息可知,位图大小应该是13*13;

           MessageBox(str);*/

     

           //m_bitmap.LoadBitmap(IDB_BITMAP1);

           //GetMenu()->GetSubMenu(0)->SetMenuItemBitmaps(0,MF_BYPOSITION,&m_bitmap,&m_bitmap);//运行程序发现不显示位图,

           //原因在于位图太大,只是显示了位图左上角的一小部分内容。

     

           //4.禁用菜单项

       //GetMenu()->GetSubMenu(0)->EnableMenuItem(1,MF_BYPOSITION |MF_DISABLED | MF_GRAYED);

           //GetMenu()->GetSubMenu(0)->EnableMenuItem(ID_FILE_OPEN,MF_BYCOMMAND| MF_DISABLED | MF_GRAYED);

           //在构造函数中修改成员变量才能使这行代码起作用m_bAutoMenuEnable= FALSE;

           //MF_DISABLED| MF_GRAYED这两个标志一起使用

     

       //5.移除和装载菜单

           //SetMenu(NULL);//移除

       //装载

           //CMenumenu;

       //menu.LoadMenu(IDR_MAINFRAME);

           //SetMenu(&menu);  

           //menu是个局部变量,在程序运行时,点击“打印预览”,关闭“打印预览”,再关闭程序,程序会报错

           //解决办法是把menu定义为CMainFram类的成员变量

           //还可以用Detach函数把菜单句柄与这个菜单对象分离

           //menu.Detach();

     

     

           return0;

    }

     

           //m_bAutoMenuEnable= FALSE;  

           //一旦在CMainFrame类的构造函数中把成员变量m_bAutoMenuEnable =FALSE;后,就不需要对ON_UPDATE_COMMAND_UI

           //或ON_COMMAND消息进行响应处理了,CMenu类的EnableMenuItem函数将能正常工作。

           //但是在Menu程序编辑子菜单下的几个菜单项不在以灰色显示了,因为m_bAutoMenuEnable= FALSE后,

           //MFC就不在利用它的菜单命令更新机制去判断哪个菜单可以使用,哪个菜单不能够使用,所以其也就不能根据菜单项的状态以不同的外观

           //来显示。而菜单能否使用这些判断操作,就需要我们自己去完成了

           //说实话,命令更新机制讲的不清楚啊!不明白啊!

     

    //6.MFC菜单命令更新机制

    //在消息映射中添加ON_UPDATE_COMMAND_UI宏来捕获CN_UPDATE_COMMAND_UI消息

    void CMainFrame::OnUpdateEditCut(CCmdUI*pCmdUI)

    {

           //TODO: Add your command update UI handler code here

           //pCmdUI->Enable();//在这样的消息中带有一个指向CCmdUI对象的指针,可以用它调用相应的功能函数

           //在工具栏中剪切的标识和菜单栏中的剪切标识是一样,所以两者都被启用了。

           if(2== pCmdUI->m_nIndex) //判断当前是否是新建菜单项,实际中无需判断,MFC调用菜单命令更新函数时,已经确定了特定的菜单项。

                  pCmdUI->Enable();  

    }

     

    void CMainFrame::OnUpdateFileNew(CCmdUI*pCmdUI)

    {

           //TODO: Add your command update UI handler code here

           //if(ID_FILE_NEW== pCmdUI->m_nID)  //根据标识判断,工具栏中,菜单栏中的剪切都被禁用

           if(0== pCmdUI->m_nIndex)    //根据索引判断,工具栏中的剪切不被禁用,两者索引不同!

                  pCmdUI->Enable(FALSE);

    }

    //如果要在程序中设置某个菜单项的状态,首先通过ClassWizard为这个菜单项添加ON_UPDATE_COMMAND_UI消息响应函数,然后再这个

    //函数中进行状态的设置即可!

     

    void CMainFrame::OnShow()

    {

           //TODO: Add your command handler code here

           MessageBox("Mainshow");

    }

     

    //动态菜单操作

           //1.添加菜单项目

           /*CMenumenu;

           menu.CreateMenu();//创建一个菜单,然后将其与一个CMenu对象相关联起来。

           GetMenu()->AppendMenu(MF_POPUP,(UINT)menu.m_hMenu,"Test");  //添加菜单项

           menu.Detach();//将菜单句柄与菜单对象之间的关联断开*/

     

           //2.插入菜单项目

           /*CMenumenu;

           menu.CreateMenu();//创建一个菜单,然后将其与一个CMenu对象相关联起来。

           GetMenu()->InsertMenu(2,MF_POPUP|MF_BYPOSITION, (UINT)menu.m_hMenu,"Test");

           menu.AppendMenu(MF_STRING,IDM_HELLO,"Hello");

           menu.AppendMenu(MF_STRING,112,"Bye");

           menu.AppendMenu(MF_STRING,113,"Mybole");

           menu.Detach();

           GetMenu()->GetSubMenu(0)->AppendMenu(MF_STRING,114,"Welcome");

           GetMenu()->GetSubMenu(0)->InsertMenu(ID_FILE_OPEN,MF_STRING| MF_BYCOMMAND,115,"VC编程");

           //3.删除菜单

           GetMenu()->DeleteMenu(1,MF_BYPOSITION);

           GetMenu()->GetSubMenu(0)->DeleteMenu(2,MF_BYPOSITION);*/

     

    //4.动态添加的菜单项的命令响应

    void CMainFrame::OnHello()

    {

           MessageBox("Hello");

    }

     

    ON_COMMAND(IDM_HELLO,OnHello)

    afx_msg void OnHello();

     

    //5.电话本示例程序

    void CMenu2View::OnChar(UINT nChar, UINTnRepCnt, UINT nFlags)

    {

           CClientDCdc(this);

           if(0x0d== nChar)

           {

                  if(0== ++m_nIndex)

                  {

                         m_menu.CreatePopupMenu();

                         GetParent()->GetMenu()->AppendMenu(MF_POPUP,(UINT)m_menu.m_hMenu,"phoneBook");//菜单是框架类窗口的,要用GetParent()

                         //取到框架窗口的指针

               GetParent()->DrawMenuBar();//取得框架窗口的指针,然后重绘菜单栏,才会在按下回车键后显示先添加的菜单!

                         //在CMainFrame中不需要这样做,是因为代码是在OnCreate中添加的,窗口还未创建完成

                         //而此时窗口已经创建完成

                  }

                  m_menu.AppendMenu(MF_STRING,IDM_PHONE1+ m_nIndex,m_strLine.Left(m_strLine.Find(' ')));//取得输入的内容空格以前的内容,添加到菜单项中

                  m_strArray.Add(m_strLine);//m_strArray是定义的一个CStringArray的集合类

                  //MFC为我们提供了一些非常有用的集合类,这些集合类类似于数组的功能,但他们可以很方便的动态增加和删除元素。

                  m_strLine.Empty();//在按下回车键后,清空字符串的内容,再次输入时显示的就是新输入的,不会在先前的后面输出了

                  Invalidate();//让窗口的整个客户区无效,这样,当下一条WM_PAINT消息发生时,窗口就会被更新。不然再次输入的内容

                  //会再先前输入的内容上面显示。默认参数是TRUE,在窗口重绘时就会把窗口的背景擦除掉。为FALSE时保留窗口的背景

           }

           else

           {

                  m_strLine+= nChar;

                  dc.TextOut(0,0,m_strLine);

           }

           CView::OnChar(nChar,nRepCnt, nFlags);

    }

     

    void CMenu2View::OnPhone1()

    {

           //TODO: Add your command handler code here

           CClientDCdc(this);

           dc.TextOut(0,0,m_strArray.GetAt(0));

    }

     

    void CMenu2View::OnPhone2()

    {

           //TODO: Add your command handler code here

           CClientDCdc(this);

           dc.TextOut(0,0,m_strArray.GetAt(1));

    }

     

    void CMenu2View::OnPhone3()

    {

           //TODO: Add your command handler code here

           CClientDCdc(this);

           dc.TextOut(0,0,m_strArray.GetAt(2));

    }

     

    void CMenu2View::OnPhone4()

    {

           //TODO: Add your command handler code here

           CClientDCdc(this);

           dc.TextOut(0,0,m_strArray.GetAt(3));

    }

     

           ON_COMMAND(IDM_PHONE1,OnPhone1)   //这些代码要放到注释宏外面,如果放在里面,在ClassWizard对话框中,在Message Maps选项卡下

           ON_COMMAND(IDM_PHONE2,OnPhone2)   //的Member functions列表中就会列出这些函数,放在外面就不会列出来。当ClassWizard发现

           ON_COMMAND(IDM_PHONE3,OnPhone3)   //菜单项已经被删除了的时候,它就会把已为该菜单项添加的消息映射宏也删除了,这样,消息映射宏

           ON_COMMAND(IDM_PHONE4,OnPhone4)   //的三个环节就断了一环,程序就会出错。

     

           afx_msgvoid OnPhone1();   //放在两个注释宏之间也没有错

           afx_msgvoid OnPhone2();   //但为了区分这是自己手动添加的,可以把它们拿出来放在两个AFX_MSG注释宏之后。

           afx_msgvoid OnPhone3();

           afx_msgvoid OnPhone4();

    展开全文
  • 点击鼠标,将光标放在表单框线内,点击“插入”菜单,选择“表单”,在弹出的子菜单中选择“选择(列表/菜单)”命令。或者在“插入”面板中选择“表单”,点击“选择(列表/菜单)”图标,如下图所示: 点击“窗口...

    一、在Dreamweaver中创建弹出式菜单

    1. 点击鼠标,将光标放在表单框线内,点击“插入”菜单,选择“表单”项,在弹出的子菜单中选择“选择(列表/菜单)”命令。

    或者在“插入”面板中选择“表单”项,点击“选择(列表/菜单)”图标,如下图所示:

    6eb708129a577ffcff4074877d8e3990.png

    点击“窗口”菜单,选择“插入”项,可以打开“插入”面板。

    2. 点击“选择(列表/菜单)”图标后,弹出“输入标签辅助功能属性”对话框,在对话框中设置后,单击“确定”按钮,“选择(列表/菜单)”出现在文档中。

    3. 在文档中点击“选择(列表/菜单)”表单控件,如下图所示:

    63ae945a66ab4aa9bfe707eae312ab41.png

    在“代码”视图中可以查看源代码:

    4. 打开选择(列表/菜单)“属性”面板,如下图所示:

    7acc3a1ba2e3b658d7f9f3bf73e2a246.png

    5. “选择”项:输入名称。name属性。

    6. “类型”项:选择菜单。

    7. “列表值”按钮:点击“列表值”按钮添加菜单选项,出现“列表值”对话框,如下图所示:

    80a2f524ff38d6230b16dcde129a5301.png

    8. 将光标放在“项目标签”列表中,输入需要在列表中出现的文本。

    9. 在“值”列表中输入选取该项目时要发送给服务器的文本或数据。value属性。

    10. 如果还要添加其他项目,点击“+”按钮,然后重复第8和第9步。如果选择某一项,点击“-”按钮,即可删除那一项。

    11. 单击向上、向下按钮对项目进行排序。

    12. 添加项目结束时,点击“确定”按钮关闭“列表值”对话框。

    13. 在“初始化时选定”文本框中选择该菜单的默认列表项。selected属性。

    be3cbbfa98dbd53d489ecb4adb11a94a.png

    14. 在“代码”视图中可以查看源代码:

    网页制作

    网络编程

    二、提示

    将光标定位到表单的红色虚线围成的框内,按回车(Enter)键,可以添加多个弹出式菜单。

    展开全文
  • 孙鑫视频---菜单

    2019-01-11 09:04:00
    标记菜单、缺省菜单的实现原理、图形菜单的实现及常犯错误的分析,GetSystemMetrics的应用,快捷弹出菜单的实现方式及其命令响应函数有效范围(与弹出菜单时所指定的父窗口有密切的关系,最底层的窗口具有最优先的...
  • (孙鑫 6)菜单

    2014-03-26 23:30:37
    标记菜单、缺省菜单的实现原理、图形菜单的实现及常犯错误的分析,GetSystemMetrics的应用,快捷弹出菜单的实现方式及其命令响应函数有效范围(与弹出菜单时所指定的父窗口有密切的关系,最底层的窗口具有最优先的...
  • 1、运行regedit命令打开注册表管理器2、找到右键项目注册表“HKEY_CLASSES_ROOT”旗下子菜单作用分别为:HKEY_CLASSES_ROOT\*\shell 对任意文件单机右键弹出菜单的菜单HKEY_CLASSES_ROOT\folder\shell 对一般...
  • vc 菜单

    2011-01-08 23:02:00
    弹出菜单(Pop-up)是不能用来作命令响应。 2.MFC中菜单项消息如果利用ClassWizard来对菜单项消息分别在上述四个类中进行响应,则菜单消息传递顺序:View类--Doc类--CMainFrame类--App类。菜单消息一旦在其中...
  • 把程序添加到右键菜单

    万次阅读 2012-07-31 23:11:13
    1、运行regedit命令打开注册表...HKEY_CLASSES_ROOT\*\shell 对任意文件单机右键弹出菜单的菜单 HKEY_CLASSES_ROOT\folder\shell 对一般文件夹和系统文件(文件夹和驱动器)的右键弹出菜单都起作用 HKEY_CLA
  • 1、运行regedit命令打开注册表管理器2、找到右键项目注册表“HKEY_CLASSES_ROOT”旗下子菜单作用分别为:HKEY_CLASSES_ROOT\*\shell 对任意文件单机右键弹出菜单的菜单HKEY_CLASSES_ROOT\folder\shell 对一般...
  • 第十六讲 菜单管理

    千次阅读 2007-11-12 15:02:00
     例17:本例在蓝色的背景上绘制一个白色的正方形,在窗口内单击鼠标右键,弹出菜单,当选择不同菜单命令窗口会显示出是哪个菜单的哪个菜单相被激活。本例一个主菜单,主菜单有3个菜单条目及两个子菜单。两个...
  • VC++深入详解(4):MFC菜单设计

    千次阅读 2012-10-11 08:24:44
    首先,菜单是一种资源,在资源视图中,我们可以找到默认的单文档...而点击子菜单的“打开”、“新建”等内容,可以响应命令这些内容称为菜单。 我们发现,不论是新建的菜单,还是子菜单,在最后总有一个虚线框起来的
  • 自动生成VBA窗体菜单

    2010-08-16 15:23:46
    Public MenuCount As Integer '子菜单数量 Public hForm As Long '窗口句柄 Public intLevel As Integer '级别标识,用于设置Radio菜单(游戏菜单中:初级,中级,高级) Public bAbortEnabled As Boolean '标识放弃菜单...
  • 弹出菜单配置对话框, 展开左侧[菜单][视图],在这里由[新建菜单/子菜单]创建一个子菜单,然后在右侧[命令]里找到[打开文件标签]命令,拖到刚才创建的子菜单里即可。重启软件,点击那个创建菜单~ 如果还...
  • 标记菜单、缺省菜单的实现原理、图形菜单的实现及常犯错误的分析,GetSystemMetrics的应用,快捷弹出菜单的实现方式及其命令响应函数有效范围(与弹出菜单时所指定的父窗口有密切的关系,最底层的窗口具有最优先的...
  • 展开左侧[菜单][视图],在这里由[新建菜单/子菜单]创建一个子菜单,然后在右侧[命令]里找到[打开文件标签]命令,拖到刚才 创建的子菜单里即可。 以此可以创建很多命令菜单…… 方法3:  删除C:/...
  • 标记菜单、缺省菜单的实现原理、图形菜单的实现及常犯错误的分析,GetSystemMetrics的应用,快捷弹出菜单的实现方式及其命令响应函数有效范围(与弹出菜单时所指定的父窗口有密切的关系,最底层的窗口具有最优先的...
  • UltraEdit文件标签不见了

    千次阅读 2009-08-17 09:28:00
    找到了一个方法找回失落文件标签栏……[高级/配置]->[工具栏/菜单]->[定制/定制菜单]->弹出菜单配置对话框,展开左侧[菜单][视图],在这里由[新建菜单/子菜单]创建一个子菜单,然后在右侧[命令]...
  • 23、菜单控件 Windows 菜单系统是图形用户界面(GUI)重要组成之一,在 VisualC#中使用 MainMenu 控件可以很 方便地实现Windows菜单,MainMenu控件在...某个菜单弹出的称为菜单或子菜单,它们均包含...
  • 作为备份功能,我们可以在Regedit编辑器下单击“注册表”菜单“导出注册表文件”命令,并选择导出范围为“全部”,将注册表文件备份在硬盘上。而作为一般备份工作,在Regedt32中就可以...接着弹出“保存”...
  • 选择【文件】菜单【新建】命令【本机上模板…】子命令弹出【新建】对话框,如图 选择所需模板 在【新建】对话框中选择【文字处理】选项卡,双击【信封模板】文件夹,显示出系统内提供所有信...
  • 工具栏设置可以通过“视图”菜单中“工具栏”子菜单各菜单来完成。通过改变“视图”菜单中各个选项可以浏览其他工具栏。 三、可视化控件工具栏 控件工具栏也称为控件工具箱,其中包含了众多控件。...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 125
精华内容 50
关键字:

弹出子菜单的命令项