Ê×Ò³ Ê«´Ê ×Öµä °å±¨ ¾ä×Ó ÃûÑÔ ÓÑ´ð ÀøÖ¾ ѧУ ÍøÕ¾µØÍ¼
µ±Ç°Î»ÖÃ: Ê×Ò³ > ½Ì³ÌƵµÀ > ¿ª·¢ÓïÑÔ > VC/MFC >

MFC listcontrol չʾϵͳͼ±ê

2013-04-21 
MFC listcontrol ÏÔʾϵͳͼ±êµÚÒ»´Î´ò¿ª×Ó¶Ô»°¿òÄܹ»ÏÔʾϵͳͼ±ê£¬¹ØÁ˶Ի°¿òºóÔÙ´ò¿ª¾Í²»ÄÜÏÔʾÁË¡£ÇëÎÊ

MFC listcontrol ÏÔʾϵͳͼ±ê
MFC listcontrol չʾϵͳͼ±ê

µÚÒ»´Î´ò¿ª×Ó¶Ô»°¿òÄܹ»ÏÔʾϵͳͼ±ê£¬¹ØÁ˶Ի°¿òºóÔÙ´ò¿ª¾Í²»ÄÜÏÔʾÁË¡£ÇëÎÊ´óÏÀÃÇ£¬ÕâÊÇÔõô»ØÊ£¬°³ÊÇÒµÓàµÄ¡£¡£¶à¶àÖ¸µã°¡¡£¡£ÏÂÃæÊDz¿·Ö´úÂë...

BOOL CfilesDlg::OnInitDialog()
{
CDialog::OnInitDialog();

/*m_list1.SetHeaderTextColor(RGB(0,0,0)); //ÉèÖÃÍ·²¿×ÖÌåÑÕÉ«
m_list1.SetHeaderBKColor(100,255,100,8); //ÉèÖÃÍ·²¿±³¾°É«
m_list1.SetHeaderFontHW(12,0);         //ÉèÖÃÍ·²¿×ÖÌå¸ß¶È,ºÍ¿í¶È,0±íʾȱʡ£¬×ÔÊÊÓ¦ */

CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST1);
pListCtrl->SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_list1.InsertColumn(1,_T("ÎļþÃû"),LVCFMT_CENTER,340);
m_list1.InsertColumn(2,_T("Îļþ´óС"),LVCFMT_CENTER,80);
m_list1.InsertColumn(3,_T("ID"),LVCFMT_CENTER,0);


m_list1.SetBkColor(RGB(188,197,230)); 
m_list1.SetTextColor(RGB(0,0,0)); 
m_list1.SetTextBkColor(RGB(188,197,230));

m_button1.SetBkColor(RGB(188,197,230));
m_button1.SetRounded(TRUE);
m_button2.SetBkColor(RGB(188,197,230));
m_button2.SetRounded(TRUE);
m_button8.SetBkColor(RGB(188,197,230));
m_button8.SetRounded(TRUE);


m_clrBkgnd = RGB(188,197,230);
m_brBkgnd.CreateSolidBrush(m_clrBkgnd);

if (!m_tooltip.Create(this, TTS_ALWAYSTIP))
{
       TRACE(_T("Unable To create ToolTip\n"));
        return FALSE;
}

m_tooltip.SetTipTextColor(RGB(0,0,255));//font color
m_tooltip.SetDelayTime(150);//delay time

    //m_tooltip.AddTool(GetDlgItem(IDC_PARTINFO),_T("this is button"));
m_tooltip.AddTool(GetDlgItem(IDC_BUTTON1),_T("ÕâÊÇÒ»¸ö°´Å¥"));

HIMAGELIST himlSmall;
HIMAGELIST himlLarge;
SHFILEINFO sfi;
char cSysDir[MAX_PATH];
CString strBuf;
memset(cSysDir,0,MAX_PATH);
GetWindowsDirectory(cSysDir,MAX_PATH);
strBuf = cSysDir;
sprintf(cSysDir,"%s",strBuf.Left(strBuf.Find("\")+1));
himlSmall = (HIMAGELIST)SHGetFileInfo((LPCSTR)cSysDir,0,&sfi,sizeof(SHFILEINFO),SHGFI_SYSICONINDEX|SHGFI_SMALLICON);
himlLarge = (HIMAGELIST)SHGetFileInfo((LPCSTR)cSysDir,0,&sfi,sizeof(SHFILEINFO),SHGFI_SYSICONINDEX|SHGFI_LARGEICON);
if(himlSmall && himlLarge)
{
::SendMessage(m_list1.m_hWnd,LVM_SETIMAGELIST,(WPARAM)LVSIL_SMALL,(LPARAM)himlSmall);
::SendMessage(m_list1.m_hWnd,LVM_SETIMAGELIST,(WPARAM)LVSIL_SMALL,(LPARAM)himlLarge);//LVSIL_NORMAL
}
m_list1.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);

readallinfo();

return 0;  // return TRUE  unless you set the focus to a control
}

void CfilesDlg::readallinfo()
{
CString strSQL;
int g =button_logo;
int open_logo;
switch(g)
{
    case 1:
open_logo =button_logo+3;
break;
case 2:
open_logo =button_logo+3;
break;
case 3:
open_logo =button_logo+3;
break;
}

//³õʼ»¯ListCtrl
CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST1);
pListCtrl->DeleteAllItems();
openbiao(open_logo);
if(m_pRecordset->BOF)
{
//closebiao();/////////////////¹Ø±ÕÁ¬½Ó////////////////////
return;
}
pListCtrl->SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);

m_pRecordset->MoveFirst();

double length;
int n = 0;
while (!m_pRecordset->isEOF)
{
_variant_t varValue;


int strNumber = NULL;
int strLength = NULL;
int strID = NULL;
CString strFile = _T("");

varValue = m_pRecordset->GetCollect(_variant_t(_T("ÐòºÅ")));
if (varValue.vt != VT_NULL)
{
strNumber = varValue.lVal;
}
else
{
strNumber = NULL;
}

varValue = m_pRecordset->GetCollect(_variant_t(_T("Îļþ´óС")));
if (varValue.vt != VT_NULL)
{
strLength = varValue.lVal;
length =(double)(strLength/1024.0/1024.0);
}
else
{
strLength = NULL;
}

varValue = m_pRecordset->GetCollect(_variant_t(_T("ÎļþÃû")));
if (varValue.vt != VT_NULL)
{
strFile = varValue.bstrVal;
}
else
{
strFile = _T("");
}

int gg =0;
        char *filename = (LPSTR)(LPCTSTR)strFile;
char name[64];
for(int g=0;filename[g]!='\0';g++)
{
if(filename[g] == '.')
{
for(;filename[g]!='\0';g++,gg++)
{
name[gg] = filename[g];
}
name[gg] = '\0';
break;
}
}

CString strText = "";
    m_list1.InsertItem(n,strFile,GetIconIndex(name,false,false));
strText.Format("%.2fM", length);
m_list1.SetItemText(n, 1, strText);
strText.Format("%d", strNumber);
m_list1.SetItemText(n, 2, strText);
    n++;
m_pRecordset->MoveNext();
}
closebiao(); /////////////////¹Ø±ÕÁ¬½Ó////////////////////
}

int CfilesDlg::GetIconIndex(LPCTSTR lpszPath, BOOL bIsDir, BOOL bSelected)
{
SHFILEINFO sfi;
memset(&sfi, 0, sizeof(sfi));
if(bIsDir)
{
SHGetFileInfo(lpszPath,FILE_ATTRIBUTE_DIRECTORY,&sfi,sizeof(sfi),SHGFI_SMALLICON|SHGFI_SYSICONINDEX|SHGFI_USEFILEATTRIBUTES|(bSelected ? SHGFI_OPENICON : 0));
return sfi.iIcon;
}
else
{
SHGetFileInfo(lpszPath,FILE_ATTRIBUTE_NORMAL,&sfi,sizeof(sfi),SHGFI_SMALLICON|SHGFI_SYSICONINDEX|SHGFI_USEFILEATTRIBUTES|(bSelected ? SHGFI_OPENICON : 0));
return sfi.iIcon;
}
return -1;
} MFC
[½â¾ö°ì·¨]
ÄãÏÔʾͼ±êÊÇÔÚOnInitDialog£¬ÓпÉÄÜÊÇÄã¶Ô»°¿òû¹Øµô£¬
Äã¹Ø±Õ×Ó¶Ô»°¿òµÄ´úÂëÌùÏ£¬Èç¹ûÿ´Î¶¼Óе÷ÓÃOnInitDialog£¬Ó¦¸ÃÊÇ»áÏÔʾµÄ
[½â¾ö°ì·¨]
CListCtrl    &RightList=pRight->GetListCtrl();
// set list style
LONG NewStyle=GetWindowLong(RightList.GetSafeHwnd(),GWL_STYLE);
NewStyle=(NewStyle & 0xFFFF0000)
[½â¾ö°ì·¨]
LVS_REPORT
[½â¾ö°ì·¨]
LVS_EDITLABELS
[½â¾ö°ì·¨]

                             LVS_SHOWSELALWAYS
[½â¾ö°ì·¨]
LVS_SHAREIMAGELISTS;
//


[½â¾ö°ì·¨]
LVS_SINGLESEL
[½â¾ö°ì·¨]
LVS_SORTASCENDING;
[½â¾ö°ì·¨]
LVS_AUTOARRANGE
SetWindowLong(RightList.GetSafeHwnd(),GWL_STYLE,NewStyle);

ϵͳ image ²»ÄÜɾ³ýµÄ

ÈȵãÅÅÐÐ