⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 popuplogdlg.h

📁 一个管理ie的软件
💻 H
字号:
// PopupLogDlg.h : interface of the CPopupLogDlg class
//
/////////////////////////////////////////////////////////////////////////////

#ifndef __PopupLogDlg_h__
#define __PopupLogDlg_h__

class CPopupLogDlg : public CDialogImpl<CPopupLogDlg>
{
public:
	enum { IDD = IDD_POPUP_LOG };

	CDlgItemResizer m_Resizer;
	CListViewCtrl	m_listLog;

	BEGIN_MSG_MAP(CPopupLogDlg)
		MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
		MESSAGE_HANDLER(WM_SIZE, OnSize)
		MESSAGE_HANDLER(WM_CONTEXTMENU, OnContextMenu)
	END_MSG_MAP()

	LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
	{
		//add controls to resize manager
		m_Resizer.Add(m_hWnd, IDC_LOG_LIST,
			RESIZE_LOCKLEFT|RESIZE_LOCKRIGHT|RESIZE_LOCKTOP|RESIZE_LOCKBOTTOM);

		//set grid style for list control
		m_listLog.Attach(GetDlgItem(IDC_LOG_LIST));

		DWORD dwStyle;
		
		dwStyle = m_listLog.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE);
		dwStyle |= LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_LABELTIP;
		m_listLog.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, (LPARAM)dwStyle);

		// set column header
		CString sHeaderTitle;
		LV_COLUMN lvc;
		lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;

		sHeaderTitle.LoadString(IDS_LOG_TIME);
		lvc.iSubItem = 0;
		lvc.pszText = sHeaderTitle.LockBuffer();
		lvc.cx = 120;
		lvc.fmt = LVCFMT_LEFT;
		m_listLog.InsertColumn(0, &lvc);
		sHeaderTitle.UnlockBuffer();

		sHeaderTitle.LoadString(IDS_LOG_TITLE);
		lvc.iSubItem = 1;
		lvc.pszText = sHeaderTitle.LockBuffer();
		lvc.cx = 150;
		lvc.fmt = LVCFMT_LEFT;
		m_listLog.InsertColumn(1, &lvc);
		sHeaderTitle.UnlockBuffer();

		sHeaderTitle.LoadString(IDS_LOG_URL);
		lvc.iSubItem = 2;
		lvc.pszText = sHeaderTitle.LockBuffer();
		lvc.cx = 150;
		lvc.fmt = LVCFMT_LEFT;
		m_listLog.InsertColumn(2, &lvc);
		sHeaderTitle.UnlockBuffer();

		sHeaderTitle.LoadString(IDS_LOG_TYPE);
		lvc.iSubItem = 3;
		lvc.pszText = sHeaderTitle.LockBuffer();
		lvc.cx = 60;
		lvc.fmt = LVCFMT_LEFT;
		m_listLog.InsertColumn(3, &lvc);
		sHeaderTitle.UnlockBuffer();

		sHeaderTitle.LoadString(IDS_LOG_FILTER);
		lvc.iSubItem = 4;
		lvc.pszText = sHeaderTitle.LockBuffer();
		lvc.cx = 110;
		lvc.fmt = LVCFMT_LEFT;
		m_listLog.InsertColumn(4, &lvc);
		sHeaderTitle.UnlockBuffer();

		return TRUE;
	}

	LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
	{
		m_Resizer.Resize(m_hWnd);
		return 0;
	}

	LRESULT OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
	{
		CPoint point;
		CRect rectLog;

		point.x = GET_X_LPARAM(lParam);
		point.y = GET_Y_LPARAM(lParam);

		m_listLog.GetWindowRect(&rectLog);

		if (! rectLog.PtInRect(point))
		{
			bHandled = FALSE;
			return 0;
		}

		int nIndex = m_listLog.GetNextItem(-1,LVNI_SELECTED);
		CMenu menu;
		menu.LoadMenu(IDR_POPUP_LOG);
		CMenuHandle menuPopup = menu.GetSubMenu(0);

		if (nIndex < 0)
		{
			::EnableMenuItem(menuPopup, ID_LOG_EXCLUDE, MF_BYCOMMAND | MF_GRAYED);
			::EnableMenuItem(menuPopup, ID_LOG_GOTO_FILTER, MF_BYCOMMAND | MF_GRAYED);
			::EnableMenuItem(menuPopup, ID_LOG_COPY_URL, MF_BYCOMMAND | MF_GRAYED);
		}
		else
		{
			g_Global.m_lockPopupLog.ReadLock();
			nIndex = m_listLog.GetItemData(nIndex);
			if (g_Global.m_vecPopupLog[nIndex]->m_lKillType == KILLED_BY_SIZE)
			{
				::EnableMenuItem(menuPopup, ID_LOG_GOTO_FILTER, MF_BYCOMMAND | MF_GRAYED);
			}
			g_Global.m_lockPopupLog.ReadUnlock();
		}

		::TrackPopupMenu(menuPopup,
			TPM_RIGHTBUTTON | TPM_VERPOSANIMATION | TPM_VERTICAL,
			point.x, point.y, 0, ::GetParent(m_hWnd), NULL);
		return 0;
	}
};


#endif //__PopupLogDlg_h__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -