我新建了一个对话框工程,在对话框中加入一个菜单:File(&F)->New(&N)。子菜单New(&N)的快捷键我已经加上了,但是第一级菜单也就是主菜单File(&F)的快捷键该怎样设置啊?

解决方案 »

  1.   

    这样做就可以了,写为:&File
      

  2.   

    呵呵。。这个是windows自动查找的,查找有下划线的第一个字符。
      

  3.   

    在menu Item Properties中,在ID中选中你的菜单的ID编号,在Caption中输入:xxx(&x)
    这样就ok了记得输入法要是英文状态阿呵呵
      

  4.   

    Example
    // CMainFrame::OnChangeFileMenu() is a menu command handler for 
    // CMainFrame class, which in turn is a CFrameWnd-derived class. 
    // It modifies the File menu by inserting, removing and renaming 
    // some menu items. Other operations include associating a context 
    // help id and setting default menu item to the File menu. 
    // CMainFrame is a CFrameWnd-derived class.
    void CMainFrame::OnChangeFileMenu() 
    {
       // Get the menu from the application window.
       CMenu* mmenu = GetMenu();   // Look for "File" menu.
       int pos = FindMenuItem(mmenu, "&File");
       if (pos == -1)
          return;   // Remove "New" menu item from the File menu.
       CMenu* submenu = mmenu->GetSubMenu(pos);
       pos = FindMenuItem(submenu, "&New\tCtrl+N");
       if (pos > -1)
          submenu->RemoveMenu(pos, MF_BYPOSITION);   // Look for "Open" menu item from the File menu. Insert a new
       // menu item called "Close" right after the "Open" menu item.
       // ID_CLOSEFILE is the command id for the "Close" menu item.
       pos = FindMenuItem(submenu, "&Open...\tCtrl+O");
       if (pos > -1)
          submenu->InsertMenu(pos + 1, MF_BYPOSITION, ID_CLOSEFILE, "&Close");   // Rename menu item "Save" to "Save Selection".
       pos = FindMenuItem(submenu, "&Save\tCtrl+S");
       if (pos > -1)
       {
          UINT id = submenu->GetMenuItemID(pos);
          submenu->ModifyMenu(id, MF_BYCOMMAND, id, "&Save Selection");
       }   // Associate a context help ID with File menu, if one is not found.
       // ID_FILE_CONTEXT_HELPID is the context help ID for the File menu
       // that is defined in resource file. 
       if (submenu->GetMenuContextHelpId() == 0)
          submenu->SetMenuContextHelpId(ID_FILE_CONTEXT_HELPID);   // Set "Open" menu item as the default menu item for the File menu, 
       // if one is not found. So, when a user double-clicks the File
       // menu, the system sends a command message to the menu's owner 
       // window and closes the menu as if the File\Open command item had 
       // been chosen. 
       if (submenu->GetDefaultItem(GMDI_GOINTOPOPUPS, TRUE) == -1)
       {
          pos = FindMenuItem(submenu, "&Open...\tCtrl+O");
          submenu->SetDefaultItem(pos, TRUE);
       }
    }// FindMenuItem() will find a menu item string from the specified
    // popup menu and returns its position (0-based) in the specified 
    // popup menu. It returns -1 if no such menu item string is found.
    int FindMenuItem(CMenu* Menu, LPCTSTR MenuString)
    {
       ASSERT(Menu);
       ASSERT(::IsMenu(Menu->GetSafeHmenu()));   int count = Menu->GetMenuItemCount();
       for (int i = 0; i < count; i++)
       {
          CString str;
          if (Menu->GetMenuString(i, str, MF_BYPOSITION) &&
             (strcmp(str, MenuString) == 0))
             return i;
       }   return -1;
    }