icondlg.cpp
来自「迷你星文件捆绑器源码」· C++ 代码 · 共 153 行
CPP
153 行
// IconDlg.cpp : implementation file
//
#include "stdafx.h"
#include "BindFile.h"
#include "IconDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
int SelIcon;
/////////////////////////////////////////////////////////////////////////////
// CIconDlg dialog
CIconDlg::CIconDlg(CWnd* pParent /*=NULL*/)
: CDialog(CIconDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CIconDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CIconDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CIconDlg)
DDX_Control(pDX, IDC_LIST1, m_cListCtrl);
DDX_Control(pDX, IDC_CANCEL, m_BtnCancel);
DDX_Control(pDX, IDC_OK, m_BtnSelect);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CIconDlg, CDialog)
//{{AFX_MSG_MAP(CIconDlg)
ON_BN_CLICKED(IDC_OK, OnOk)
ON_BN_CLICKED(IDC_CANCEL, OnCancel)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CIconDlg message handlers
void CIconDlg::OnCancel()
{
OnOK();
}
void CIconDlg::OnOk()
{
SelIcon = m_cListCtrl.GetNextItem(-1,LVNI_SELECTED);
if (SelIcon!=-1)
{
//CString str;
CIcons *pIcons;
//str.Format("%d",SelIcon+1);
LPTSTR IconIndex=MAKEINTRESOURCE(SelIcon+201);
char ExeName[128];
char SelIconPath[128];
::GetTempPath(128,SelIconPath);
fname.Format("%s",SelIconPath);
::GetModuleFileName(0, ExeName, sizeof(ExeName));
CString ThisName;
ThisName.Format("%s",ExeName);
fname=fname+"select.ico";
hasSelected=true;
lpIR=pIcons->ReadIconFromEXEFile(ThisName,IconIndex);
pIcons->WriteIconToICOFile(lpIR,fname);
}
else
{
SelIcon=127;
}
OnOK();
}
BOOL CIconDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
DWORD dwStyle = m_cListCtrl.GetExtendedStyle();
dwStyle |= LVS_EX_FULLROWSELECT|LVS_EX_FLATSB;
m_cListCtrl.SetExtendedStyle(dwStyle);
//m_cListCtrl.SetBkColor(RGB(0,0,0));
InitListCtrlCols();
hasSelected=false;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CIconDlg::InitListCtrlCols()
{
CRect rect;
m_cListCtrl.GetClientRect(&rect);
int nColInterval = rect.Width()/5;
HIMAGELIST hList = ImageList_Create(32,32, ILC_COLOR8 |ILC_MASK , 15, 1);
m_cImageListNormal.Attach(hList);
m_cImageListNormal.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_cImageListNormal.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_cImageListNormal.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
m_cImageListNormal.Add(AfxGetApp()->LoadIcon(IDI_ICON4));
m_cImageListNormal.Add(AfxGetApp()->LoadIcon(IDI_ICON5));
m_cImageListNormal.Add(AfxGetApp()->LoadIcon(IDI_ICON6));
m_cImageListNormal.Add(AfxGetApp()->LoadIcon(IDI_ICON7));
m_cImageListNormal.Add(AfxGetApp()->LoadIcon(IDI_ICON8));
m_cImageListNormal.Add(AfxGetApp()->LoadIcon(IDI_ICON9));
m_cImageListNormal.Add(AfxGetApp()->LoadIcon(IDI_ICON10));
m_cImageListNormal.Add(AfxGetApp()->LoadIcon(IDI_ICON11));
m_cImageListNormal.Add(AfxGetApp()->LoadIcon(IDI_ICON12));
m_cImageListNormal.Add(AfxGetApp()->LoadIcon(IDI_ICON13));
m_cImageListNormal.Add(AfxGetApp()->LoadIcon(IDI_ICON14));
m_cImageListNormal.Add(AfxGetApp()->LoadIcon(IDI_ICON15));
m_cListCtrl.SetImageList(&m_cImageListNormal, LVSIL_NORMAL);
LVITEM lvi;
CString strItem;
for (int i = 0; i < 15; i++)
{
// Insert the first item
lvi.mask = LVIF_IMAGE | LVIF_TEXT;
strItem.Format(_T("图标 %i"), i+1);
lvi.iItem = i;
lvi.iSubItem = 0;
lvi.pszText = (LPTSTR)(LPCTSTR)(strItem);
lvi.iImage = i; // There are 8 images in the image list
m_cListCtrl.InsertItem(&lvi);
}
}
//DEL void CIconDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
//DEL {
//DEL // TODO: Add your control notification handler code here
//DEL
//DEL *pResult = 0;
//DEL }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?