none
VC++ MFC Application 如何为右键菜单添加图形标记? RRS feed

  • 问题

  • 我可以添加系统菜单的图形标记 那么如何为右键菜单添加图形标记?  求解  谢谢 大家~~

    右键菜单我是加载的 代码如下:

      CRect rect;
      GetClientRect(&rect);
      ClientToScreen(&rect);
      CMenu   pp;    
      pp.LoadMenu   (IDR_MENU1);   
      CMenu*   pSubMenu;    
      pSubMenu=pp.GetSubMenu(0);     
      pSubMenu->TrackPopupMenu(TPM_RIGHTBUTTON,rect.left+point.x,point.y+rect.top,this);  
      pSubMenu->DestroyMenu();

    2011年5月9日 13:10

答案

  • 您指的给菜单项添加图形标记是指的这个意思吗?
    pSubMenu->CheckMenuItem(ID_MENUITEM1, MF_CHECKED|MF_BYCOMMAND);
    这句添加在TrackPopupMenu之前即可。
    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    • 已标记为答案 张慧龙 2011年5月9日 13:59
    2011年5月9日 13:30
    版主

全部回复

  • 您指的给菜单项添加图形标记是指的这个意思吗?
    pSubMenu->CheckMenuItem(ID_MENUITEM1, MF_CHECKED|MF_BYCOMMAND);
    这句添加在TrackPopupMenu之前即可。
    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    • 已标记为答案 张慧龙 2011年5月9日 13:59
    2011年5月9日 13:30
    版主
  • 是右键菜单  加图形标记 这样做可以么?

    /*m_bitmap.LoadBitmap(IDB_BITMAP1);
     GetMenu()->GetSubMenu(0)->SetMenuItemBitmaps(0,MF_BYPOSITION,&m_bitmap,&m_bitmap);*/  这是位图资源


    一语惊醒梦中人啊 呵呵 谢谢  这样做就好了

     pSubMenu->SetMenuItemBitmaps(0,MF_BYPOSITION,&m_bitmap,&m_bitmap);

    2011年5月9日 13:41
  • void CXXDlg::OnContextMenu(CWnd* pWnd, CPoint point)
    {
     // TODO: Add your message handler code here
     CMenu pp;   
     pp.LoadMenu(IDR_MENU1);   
     CMenu* pSubMenu = pp.GetSubMenu(0);
     CBitmap bmp1;
     CBitmap bmp2;
     bmp1.LoadBitmap(IDB_BITMAP1);
     ASSERT(bmp1.GetSafeHandle());
     bmp2.LoadBitmap(IDB_BITMAP2);
     ASSERT(bmp2.GetSafeHandle());
     pSubMenu->SetMenuItemBitmaps(0, MF_BYPOSITION, &bmp1, &bmp2);
     static BOOL bCheck = FALSE;
     UINT nStyle =( bCheck = !bCheck) ? MF_BYPOSITION : MF_BYPOSITION | MF_CHECKED;
     pSubMenu->CheckMenuItem(0, nStyle);
     pSubMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,point.x,point.y,this); 
        pp.Detach();
    }
    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    2011年5月9日 13:58
    版主