📄 subject_50527.htm
字号:
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:pansm 回复日期:2003-08-27 11:06:17
<br>内容:1、在父窗口处理右键菜单消息,判断当前点击右键的窗口是否是某控件(包括CTreeCtrl),若是,则弹出相应的菜单(这样处理,可以统一处理右键菜单)<BR>2、另外一种方法是重载CTreeCtrl,在你的新CTreeCtrl中处理右键菜单<BR><BR>例子(处理WM_CONTEXTMENU消息)<BR>void CVP323Dlg::OnContextMenu(CWnd* pWnd, CPoint point)<BR>{<BR> if(pWnd->m_hWnd != CTreeCtrl.GetSafeHwnd()) return;//利用该判断可以处理不同控件弹出不同菜单<BR><BR> // CG: This block was added by the Pop-up Menu component<BR> {<BR> if (point.x == -1 && point.y == -1){<BR> //keystroke invocation<BR> CRect rect;<BR> GetClientRect(rect);<BR> ClientToScreen(rect);<BR><BR> point = rect.TopLeft();<BR> point.Offset(5, 5);<BR> }<BR><BR> CMenu menu;<BR>#ifdef NO_CAMERA_CONTROL<BR> VERIFY(menu.LoadMenu(CG_IDR_POPUP_SAMPLE_VIDEO_DIALOG_TMP));<BR>#else<BR> VERIFY(menu.LoadMenu(CG_IDR_POPUP_SAMPLE_VIDEO_DIALOG));<BR>#endif<BR><BR> CMenu* pPopupMenu = menu.GetSubMenu(0);<BR> ASSERT(pPopupMenu != NULL);<BR> CWnd* pWndPopupOwner = this;<BR><BR> while (pWndPopupOwner->GetStyle() & WS_CHILD)<BR> pWndPopupOwner = pWndPopupOwner->GetParent();<BR><BR> pPopupMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y,<BR> pWndPopupOwner);<BR> }<BR>}<BR>同时可以在重载的OnInitMenuPopup消息中处理你的菜单项是否使能等<BR>void CVP323Dlg::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu) <BR>{<BR> CDialog::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);<BR><BR> // TODO: Add your message handler code here<BR> CMenu* pMenu=pPopupMenu;<BR> //get code from MFC42, CFrameWnd::OnInitMenuPopup(CMenu* pMenu, UINT, BOOL bSysMenu)<BR> if (bSysMenu)<BR> return; // don't support system menu<BR><BR> ASSERT(pMenu != NULL);<BR> // check the enabled state of various menu items<BR><BR> CCmdUI state;<BR> state.m_pMenu = pMenu;<BR> ASSERT(state.m_pOther == NULL);<BR> ASSERT(state.m_pParentMenu == NULL);<BR><BR> // determine if menu is popup in top-level menu and set m_pOther to<BR> // it if so (m_pParentMenu == NULL indicates that it is secondary popup)<BR> HMENU hParentMenu;<BR> if (AfxGetThreadState()->m_hTrackingMenu == pMenu->m_hMenu)<BR> state.m_pParentMenu = pMenu; // parent == child for tracking popup<BR> else if ((hParentMenu = ::GetMenu(m_hWnd)) != NULL)<BR> {<BR> CWnd* pParent = GetTopLevelParent();<BR> // child windows don't have menus -- need to go to the top!<BR> if (pParent != NULL &&<BR> (hParentMenu = ::GetMenu(pParent->m_hWnd)) != NULL)<BR> {<BR> int nIndexMax = ::GetMenuItemCount(hParentMenu);<BR> for (int nIndex = 0; nIndex < nIndexMax; nIndex++)<BR> {<BR> if (::GetSubMenu(hParentMenu, nIndex) == pMenu->m_hMenu)<BR> {<BR> state.m_pParentMenu = CMenu::FromHandle(hParentMenu);<BR> break;<BR> }<BR> }<BR> }<BR> }<BR><BR> state.m_nIndexMax = pMenu->GetMenuItemCount();<BR> for (state.m_nIndex = 0; state.m_nIndex < state.m_nIndexMax;<BR> state.m_nIndex++)<BR> {<BR> state.m_nID = pMenu->GetMenuItemID(state.m_nIndex);<BR> if (state.m_nID == 0)<BR> continue; // menu separator or invalid cmd - ignore it<BR><BR> ASSERT(state.m_pOther == NULL);<BR> ASSERT(state.m_pMenu != NULL);<BR> if (state.m_nID == (UINT)-1)<BR> {<BR> // possibly a popup menu, route to first item of that popup<BR> state.m_pSubMenu = pMenu->GetSubMenu(state.m_nIndex);<BR> if (state.m_pSubMenu == NULL ||<BR> (state.m_nID = state.m_pSubMenu->GetMenuItemID(0)) == 0 ||<BR> state.m_nID == (UINT)-1)<BR> {<BR> continue; // first item of popup can't be routed to<BR> }<BR> state.DoUpdate(this, FALSE); // popups are never auto disabled<BR> }<BR> else<BR> {<BR> // normal menu item<BR> // Auto enable/disable if frame window has 'm_bAutoMenuEnable'<BR> // set and command is _not_ a system command.<BR> state.m_pSubMenu = NULL;<BR> //state.DoUpdate(this, m_bAutoMenuEnable && state.m_nID < 0xF000);<BR> state.DoUpdate(this, state.m_nID < 0xF000);<BR> }<BR><BR> // adjust for menu deletions and additions<BR> UINT nCount = pMenu->GetMenuItemCount();<BR> if (nCount < state.m_nIndexMax)<BR> {<BR> state.m_nIndex -= (state.m_nIndexMax - nCount);<BR> while (state.m_nIndex < nCount &&<BR> pMenu->GetMenuItemID(state.m_nIndex) == state.m_nID)<BR> {<BR> state.m_nIndex++;<BR> }<BR> }<BR> state.m_nIndexMax = nCount;<BR> }<BR> <BR> ////////////////////////////////<BR> //change menu name<BR> if(csIsRegGkServer())<BR> pPopupMenu->ModifyMenu(IDMM_REREGISTER,MF_BYCOMMAND,IDMM_REREGISTER,"&Egrave;&iexcl;&Iuml;&ucirc;×&cent;&sup2;á(&R)");<BR> else<BR> pPopupMenu->ModifyMenu(IDMM_REREGISTER,MF_BYCOMMAND,IDMM_REREGISTER,"×&cent;&sup2;á&Iacute;&oslash;&Otilde;&cent;(&R)");<BR> <BR> if(csIsRegDirServer())<BR> pPopupMenu->ModifyMenu(IDMM_REREGISTER_SERVER,MF_BYCOMMAND,IDMM_REREGISTER_SERVER,"&Egrave;&iexcl;&Iuml;&ucirc;×&cent;&sup2;á&Auml;&iquest;&Acirc;&frac14;·&thorn;&Icirc;&ntilde;(&R)");<BR> else<BR> pPopupMenu->ModifyMenu(IDMM_REREGISTER_SERVER,MF_BYCOMMAND,IDMM_REREGISTER_SERVER,"×&cent;&sup2;á&Auml;&iquest;&Acirc;&frac14;·&thorn;&Icirc;&ntilde;(&R)"); <BR><BR> if(nmIsNetmeetingStarted())<BR> pPopupMenu->ModifyMenu(IDMM_START_NETMEETING,MF_BYCOMMAND,IDMM_START_NETMEETING,"&sup1;&Oslash;±&Otilde;&Ecirc;&yacute;&frac34;&Yacute;&raquo;á&Ograve;é(&N)");<BR> else<BR> pPopupMenu->ModifyMenu(IDMM_START_NETMEETING,MF_BYCOMMAND,IDMM_START_NETMEETING,"&AElig;&ocirc;&para;&macr;&Ecirc;&yacute;&frac34;&Yacute;&raquo;á&Ograve;é(&N)");<BR><BR> if(m_MultiVideoDialog)<BR> { <BR> if(m_MultiVideoDialog->m_bShowVideo)<BR> pPopupMenu->ModifyMenu(IDMM_SHOW_REMOTE_VIDEO,MF_BYCOMMAND,IDMM_SHOW_REMOTE_VIDEO,"&Ograve;&thorn;&sup2;&Oslash;&Ograve;ì&micro;&Oslash;&acute;°&iquest;&Uacute;(&W)");<BR> else<BR> pPopupMenu->ModifyMenu(IDMM_SHOW_REMOTE_VIDEO,MF_BYCOMMAND,IDMM_SHOW_REMOTE_VIDEO,"&Iuml;&Ocirc;&Ecirc;&frac34;&Ograve;ì&micro;&Oslash;&acute;°&iquest;&Uacute;(&W)");<BR> }<BR><BR> if(m_bTopMost)<BR> {<BR> pPopupMenu->ModifyMenu(IDMM_TOP_MOST,MF_BYCOMMAND,IDMM_TOP_MOST,"&Egrave;&iexcl;&Iuml;&ucirc;×&Uuml;&Ocirc;&Uacute;×&icirc;&Ccedil;°&Atilde;&aelig;(&T)");<BR> }<BR> else<BR> {<BR> pPopupMenu->ModifyMenu(IDMM_TOP_MOST,MF_BYCOMMAND,IDMM_TOP_MOST,"×&Uuml;&Ocirc;&Uacute;×&icirc;&Ccedil;°&Atilde;&aelig;(&T)");<BR> } <BR><BR> //set menu check<BR><BR> //enable or disable menu<BR> if(m_bInOpRegister)<BR> {<BR> pPopupMenu->EnableMenuItem(IDMM_REREGISTER,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDMM_REREGISTER_SERVER,MF_BYCOMMAND|MF_GRAYED);<BR> }<BR> else if(coGetSysStatus() != SysIdling)<BR> {<BR> pPopupMenu->EnableMenuItem(IDMM_REREGISTER,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDMM_REREGISTER_SERVER,MF_BYCOMMAND|MF_GRAYED);<BR> }<BR> else<BR> {<BR> BOOL bUseGK = GetGiveGKIPAddr();<BR> BOOL bUseDIR = GetGiveDirIPAddr();<BR> //CString szGkAddr = GetGateKeeperIP();<BR> //CString szDirAddr = GetDirIP();<BR><BR> if(bUseGK)// && IsIPAddr(szGkAddr))<BR> {<BR> pPopupMenu->EnableMenuItem(IDMM_REREGISTER,MF_BYCOMMAND|MF_ENABLED);<BR> }<BR> else<BR> {<BR> pPopupMenu->EnableMenuItem(IDMM_REREGISTER,MF_BYCOMMAND|MF_GRAYED);<BR> }<BR><BR> if(bUseDIR)// && IsIPAddr(szDirAddr))<BR> {<BR> pPopupMenu->EnableMenuItem(IDMM_REREGISTER_SERVER,MF_BYCOMMAND|MF_ENABLED);<BR> }<BR> else<BR> {<BR> pPopupMenu->EnableMenuItem(IDMM_REREGISTER_SERVER,MF_BYCOMMAND|MF_GRAYED);<BR> }<BR> }<BR><BR> if(m_bInOpNetmeeting)<BR> pPopupMenu->EnableMenuItem(IDMM_START_NETMEETING,MF_BYCOMMAND|MF_GRAYED);<BR> else <BR> pPopupMenu->EnableMenuItem(IDMM_START_NETMEETING,MF_BYCOMMAND|MF_ENABLED);<BR><BR> if(coGetSysStatus() == SysIdling)<BR> {<BR> pPopupMenu->EnableMenuItem(IDMM_STATISTICS,MF_BYCOMMAND|MF_GRAYED);<BR> //pPopupMenu->EnableMenuItem(IDMM_STATISTICS,MF_BYCOMMAND|MF_ENABLED);<BR> <BR> int nState = rdGetAvRecordStatus();<BR> if(nState == IS_DO_PLAY || nState == IS_DO_PAUSE_PLAY)<BR> pPopupMenu->EnableMenuItem(IDMM_PLAYMAIL,MF_BYCOMMAND|MF_GRAYED);<BR> else<BR> pPopupMenu->EnableMenuItem(IDMM_PLAYMAIL,MF_BYCOMMAND|MF_ENABLED);<BR><BR> pPopupMenu->EnableMenuItem(IDMM_SELECT_BANDWIDTH,MF_BYCOMMAND|MF_ENABLED);<BR> }<BR> else<BR> {<BR> pPopupMenu->EnableMenuItem(IDMM_STATISTICS,MF_BYCOMMAND|MF_ENABLED);<BR> pPopupMenu->EnableMenuItem(IDMM_PLAYMAIL,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDMM_SELECT_BANDWIDTH,MF_BYCOMMAND|MF_GRAYED);<BR> }<BR> //////////////////////////////<BR><BR> //////////////////////////<BR> ///////////////////////<BR> {<BR> //check menu<BR> if(m_bCaptureIsDemo) <BR> pPopupMenu->CheckMenuItem(IDM_DEMO_QUEUE,MF_BYCOMMAND|MF_CHECKED);<BR> else <BR> pPopupMenu->CheckMenuItem(IDM_DEMO_QUEUE,MF_BYCOMMAND|MF_UNCHECKED);<BR><BR> int nSize =GetCaptureSize();<BR> if(nSize == eH323SubQCIF) <BR> {<BR> pPopupMenu->CheckMenuItem(IDM_SMALL,MF_BYCOMMAND|MF_CHECKED);<BR> pPopupMenu->CheckMenuItem(IDM_MEDIUM,MF_BYCOMMAND|MF_UNCHECKED);<BR> pPopupMenu->CheckMenuItem(IDM_LARGE,MF_BYCOMMAND|MF_UNCHECKED);<BR> }<BR> else if(nSize == eH323QCIF)<BR> {<BR> pPopupMenu->CheckMenuItem(IDM_SMALL,MF_BYCOMMAND|MF_UNCHECKED);<BR> pPopupMenu->CheckMenuItem(IDM_MEDIUM,MF_BYCOMMAND|MF_CHECKED);<BR> pPopupMenu->CheckMenuItem(IDM_LARGE,MF_BYCOMMAND|MF_UNCHECKED);<BR> }<BR> else if(nSize == eH323CIF)<BR> {<BR> pPopupMenu->CheckMenuItem(IDM_SMALL,MF_BYCOMMAND|MF_UNCHECKED);<BR> pPopupMenu->CheckMenuItem(IDM_MEDIUM,MF_BYCOMMAND|MF_UNCHECKED);<BR> pPopupMenu->CheckMenuItem(IDM_LARGE,MF_BYCOMMAND|MF_CHECKED);<BR> }<BR><BR> //enable or disable menu<BR> int nStatue = coGetSysStatus();<BR> int nAvState = rdGetAvRecordStatus();<BR> int nTypeVideoSend = coGetCodecType(TRUE,eNormal_Video);<BR> if(nStatue == SysIdling)<BR> {<BR> pPopupMenu->EnableMenuItem(IDM_DEMO_QUEUE,MF_BYCOMMAND|MF_ENABLED);<BR><BR> CString szDevice = GetVideoSource();<BR> CString szVideoCodec = GetVideoCodec();<BR> int nCodecIndex = 0;<BR> int nDeviceIndex = 0;<BR><BR> for(int k=0;k<HAVE_VIDEO_CAP_DEVICE;k++)<BR> {<BR> if(g_szCapDevice[k] == szDevice)<BR> {<BR> nDeviceIndex = k;<BR> break;<BR> }<BR> }<BR> for(int i=0;i<HAVE_VIDEO_DEVICE_MAX_CODEC;i++)<BR> {<BR> if(GetSpecialCodecName(nDeviceIndex,i) == szVideoCodec)<BR> {<BR> nCodecIndex = i;<BR> //nCodecIndex = GetSpecialCodecIndex(nDeviceIndex,i);<BR> break;<BR> }<BR> }<BR> <BR> pPopupMenu->EnableMenuItem(IDM_SMALL,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDM_MEDIUM,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDM_LARGE,MF_BYCOMMAND|MF_GRAYED);<BR> for(int j=0;j<HAVE_SPECIAL_CODEC_SIZE_NUMBER;j++)<BR> {<BR> int nCapSize = GetSpecialSzieType(nDeviceIndex,nCodecIndex,j);<BR> if(nCapSize == eH323SubQCIF)<BR> pPopupMenu->EnableMenuItem(IDM_SMALL,MF_BYCOMMAND|MF_ENABLED);<BR> else if(nCapSize == eH323QCIF)<BR> pPopupMenu->EnableMenuItem(IDM_MEDIUM,MF_BYCOMMAND|MF_ENABLED);<BR> else if(nCapSize == eH323CIF)<BR> pPopupMenu->EnableMenuItem(IDM_LARGE,MF_BYCOMMAND|MF_ENABLED);<BR> }<BR><BR> if(m_bCaptureIsDemo)<BR> {<BR> pPopupMenu->EnableMenuItem(IDM_CHENGE_VIDEO_SOURCE,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDM_LOCAL_COLOR_ADJUST,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDM_RMTCAMCTL,MF_BYCOMMAND|MF_GRAYED);<BR> }<BR> else<BR> {<BR> //if(GetVideoSource()==g_szCapDevice[0])<BR> if(g_bHaveChannel[nDeviceIndex])<BR> {<BR> pPopupMenu->EnableMenuItem(IDM_CHENGE_VIDEO_SOURCE,MF_BYCOMMAND|MF_ENABLED); <BR> }<BR> else<BR> {<BR> pPopupMenu->EnableMenuItem(IDM_CHENGE_VIDEO_SOURCE,MF_BYCOMMAND|MF_GRAYED);<BR> }<BR> pPopupMenu->EnableMenuItem(IDM_LOCAL_COLOR_ADJUST,MF_BYCOMMAND|MF_ENABLED);<BR><BR> if(m_bHaveCameraControler)<BR> pPopupMenu->EnableMenuItem(IDM_RMTCAMCTL,MF_BYCOMMAND|MF_ENABLED);<BR> else<BR> pPopupMenu->EnableMenuItem(IDM_RMTCAMCTL,MF_BYCOMMAND|MF_GRAYED);<BR> }<BR> }<BR> else if(nStatue == SysP2PConnected)<BR> {<BR> pPopupMenu->EnableMenuItem(IDM_DEMO_QUEUE,MF_BYCOMMAND|MF_ENABLED);<BR><BR> CString szDevice = GetVideoSource();<BR> CString szVideoCodec = GetVideoCodec();<BR> int nCodecIndex = 0;<BR> int nDeviceIndex = 0;<BR><BR> for(int k=0;k<HAVE_VIDEO_CAP_DEVICE;k++)<BR> {<BR> if(g_szCapDevice[k] == szDevice)<BR> {<BR> nDeviceIndex = k;<BR> break;<BR> }<BR> }<BR> for(int i=0;i<HAVE_VIDEO_DEVICE_MAX_CODEC;i++)<BR> {<BR> if(GetSpecialCodecType(nDeviceIndex,i) == nTypeVideoSend)<BR> {<BR> nCodecIndex = i;<BR> //nCodecIndex = GetSpecialCodecIndex(nDeviceIndex,i);<BR> break;<BR> }<BR> }<BR> /*<BR> int nCodecIndex = 0;<BR> for(int i=0;i<HAVE_SPECIAL_VIDEO_CODEC_NUMBER;i++)<BR> {<BR> if(g_nSpecialCodecCap[i] == nTypeVideoSend)<BR> {<BR> nCodecIndex = i;<BR> break;<BR> }<BR> }<BR> */<BR> pPopupMenu->EnableMenuItem(IDM_SMALL,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDM_MEDIUM,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDM_LARGE,MF_BYCOMMAND|MF_GRAYED);<BR> for(int j=0;j<HAVE_SPECIAL_CODEC_SIZE_NUMBER;j++)<BR> {<BR> //int nCapSize = g_nSpecialCodecCapSize[nCodecIndex][j];<BR> int nCapSize = GetSpecialSzieType(nDeviceIndex,nCodecIndex,j);<BR> if(nCapSize == eH323SubQCIF)<BR> pPopupMenu->EnableMenuItem(IDM_SMALL,MF_BYCOMMAND|MF_ENABLED);<BR> else if(nCapSize == eH323QCIF)<BR> pPopupMenu->EnableMenuItem(IDM_MEDIUM,MF_BYCOMMAND|MF_ENABLED);<BR> else if(nCapSize == eH323CIF)<BR> pPopupMenu->EnableMenuItem(IDM_LARGE,MF_BYCOMMAND|MF_ENABLED);<BR> }<BR><BR> if(m_bCaptureIsDemo)<BR> {<BR> pPopupMenu->EnableMenuItem(IDM_CHENGE_VIDEO_SOURCE,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDM_LOCAL_COLOR_ADJUST,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDM_RMTCAMCTL,MF_BYCOMMAND|MF_GRAYED);<BR> }<BR> else<BR> {<BR> //if(GetVideoSource()==g_szCapDevice[0])<BR> if(g_bHaveChannel[nDeviceIndex])<BR> {<BR> pPopupMenu->EnableMenuItem(IDM_CHENGE_VIDEO_SOURCE,MF_BYCOMMAND|MF_ENABLED);<BR> }<BR> else<BR> {<BR> pPopupMenu->EnableMenuItem(IDM_CHENGE_VIDEO_SOURCE,MF_BYCOMMAND|MF_GRAYED);<BR> }<BR> pPopupMenu->EnableMenuItem(IDM_LOCAL_COLOR_ADJUST,MF_BYCOMMAND|MF_ENABLED);<BR><BR> if(m_bHaveCameraControler)<BR> pPopupMenu->EnableMenuItem(IDM_RMTCAMCTL,MF_BYCOMMAND|MF_ENABLED);<BR> else<BR> pPopupMenu->EnableMenuItem(IDM_RMTCAMCTL,MF_BYCOMMAND|MF_GRAYED);<BR> }<BR> }<BR> else if(nStatue == SysConfConnected)<BR> {<BR> pPopupMenu->EnableMenuItem(IDM_DEMO_QUEUE,MF_BYCOMMAND|MF_ENABLED);<BR><BR> CString szDevice = GetVideoSource();<BR> CString szVideoCodec = GetVideoCodec();<BR> int nCodecIndex = 0;<BR> int nDeviceIndex = 0;<BR><BR> for(int k=0;k<HAVE_VIDEO_CAP_DEVICE;k++)<BR> {<BR> if(g_szCapDevice[k] == szDevice)<BR> {<BR> nDeviceIndex = k;<BR> break;<BR> }<BR> }<BR> /*<BR> for(int i=0;i<HAVE_VIDEO_DEVICE_MAX_CODEC;i++)<BR> {<BR> if(GetSpecialCodecName(nDeviceIndex,i) == szVideoCodec)<BR> {<BR> nCodecIndex = i;<BR> break;<BR> }<BR> }<BR> */<BR><BR> pPopupMenu->EnableMenuItem(IDM_SMALL,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDM_MEDIUM,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDM_LARGE,MF_BYCOMMAND|MF_GRAYED);<BR><BR> if(m_bCaptureIsDemo)<BR> {<BR> pPopupMenu->EnableMenuItem(IDM_CHENGE_VIDEO_SOURCE,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDM_LOCAL_COLOR_ADJUST,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDM_RMTCAMCTL,MF_BYCOMMAND|MF_GRAYED);<BR> }<BR> else<BR> {<BR> //if(GetVideoSource()==g_szCapDevice[0])<BR> if(g_bHaveChannel[nDeviceIndex])<BR> {<BR> pPopupMenu->EnableMenuItem(IDM_CHENGE_VIDEO_SOURCE,MF_BYCOMMAND|MF_ENABLED);<BR> }<BR> else<BR> {<BR> pPopupMenu->EnableMenuItem(IDM_CHENGE_VIDEO_SOURCE,MF_BYCOMMAND|MF_GRAYED);<BR> }<BR> pPopupMenu->EnableMenuItem(IDM_LOCAL_COLOR_ADJUST,MF_BYCOMMAND|MF_ENABLED);<BR><BR> if(m_bHaveCameraControler)<BR> pPopupMenu->EnableMenuItem(IDM_RMTCAMCTL,MF_BYCOMMAND|MF_ENABLED);<BR> else<BR> pPopupMenu->EnableMenuItem(IDM_RMTCAMCTL,MF_BYCOMMAND|MF_GRAYED);<BR> }<BR> }<BR> else<BR> {<BR> pPopupMenu->EnableMenuItem(IDM_DEMO_QUEUE,MF_BYCOMMAND|MF_GRAYED);<BR> <BR> pPopupMenu->EnableMenuItem(IDM_SMALL,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDM_MEDIUM,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDM_LARGE,MF_BYCOMMAND|MF_GRAYED);<BR><BR> pPopupMenu->EnableMenuItem(IDM_CHENGE_VIDEO_SOURCE,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDM_LOCAL_COLOR_ADJUST,MF_BYCOMMAND|MF_GRAYED);<BR> pPopupMenu->EnableMenuItem(IDM_RMTCAMCTL,MF_BYCOMMAND|MF_GRAYED);<BR> }<BR><BR> if(coGetSysStatus() == SysIdling && coGetChildStatus() == IdleIdling)<BR> { <BR> pPopupMenu->EnableMenuItem(IDC_BUTTON_MAKECALL, MF_ENABLED); <BR> }<BR> else<BR> {<BR> pPopupMenu->EnableMenuItem(IDC_BUTTON_MAKECALL, MF_GRAYED);<BR> }<BR> pPopupMenu->EnableMenuItem(IDC_BUTTON_UPDATE_MESSAGE, MF_ENABLED);<BR> }<BR> /////////////////////////<BR><BR> m_btnMenu.SetUnFocus();<BR>}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -