使用BCG控件后在Run-time时修改菜单

定义函数:

class CMainFrame : public CBCGPMDIFrameWnd
{
	//---------------------------------------------------------
	//重写该虚函数 OnShowPopMenu(),以实现在运行时(Run-time)修改菜单的功能
	//但继承关系、实现原理、以及何时调用,仍然不清楚。只是参照sample application
	//实现了这一功能
	// by Xue
	//2011-12-03
	//---------------------------------------------------------
	
	virtual BOOL OnShowPopupMenu (CBCGPPopupMenu* pMenuPopup);
}

  

实现函数:

BOOL CMainFrame::OnShowPopupMenu (CBCGPPopupMenu* pMenuPopup)
{
	//---------------------------------------------------------
	// 该函数来自于BCG控件DynamicMenu sample application
	//	只使用了一小部分功能:在运行时隐藏两个菜单,拍照与截取视频。
	//	这里只给出了修改作用的代码,略去了BCG原有的代码
	//---------------------------------------------------------
	

//------------- 删除两个菜单项 --------------------//
	int iIndex = -1;
	if (!CBCGPToolBar::IsCustomizeMode())
	{
		// remove the 截取视频 item in noncustomize mode
		iIndex = pMenuPopup->GetMenuBar ()->CommandToIndex (ID_VIDEO_CLIP) ;
		pMenuPopup->RemoveItem (iIndex);

		// remove the 抓图 item in noncustomize mode
		iIndex = pMenuPopup->GetMenuBar ()->CommandToIndex (ID_32855) ;
		pMenuPopup->RemoveItem (iIndex);
		
		pMenuPopup->InsertSeparator (iIndex); // insert the separator at the end
	}

	//-------------------------------------------//

	return TRUE;
}

  

posted on 2011-11-02 18:14  LateStop  阅读(750)  评论(0)    收藏  举报

导航