configclearpage.h
来自「一个管理ie的软件」· C头文件 代码 · 共 161 行
H
161 行
// ConfigClearPage.h : interface of the CConfigClearPage class
//
/////////////////////////////////////////////////////////////////////////////
#ifndef __ConfigClearPage_h__
#define __ConfigClearPage_h__
class CConfigClearPage : public CPropertyPageImpl<CConfigClearPage>
{
public:
enum { IDD = IDD_CONFIG_CLEAR };
BOOL m_bClearAtExit;
DWORD m_dwClearSettings;
CListViewCtrl m_listItem;
CButton m_btnClearAtExit;
BEGIN_MSG_MAP(CConfigClearPage)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
NOTIFY_HANDLER(IDC_ITEM_LIST, LVN_ITEMCHANGED, OnItemStateChanged)
COMMAND_HANDLER(IDC_CLEAR_ON_EXIT, BN_CLICKED, OnClickedClearAtExit)
CHAIN_MSG_MAP(CPropertyPageImpl<CConfigClearPage>)
END_MSG_MAP()
LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
m_btnClearAtExit.Attach(GetDlgItem(IDC_CLEAR_ON_EXIT));
m_btnClearAtExit.SetCheck(m_bClearAtExit ? 1 : 0);
DWORD dwStyle;
m_listItem.Attach(GetDlgItem(IDC_ITEM_LIST));
dwStyle = m_listItem.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE);
dwStyle |= LVS_EX_CHECKBOXES;
m_listItem.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, (LPARAM)dwStyle);
// set column header
LV_COLUMN lvc;
lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
lvc.iSubItem = 0;
lvc.pszText = _T("");
lvc.cx = 250;
lvc.fmt = LVCFMT_LEFT;
m_listItem.InsertColumn(0, &lvc);
//fill list
int i = 0;
InsertClearItem(i, IDS_CLEAR_URL_HISTORY, CLEAR_URL_HISTORY);
i++;
InsertClearItem(i, IDS_CLEAR_TYPED_URL, CLEAR_TYPED_URL);
i++;
InsertClearItem(i, IDS_CLEAR_CACHE, CLEAR_CACHE);
i++;
InsertClearItem(i, IDS_CLEAR_COOKIES, CLEAR_COOKIES);
i++;
InsertClearItem(i, IDS_CLEAR_AUTOCOMPLETE_FORMS, CLEAR_AUTOCOMPLETE_FORMS);
i++;
InsertClearItem(i, IDS_CLEAR_AUTOCOMPLETE_PWDS, CLEAR_AUTOCOMPLETE_PWDS);
i++;
InsertClearItem(i, IDS_CLEAR_FAVORITES, CLEAR_FAVORITES);
// i++;
// InsertClearItem(i, IDS_CLEAR_RAS_AUTODIAL, CLEAR_RAS_AUTODIAL);
i++;
InsertClearItem(i, IDS_CLEAR_TEMP, CLEAR_TEMP);
i++;
InsertClearItem(i, IDS_CLEAR_RECYCLEBIN, CLEAR_RECYCLEBIN);
i++;
InsertClearItem(i, IDS_CLEAR_RUN_HISTORY, CLEAR_RUN_HISTORY);
i++;
InsertClearItem(i, IDS_CLEAR_RECENT_DOCUMENTS, CLEAR_RECENT_DOCUMENTS);
i++;
InsertClearItem(i, IDS_CLEAR_LAST_LOGON_USER, CLEAR_LAST_LOGON_USER);
i++;
InsertClearItem(i, IDS_CLEAR_FIND_FILES_HISTORY, CLEAR_FIND_FILES_HISTORY);
i++;
InsertClearItem(i, IDS_CLEAR_FIND_COMPUTER_HISTORY, CLEAR_FIND_COMPUTER_HISTORY);
i++;
InsertClearItem(i, IDS_CLEAR_NETWORK_HISTORY, CLEAR_NETWORK_HISTORY);
i++;
InsertClearItem(i, IDS_CLEAR_TELNET_HISTORY, CLEAR_TELNET_HISTORY);
return TRUE;
}
LRESULT OnItemStateChanged(int idCtrl, LPNMHDR pnmh, BOOL& bHandled)
{
NMLISTVIEW* pnmv = (LPNMLISTVIEW)pnmh;
if (pnmv->uOldState == 0 && pnmv->uNewState == 0)
return 0; // No change
// Old check box state
BOOL bPrevState = (BOOL)(((pnmv->uOldState & LVIS_STATEIMAGEMASK)>>12)-1);
if (bPrevState < 0) // On startup there's no previous state
bPrevState = 0; // so assign as false (unchecked)
// New check box state
BOOL bChecked = (BOOL)(((pnmv->uNewState & LVIS_STATEIMAGEMASK)>>12)-1);
if (bChecked < 0) // On non-checkbox notifications assume false
bChecked = 0;
if (bPrevState == bChecked) // No change in check box
return 0;
if (bChecked)
{
m_dwClearSettings |= pnmv->lParam;
}
else
{
m_dwClearSettings &= ~(pnmv->lParam);
}
return 0;
}
LRESULT OnClickedClearAtExit(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
m_bClearAtExit = m_btnClearAtExit.GetCheck();
return 0;
}
void InsertClearItem(int iItem, UINT nTextId, DWORD dwFlag)
{
CString sItemText;
sItemText.LoadString(nTextId);
LV_ITEM lvi;
lvi.mask = LVIF_TEXT | LVIF_PARAM;
lvi.iItem = iItem;
lvi.iSubItem = 0;
lvi.lParam = dwFlag;
lvi.pszText = sItemText.LockBuffer();
int nIndex = m_listItem.InsertItem(&lvi);
sItemText.UnlockBuffer();
ListView_SetItemState(m_listItem.m_hWnd, nIndex,
INDEXTOSTATEIMAGEMASK((m_dwClearSettings & dwFlag) ? 2 : 1),
LVIS_STATEIMAGEMASK);
}
};
#endif //__ConfigClearPage_h__
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?