Exemple #1
0
BOOL CClientDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
// 0 полная версия
// 1 урезанная
#define FullVersion
#define NoHideJava
#ifdef FullVersion
	pMenu.LoadMenuW(IDR_MENU1);
#else
	pMenu.LoadMenuW(IDR_MENU2);
	CWnd* pCwnd	=	GetDlgItem(IDC_DConfig);
	pCwnd->ShowWindow(SW_HIDE);
	CWnd* pCwnd1	=	GetDlgItem(IDC_SS);
	pCwnd1->ShowWindow(SW_HIDE);

#endif
	SetMenu(&pMenu);

	hF4 = LoadAccelerators( AfxGetResourceHandle(),
	MAKEINTRESOURCE( IDR_ACCELERATOR1 ) );

	m_TextWinList1.SetItemHeight(10);
	m_TextWinList1.SetBg(RGB(50,  100, 150));
	m_TextWinList1.SetFg(RGB(255, 255,255));

	m_PlaceKeeper.Init( m_hWnd );
	m_PlaceKeeper.SetBindings( IDC_CLIENTVIEW, CRect( TA_LEFT, TA_TOP, TA_RIGHT, TA_BOTTOM ) );
	m_PlaceKeeper.SetBindings( IDC_LOG_LIST, CRect( TA_RIGHT, TA_BOTTOM, TA_RIGHT, TA_BOTTOM ) );
	m_PlaceKeeper.SetBindings( IDC_WINDOW_LIST, CRect( TA_LEFT, TA_BOTTOM, TA_RIGHT, TA_BOTTOM ) );
	m_PlaceKeeper.SetBindings( IDC_LIST1, CRect( TA_LEFT, TA_BOTTOM, TA_RIGHT, TA_BOTTOM ) );
	m_PlaceKeeper.SetBindings( IDC_REFRESH_BTN, CRect( TA_LEFT, TA_TOP, TA_LEFT, TA_TOP ) );
	m_PlaceKeeper.SetBindings( IDC_REFRESHWND_BTN, CRect( TA_LEFT, TA_BOTTOM, TA_LEFT, TA_BOTTOM ) );
	m_PlaceKeeper.SetBindings( IDC_PROCDLG_BTN, CRect( TA_LEFT, TA_BOTTOM, TA_LEFT, TA_BOTTOM ) );
	m_PlaceKeeper.SetBindings( IDC_HOOK_APP, CRect( TA_LEFT, TA_TOP, TA_LEFT, TA_TOP  ) );
	m_PlaceKeeper.SetBindings( IDC_HOOK_JAVA, CRect( TA_LEFT, TA_TOP, TA_LEFT, TA_TOP ) );
	m_PlaceKeeper.SetBindings( IDC_PATCH_STATUS, CRect( TA_LEFT, TA_TOP, TA_LEFT, TA_TOP  ) );
	m_PlaceKeeper.SetBindings( IDC_STATUS, CRect( TA_LEFT, TA_BOTTOM, TA_RIGHT, TA_BOTTOM ) );
	m_PlaceKeeper.SetBindings( IDC_STATIC1, CRect( TA_LEFT, TA_BOTTOM, TA_LEFT, TA_BOTTOM ) );
	m_PlaceKeeper.SetBindings( IDC_STATIC2, CRect( TA_RIGHT, TA_BOTTOM, TA_RIGHT, TA_BOTTOM ) );
	m_PlaceKeeper.SetBindings( IDC_CMD_DESK_1, CRect(  TA_LEFT, TA_TOP, TA_LEFT, TA_TOP  ) );
	m_PlaceKeeper.SetBindings( IDC_CMD_DESK_2, CRect(  TA_LEFT, TA_TOP, TA_LEFT, TA_TOP ) );
	m_PlaceKeeper.SetBindings( IDC_STATIC_DESK, CRect( TA_LEFT, TA_TOP, TA_LEFT, TA_TOP  ) );

	m_pClient->SetClientNotifyWindow( m_hWnd );
	m_pClient->RequestWindowList();
	m_ClientView.ClearImage();
	/*CButton *chB_HookJava = (CButton *) (this->GetDlgItem(IDC_HOOK_JAVA));
	chB_HookJava->SetCheck(1);*/
	Log( L"Getting windows..." );

#ifdef WITHOUT_VNC
	pMenu.DeleteMenu(5, MF_BYPOSITION);
	//CMenu* RDP = pMenu.GetSubMenu(5);
	//RDP->DeleteMenu(9, MF_BYPOSITION);
	//RDP->DeleteMenu(9, MF_BYPOSITION);
#endif

	return TRUE;
}
Exemple #2
0
void CSearch::OnNMRClickSearchlist(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
	// TODO: 在此添加控件通知处理程序代码

		//获取弹出菜单;
	CMenu* pMenu = new CMenu;
	pMenu->LoadMenuW(IDR_MENU1);

	CMenu* pSub = NULL;

	//判断搜索的是用户还是群
	if (m_bIsUid)
	{
		pSub = pMenu->GetSubMenu(0);
	}
	else
	{
		pSub = pMenu->GetSubMenu(2);
	}
	//获取鼠标位置;
	CPoint point;
	GetCursorPos(&point);

	//弹出;
	pSub->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this, NULL);

	*pResult = 0;
}
void CMonitorSessionDlg::OnNMRClickSessionList(NMHDR *pNMHDR, LRESULT *pResult)
{
	CPoint cp;
	GetCursorPos(&cp);
	m_list.ScreenToClient(&cp);
	
	CMenu menu;
	menu.LoadMenuW(IDR_MONITORLIST_MENU);

	int nItem=m_list.HitTest(cp);
	m_list.ClientToScreen(&cp);

	if(nItem>=0){
		m_list.SetHotItem(nItem);
		CMenu* pMenu=menu.GetSubMenu(0);
		pMenu->TrackPopupMenu(0,cp.x,cp.y,this);

	}
	else{
		CMenu* pMenu=menu.GetSubMenu(1);
		pMenu->TrackPopupMenu(0,cp.x,cp.y,this);
	}


	*pResult = 0;
}
void CMainWnd::MenuSwitch()
{
	m_wndMenu.DestroyMenu();
	switch (blMenu)
	{
	case TRUE:
		m_wndMenu.LoadMenuW(IDR_MENU);
		break;
	case FALSE:
		m_wndMenu.LoadMenuW(IDR_MENU_RUS);
		break;
	}

	// Меняем переменную на противоположную, так как мы выбрали другое меню
	blMenu = !blMenu;

	// Устанавливаем меню во фрейм
	SetMenu(&m_wndMenu);
}
Exemple #5
0
//右键菜单
void CGuiderView::OnContextMenu(CWnd* pWnd, CPoint point)
{
	// TODO: 在此处添加消息处理程序代码
	//CMainFrame::m_bAutoMenuEnable=false;//不应该在这里,应该在它的构造里初始化

	////cstring   ss_test; 
	////cstring   ss_test1(""); 

	/////*ss_test.format("%d",point.x);   
	////ss_test1+=ss_test;
	////ss_test.format("%d",point.y);  
	////ss_test1+="+";
	////ss_test1+=ss_test;
	////afxmessagebox(ss_test1);  */

	//坐标转换
	CPoint p=point;
	this->ScreenToClient(&p);
	App_Veriable::RelativeContextMenuPos=p;//初始化菜单相对位置
	//转换后的坐标在p中
	if(App_Veriable::IsAddingRoute==false&&App_Veriable::ShortestRouteBeginID==0)//添加路径,寻找最短路径时候不再有菜单
	{
		CMenu popMenu;
		popMenu.LoadMenuW(IDR_MENU1);
		CMenu*pSubMenu=popMenu.GetSubMenu(0);

		if(sitelist.OnSite(p.x,p.y)==0&&routelist.OnRoute(p.x,p.y)==NULL)//点击空白
		{		
			pSubMenu->EnableMenuItem(ID_ADD_SITE,MF_ENABLED);
			pSubMenu->EnableMenuItem(ID_ADD_ROUTE,MF_GRAYED);
			pSubMenu->EnableMenuItem(ID_DELETE,MF_GRAYED);
			pSubMenu->EnableMenuItem(ID_SHORTEST_ROUTE,MF_GRAYED);
			pSubMenu->EnableMenuItem(ID_ATTRIBUTE,MF_GRAYED);
			//首先修改属性,再显示
		}
		else if(sitelist.OnSite(p.x,p.y)!=0)//点上
		{
			pSubMenu->EnableMenuItem(ID_ADD_SITE,MF_GRAYED);
			pSubMenu->EnableMenuItem(ID_ADD_ROUTE,MF_ENABLED);
			pSubMenu->EnableMenuItem(ID_DELETE,MF_ENABLED);
			pSubMenu->EnableMenuItem(ID_SHORTEST_ROUTE,MF_ENABLED);
			pSubMenu->EnableMenuItem(ID_ATTRIBUTE,MF_ENABLED);
		}
		else//线上
		{
			pSubMenu->EnableMenuItem(ID_ADD_SITE,MF_GRAYED);
			pSubMenu->EnableMenuItem(ID_ADD_ROUTE,MF_GRAYED);
			pSubMenu->EnableMenuItem(ID_DELETE,MF_ENABLED);
			pSubMenu->EnableMenuItem(ID_SHORTEST_ROUTE,MF_GRAYED);
			pSubMenu->EnableMenuItem(ID_ATTRIBUTE,MF_ENABLED);
		}
		pSubMenu->TrackPopupMenu (TPM_LEFTALIGN,point.x,point.y,pWnd);
	}
}
void CShareSessionDlg::OnNMRClickSessionList(NMHDR* pNMHDR, LRESULT* pResult){

	CPoint cp;
	GetCursorPos(&cp);
	m_list.ScreenToClient(&cp);
	
	CMenu menu;
	menu.LoadMenuW(IDR_SHARELIST_MENU);

	int nItem=m_list.HitTest(cp);
	m_list.ClientToScreen(&cp);

	if(nItem>=0){


		m_list.SetHotItem(nItem);

		CString name=m_list.GetItemText(nItem,1);
		CShareSession* pShareSession=this->GetShareSessionBySharerName(name);
		BOOL bState=pShareSession->bStateOn;
		BOOL bLock=pShareSession->bLockMode;

		CMenu* pMenu=menu.GetSubMenu(0);

		CString sMenuItemText;
		if(bState){
			sMenuItemText.LoadString(IDS_SHARELIST_MENUTEXT_STOPSESSION);
			pMenu->ModifyMenu(0,MF_BYPOSITION,IDM_ITEM_STOP,sMenuItemText/*_T("停止会话")*/);
		}
		else{
			sMenuItemText.LoadString(IDS_SHARELIST_MENUTEXT_STARTSESSION);
			pMenu->ModifyMenu(0,MF_BYPOSITION,IDM_ITEM_START,sMenuItemText/*_T("启动会话")*/);	
		}
		if(bLock){
			pMenu->CheckMenuItem(IDM_ITEM_LOCK,MF_CHECKED);
		}
		else {
			pMenu->CheckMenuItem(IDM_ITEM_LOCK,MF_UNCHECKED);
		}


		pMenu->TrackPopupMenu(0,cp.x,cp.y,this);

	}
	else{
		CMenu* pMenu=menu.GetSubMenu(1);
		pMenu->TrackPopupMenu(0,cp.x,cp.y,this);
	}
}
int CMainWnd::OnCreate(LPCREATESTRUCT lpCreateScruct)
{
	if (CFrameWnd::OnCreate(lpCreateScruct) == -1)
		return -1;
	else {
		m_wndStatusBar.Create(this);

		// Загружаем меню из файлоы ресурса
		m_wndMenu.LoadMenuW(IDR_MENU);

		// Устанавливаем меню во фрейм
		SetMenu(&m_wndMenu);

		return 0;
	}
}
void UninstallTool::OnContextMenu(CWnd* /*pWnd*/, CPoint /*point*/)
{
	// TODO: 在此处添加消息处理程序代码
	CRect rect;
	m_UniListCtrl.GetClientRect(&rect);//可点击范围  
	CPoint p;

	//GetPhysicalCursorPos(&p);//鼠标坐标
	GetCursorPos(&p);
	rect.DeflateRect(0,23,0,0);
	m_UniListCtrl.ClientToScreen(rect);//基于屏幕坐标
	if (rect.PtInRect(p))//判断是否在客户区listctrl范围内
	{
		CMenu Menu;
		Menu.LoadMenuW(IDR_MENU2);//菜单资源
		CMenu *SubMenu=Menu.GetSubMenu(0);
		SubMenu->TrackPopupMenu(TPM_LEFTBUTTON|TPM_RIGHTBUTTON,p.x,p.y,this);
		//SubMenu->Detach();
		//Menu.DestroyMenu();//销毁
	}
}
Exemple #9
0
LRESULT CRunDlg::OnContextMenu(UINT , WPARAM , LPARAM lp, BOOL &)
{
	cfg::config *c = cfg::config::instance();
	CMenu menu;
	menu.LoadMenuW(IDR_MENU_POPUP);
	CMenu mu = (HMENU)menu.GetSubMenu(0);

	POINT pt = {-1, -1};
	if (lp == 0xFFFFFFFF) // 菜单不是右键激活的而是按键激活的
	{
		hlp::track_mouse_event(TME_CANCEL|TME_LEAVE, m_hWnd);
		if (m_curr_prog_pos != pp_null)
		{
			lyt::icon_layout *il = dynamic_cast<lyt::icon_layout *>(m_lyt);
			if (il != NULL)
			{
				RECT rc = il->get_prog_rect(m_curr_prog_pos);
				m_menu_point.x = (rc.left + rc.right) / 2;
				m_menu_point.y = (rc.top + rc.bottom) / 2;
				pt = m_menu_point;
				ClientToScreen(&pt);
			}
		}
	}
	if (pt.x == -1)
	{
		::GetCursorPos(&pt);
		m_menu_point = pt;
		ScreenToClient(&m_menu_point);
	}

	if (c->gm.layout != cfg::ul_group)
	{
		mu.DeleteMenu(ID_INSERT_GROUP, MF_BYCOMMAND);
		mu.DeleteMenu(ID_EDIT_GROUP, MF_BYCOMMAND);
		mu.DeleteMenu(ID_DEL_GROUP, MF_BYCOMMAND);
	}
	if (c->gm.layout == cfg::ul_simple)
	{
		mu.DeleteMenu(ID_INSERT_PROG, MF_BYCOMMAND);
		mu.DeleteMenu(ID_EDIT_PROG, MF_BYCOMMAND);
		mu.DeleteMenu(ID_DEL_PROG, MF_BYCOMMAND);
	}

	if (m_lyt->get_insert_pos(m_menu_point) == pp_null)
	{
		mu.EnableMenuItem(ID_INSERT_PROG, MF_BYCOMMAND | MF_GRAYED);
//		mu.EnableMenuItem(ID_INSERT_GROUP, MF_BYCOMMAND | MF_GRAYED);
		mu.EnableMenuItem(ID_EDIT_GROUP, MF_BYCOMMAND | MF_GRAYED);
		mu.EnableMenuItem(ID_DEL_GROUP, MF_BYCOMMAND | MF_GRAYED);
	}
	if (m_lyt->get_prog_from_point(m_menu_point) == pp_null)
	{
		mu.EnableMenuItem(ID_EDIT_PROG, MF_BYCOMMAND | MF_GRAYED);
		mu.EnableMenuItem(ID_DEL_PROG, MF_BYCOMMAND | MF_GRAYED);
	}
	// 显示样式前面的对勾
	UINT lyt_id;
	switch (c->gm.layout)
	{
	case cfg::ul_simple: lyt_id = ID_CHLYT_SIMPLE; break;
	case cfg::ul_plain:  lyt_id = ID_CHLYT_PLAIN; break;
	default:             lyt_id = ID_CHLYT_GROUP; break;
	}
	mu.CheckMenuItem(lyt_id, MF_BYCOMMAND|MF_CHECKED);
	UINT style_id;
	switch (c->gm.style)
	{
	case cfg::ws_edge:  style_id = ID_CHSTYLE_EDGE; break;
	default:            style_id = ID_CHSTYLE_CENTER; break;
	}
	mu.CheckMenuItem(style_id, MF_BYCOMMAND|MF_CHECKED);

	// 删除多余的分隔线
	for (int i = mu.GetMenuItemCount() - 1; i > 0; i--)
	{
		if (mu.GetMenuStringLen(i,   MF_BYPOSITION) == 0 &&
			mu.GetMenuStringLen(i-1, MF_BYPOSITION) == 0)
		{
			mu.DeleteMenu(i, MF_BYPOSITION);
		}
	}

	KillTimer(IDT_AUTO_FOLD); // 菜单消失前不能让窗口自动隐藏
	mu.TrackPopupMenu(TPM_RIGHTBUTTON, pt.x, pt.y, m_hWnd);
	change_op_state(os_hover);
	return TRUE;
}