ÐÜèÉÕÏã

ÉÕÏãµÄ²»Ò»¶¨ÊǺÍÉУ¬Ò²¿ÉÄÜÊÇÐÜè

¡¡¡¡Á´½Ó±êÌ⣺Á÷¹â¡¡¡¡Á´½ÓÃèÊö£º
¡¡¡¡Á´½ÓµØÖ·£ºhttp://blog.163.com/liuguangqian_866¡¡¡¡¸üÐÂʱ¼ä£ºMon, 29 Sep 2008 16:04:17 +0800
¡¡¡¡RSS µØÖ·£ºhttp://blog.163.com/liuguangqian_866/rss/¡¡[¸´ÖÆRSSµØÖ·]¡¡¡¡¡¡ÍƼöÈË£ºÖÐÎÄRSS(CN-RSS.COM)


ÒýÓà ×îÐÂÈý¹ÄÌ·Û¹ã¸æÓï(תժ-½ö¹©ÓéÀÖ)

<div><P><EM>ÒýÓÃ</EM></P> <BLOCKQUOTE><A href="http://yanyan00180018.blog.163.com/" target=_blank>ÔÂÂúÎ÷Â¥</A> µÄ <A href="http://yanyan00180018.blog.163.com/blog/static/3956372008821113357119" target=_blank>×îÐÂÈý¹ÄÌ·Û¹ã¸æÓï(תժ)</A><BR> <P style="TEXT-INDENT: 2em"><FONT color=#0000ff size=5>1£¬ºÈÈýÂ¹ÅÆÄÌ·Û£¬µ±²Ð°Â»á¹Ú¾ü &nbsp; </FONT></P> <P style="TEXT-INDENT: 2em"><FONT color=#0000ff size=5>2£¬Èý¹ÄÌ·Û£¬Èý¾Û»¯¹¤¼¯ÍÅÈÙÓþ³öÆ· &nbsp; </FONT></P> <P style="TEXT-INDENT: 2em"><FONT color=#0000ff size=5>3£¬ºÈÈý¹£¬Äò×êʯ¡£Ò»°ãÈËÎÒ²»¸æËßËû &nbsp; </FONT></P> <P style="TEXT-INDENT: 2em"><FONT color=#0000ff size=5>4£¬Èý¹ÄÌ·Û£¬ºóÂèµÄÑ¡Ôñ &nbsp; </FONT></P> <P style="TEXT-INDENT: 2em"><FONT color=#0000ff size=5>5£¬Ã¿ÌìºÈÈý¹£¬Ö±±¼»ÆÈªÂ· &nbsp; </FONT></P> <P style="TEXT-INDENT: 2em"><FONT color=#0000ff size=5>6£¬Å£ÄÌ£¬ÎÒÑ¡Èý¹£¬Èý¹ţÄÌ¡ª¡ªÖйúÄÐ×ãÖ¸¶¨×¨ÓÃÄÌ &nbsp; </FONT></P> <P style="TEXT-INDENT: 2em"><FONT color=#0000ff size=5>7£¬Èý¹ÄÌ·ÛºÈÁËÒԺ󣬺٣¬ÕâÑüÒ²²»ÌÛÁË£¬ÍÈÒ²²»ËáÁË£¬Á¬ÐÄÔàÒ²²»ÌøÁË¡­¡­</FONT></P></BLOCKQUOTE></div>
¡¡¡¡[ÔĶÁÈ«ÎÄ]¡¡¡¡[·µ»ØÒ³Ê×]

CListCtrlʹÓü¼ÇÉ

<div><P style="TEXT-INDENT: 2em">ÒÔÏÂδ¾­ËµÃ÷£¬listctrlĬÈÏview ·ç¸ñΪreport</P> <P style="TEXT-INDENT: 2em">1. CListCtrl ·ç¸ñ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LVS_ICON: Ϊÿ¸öitemÏÔʾ´óͼ±ê</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LVS_SMALLICON: Ϊÿ¸öitemÏÔʾСͼ±ê</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LVS_LIST: ÏÔʾһÁдøÓÐСͼ±êµÄitem</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LVS_REPORT: ÏÔʾitemÏêϸ×ÊÁÏ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ö±¹ÛµÄÀí½â£ºwindows×ÊÔ´¹ÜÀíÆ÷£¬¡°²é¿´¡±±êǩϵġ°´óͼ±ê£¬Ð¡Í¼±ê£¬ÁÐ±í£¬Ïêϸ×ÊÁÏ¡±</P> <P style="TEXT-INDENT: 2em">2. ÉèÖÃlistctrl ·ç¸ñ¼°À©Õ¹·ç¸ñ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LONG lStyle;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);//»ñÈ¡µ±Ç°´°¿Ústyle</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lStyle &amp;= ~LVS_TYPEMASK; //Çå³ýÏÔʾ·½Ê½Î»</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lStyle |= LVS_REPORT; //ÉèÖÃstyle</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SetWindowLong(m_list.m_hWnd, GWL_STYLE, lStyle);//ÉèÖÃstyle</P> <P style="TEXT-INDENT: 2em">&nbsp;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DWORD dwStyle = m_list.GetExtendedStyle();</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dwStyle |= LVS_EX_FULLROWSELECT;//Ñ¡ÖÐijÐÐʹÕûÐиßÁÁ£¨Ö»ÊÊÓÃÓëreport·ç¸ñµÄlistctrl£©</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dwStyle |= LVS_EX_GRIDLINES;//Íø¸ñÏߣ¨Ö»ÊÊÓÃÓëreport·ç¸ñµÄlistctrl£©</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dwStyle |= LVS_EX_CHECKBOXES;//itemǰÉú³Écheckbox¿Ø¼þ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_list.SetExtendedStyle(dwStyle); //ÉèÖÃÀ©Õ¹·ç¸ñ</P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ×¢£ºlistviewµÄstyleÇë²éÔÄmsdn</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceshellui5/html/wce50lrflistviewstyles.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceshellui5/html/wce50lrflistviewstyles.asp</A></P> <P style="TEXT-INDENT: 2em">3. ²åÈëÊý¾Ý</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_list.InsertColumn( 0, "ID", LVCFMT_LEFT, 40 );//²åÈëÁÐ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_list.InsertColumn( 1, "NAME", LVCFMT_LEFT, 50 );</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int nRow = m_list.InsertItem(0, ¡°11¡±);//²åÈëÐÐ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_list.SetItemText(nRow, 1, ¡°jacky¡±);//ÉèÖÃÊý¾Ý</P> <P style="TEXT-INDENT: 2em">4. һֱѡÖÐitem</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; Ñ¡ÖÐstyleÖеÄShow selection always£¬»òÕßÔÚÉÏÃæµÚ2µãÖÐÉèÖÃLVS_SHOWSELALWAYS</P> <P style="TEXT-INDENT: 2em">5. Ñ¡ÖкÍÈ¡ÏûÑ¡ÖÐÒ»ÐÐ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; int nIndex = 0;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; //Ñ¡ÖÐ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; m_list.SetItemState(nIndex, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; //È¡ÏûÑ¡ÖÐ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; m_list.SetItemState(nIndex, 0, LVIS_SELECTED|LVIS_FOCUSED);</P> <P style="TEXT-INDENT: 2em">6. µÃµ½listctrlÖÐËùÓÐÐеÄcheckboxµÄ״̬</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_list.SetExtendedStyle(LVS_EX_CHECKBOXES);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CString str;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0; i&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED || m_list.GetCheck(i))</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str.Format(_T("µÚ%dÐеÄcheckboxΪѡÖÐ״̬"), i);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AfxMessageBox(str);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">7. µÃµ½listctrlÖÐËùÓÐÑ¡ÖÐÐеÄÐòºÅ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; ·½·¨Ò»£º</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CString str;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0; i&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED )</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str.Format(_T("Ñ¡ÖÐÁ˵Ú%dÐÐ"), i);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AfxMessageBox(str);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ·½·¨¶þ£º</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; POSITION pos = m_list.GetFirstSelectedItemPosition();</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (pos == NULL)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TRACE0("No items were selected!\n");</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (pos)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int nItem = m_list.GetNextSelectedItem(pos);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TRACE1("Item %d was selected!\n", nItem);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // you could do your own processing on nItem here</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">8. µÃµ½itemµÄÐÅÏ¢</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TCHAR szBuf[1024];</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LVITEM lvi;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lvi.iItem = nItemIndex;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lvi.iSubItem = 0;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lvi.mask = LVIF_TEXT;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lvi.pszText = szBuf;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lvi.cchTextMax = 1024;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_list.GetItem(&amp;lvi);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ¹ØÓڵõ½ÉèÖÃitemµÄ״̬£¬»¹¿ÉÒԲο¼msdnÎÄÕÂ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Q173242: Use Masks to Set/Get Item States in CListCtrl</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://support.microsoft.com/kb/173242/en-us">http://support.microsoft.com/kb/173242/en-us</A></P> <P style="TEXT-INDENT: 2em">9. µÃµ½listctrlµÄËùÓÐÁеÄheader×Ö·û´®ÄÚÈÝ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LVCOLUMN lvcol;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char&nbsp; str[256];</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp; nColNum;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CString&nbsp; strColumnName[4];//¼ÙÈçÓÐ4ÁÐ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nColNum = 0;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lvcol.mask = LVCF_TEXT;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lvcol.pszText = str;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lvcol.cchTextMax = 256;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(m_list.GetColumn(nColNum, &amp;lvcol))</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strColumnName[nColNum] = lvcol.pszText;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nColNum++;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">10. ʹlistctrlÖÐÒ»Ïî¿É¼û£¬¼´¹ö¶¯¹ö¶¯Ìõ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; m_list.EnsureVisible(i, FALSE);</P> <P style="TEXT-INDENT: 2em">11. µÃµ½listctrlÁÐÊý</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; int nHeadNum = m_list.GetHeaderCtrl()-&gt;GetItemCount();</P> <P style="TEXT-INDENT: 2em">12. ɾ³ýËùÓÐÁÐ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &nbsp; ·½·¨Ò»£º</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; while ( m_list.DeleteColumn (0))</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; ÒòΪÄãɾ³ýÁ˵ÚÒ»Áк󣬺óÃæµÄÁлáÒÀ´ÎÏòÉÏÒÆ¶¯¡£</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &nbsp; ·½·¨¶þ£º</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int nColumns = 4;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i=nColumns-1; i&gt;=0; i--)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_list.DeleteColumn (i);</P> <P style="TEXT-INDENT: 2em">13. µÃµ½µ¥»÷µÄlistctrlµÄÐÐÁкÅ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ìí¼Ólistctrl¿Ø¼þµÄNM_CLICKÏûÏ¢ÏàÓ¦º¯Êý</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void CTest6Dlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ·½·¨Ò»£º</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DWORD dwPos = GetMessagePos();</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CPoint point( LOWORD(dwPos), HIWORD(dwPos) );</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_list.ScreenToClient(&amp;point);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LVHITTESTINFO lvinfo;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lvinfo.pt = point;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lvinfo.flags = LVHT_ABOVE;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int nItem = m_list.SubItemHitTest(&amp;lvinfo);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(nItem != -1)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CString strtemp;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strtemp.Format("µ¥»÷µÄÊǵÚ%dÐеÚ%dÁÐ", lvinfo.iItem, lvinfo.iSubItem);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AfxMessageBox(strtemp);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // ·½·¨¶þ:</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(pNMListView-&gt;iItem != -1)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CString strtemp;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strtemp.Format("µ¥»÷µÄÊǵÚ%dÐеÚ%dÁÐ",</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pNMListView-&gt;iItem, pNMListView-&gt;iSubItem);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AfxMessageBox(strtemp);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *pResult = 0;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">14. ÅжÏÊÇ·ñµã»÷ÔÚlistctrlµÄcheckboxÉÏ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ìí¼Ólistctrl¿Ø¼þµÄNM_CLICKÏûÏ¢ÏàÓ¦º¯Êý</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void CTest6Dlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DWORD dwPos = GetMessagePos();</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CPoint point( LOWORD(dwPos), HIWORD(dwPos) );</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_list.ScreenToClient(&amp;point);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LVHITTESTINFO lvinfo;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lvinfo.pt = point;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lvinfo.flags = LVHT_ABOVE;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UINT nFlag;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int nItem = m_list.HitTest(point, &amp;nFlag);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //ÅжÏÊÇ·ñµãÔÚcheckboxÉÏ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(nFlag == LVHT_ONITEMSTATEICON)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AfxMessageBox("µãÔÚlistctrlµÄcheckboxÉÏ");</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *pResult = 0;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">15. ÓÒ¼üµã»÷listctrlµÄitemµ¯³ö²Ëµ¥</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ìí¼Ólistctrl¿Ø¼þµÄNM_RCLICKÏûÏ¢ÏàÓ¦º¯Êý</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void CTest6Dlg::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(pNMListView-&gt;iItem != -1)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DWORD dwPos = GetMessagePos();</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CPoint point( LOWORD(dwPos), HIWORD(dwPos) );</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CMenu menu;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VERIFY( menu.LoadMenu( IDR_MENU1 ) );</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CMenu* popup = menu.GetSubMenu(0);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ASSERT( popup != NULL );</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; popup-&gt;TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this );</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *pResult = 0;</P> <P style="TEXT-INDENT: 2em">&nbsp; }</P> <P style="TEXT-INDENT: 2em">16. itemÇл»½¹µãʱ(°üÀ¨ÓüüÅ̺ÍÊó±êÇл»itemʱ)£¬×´Ì¬µÄһЩ±ä»¯Ë³Ðò</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ìí¼Ólistctrl¿Ø¼þµÄLVN_ITEMCHANGEDÏûÏ¢ÏàÓ¦º¯Êý</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void CTest6Dlg::OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // TODO: Add your control notification handler code here</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CString sTemp;</P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if((pNMListView-&gt;uOldState &amp; LVIS_FOCUSED) == LVIS_FOCUSED &amp;&amp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (pNMListView-&gt;uNewState &amp; LVIS_FOCUSED) == 0)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sTemp.Format("%d losted focus",pNMListView-&gt;iItem);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if((pNMListView-&gt;uOldState &amp; LVIS_FOCUSED) == 0 &amp;&amp;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (pNMListView-&gt;uNewState &amp; LVIS_FOCUSED) == LVIS_FOCUSED)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sTemp.Format("%d got focus",pNMListView-&gt;iItem);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if((pNMListView-&gt;uOldState &amp; LVIS_SELECTED) == LVIS_SELECTED &amp;&amp;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (pNMListView-&gt;uNewState &amp; LVIS_SELECTED) == 0)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sTemp.Format("%d losted selected",pNMListView-&gt;iItem);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if((pNMListView-&gt;uOldState &amp; LVIS_SELECTED) == 0 &amp;&amp;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (pNMListView-&gt;uNewState &amp; LVIS_SELECTED) == LVIS_SELECTED)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sTemp.Format("%d got selected",pNMListView-&gt;iItem);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *pResult = 0;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">17. µÃµ½ÁíÒ»¸ö½ø³ÌÀïµÄlistctrl¿Ø¼þµÄitemÄÚÈÝ</P> <P style="TEXT-INDENT: 2em">&nbsp;<A href="http://www.codeproject.com/threads/int64_memsteal.asp">http://www.codeproject.com/threads/int64_memsteal.asp</A></P> <P style="TEXT-INDENT: 2em">18. Ñ¡ÖÐlistviewÖеÄitem </P> <P style="TEXT-INDENT: 2em">Q131284: How To Select a Listview Item Programmatically</P> <P style="TEXT-INDENT: 2em"><A href="http://support.microsoft.com/kb/131284/en-us">http://support.microsoft.com/kb/131284/en-us</A></P> <P style="TEXT-INDENT: 2em"></P> <P style="TEXT-INDENT: 2em">19. ÈçºÎÔÚCListViewÖÐʹÓÃCListCtrlµÄÅÉÉúÀà</P> <P style="TEXT-INDENT: 2em"><A href="http://www.codeguru.com/cpp/controls/listview/introduction/article.php/c919/">http://www.codeguru.com/cpp/controls/listview/introduction/article.php/c919/</A></P> <P style="TEXT-INDENT: 2em"></P> <P style="TEXT-INDENT: 2em">&nbsp;20. listctrlµÄsubitemÌí¼Óͼ±ê</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_list.SetExtendedStyle(LVS_EX_SUBITEMIMAGES);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_list.SetItem(..); //¾ßÌå²ÎÊýÇë²Î¿¼msdn</P> <P style="TEXT-INDENT: 2em">&nbsp;21. ÔÚCListCtrlÏÔʾÎļþ£¬²¢¸ù¾ÝÎļþÀàÐÍÀ´ÏÔʾͼ±ê</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ÍøÉÏÕÒµ½µÄ´úÂ룬share</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BOOL CTest6Dlg::OnInitDialog()</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDialog::OnInitDialog();</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HIMAGELIST himlSmall;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HIMAGELIST himlLarge;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHFILEINFO sfi;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char&nbsp; cSysDir[MAX_PATH];</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CString&nbsp; strBuf;</P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memset(cSysDir, 0, MAX_PATH);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetWindowsDirectory(cSysDir, MAX_PATH);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strBuf = cSysDir;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sprintf(cSysDir, "%s", strBuf.Left(strBuf.Find("<A href="file:///">\\")+1</A>));</P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; himlSmall = (HIMAGELIST)SHGetFileInfo ((LPCSTR)cSysDir,&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0,&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;sfi, </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof(SHFILEINFO),&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHGFI_SYSICONINDEX | SHGFI_SMALLICON );</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; himlLarge = (HIMAGELIST)SHGetFileInfo((LPCSTR)cSysDir,&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0,&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;sfi,&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof(SHFILEINFO),&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHGFI_SYSICONINDEX | SHGFI_LARGEICON);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (himlSmall &amp;&amp; himlLarge)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ::SendMessage(m_list.m_hWnd, LVM_SETIMAGELIST,</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (WPARAM)LVSIL_SMALL, (LPARAM)himlSmall);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ::SendMessage(m_list.m_hWnd, LVM_SETIMAGELIST,</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (WPARAM)LVSIL_NORMAL, (LPARAM)himlLarge);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return TRUE;&nbsp; // return TRUE&nbsp; unless you set the focus to a control</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void CTest6Dlg::AddFiles(LPCTSTR lpszFileName, BOOL bAddToDocument)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int nIcon = GetIconIndex(lpszFileName, FALSE, FALSE);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CString strSize;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CFileFind filefind;</P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp; get file size</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (filefind.FindFile(lpszFileName))</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; filefind.FindNextFile();</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strSize.Format("%d", filefind.GetLength());</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strSize = "0";</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // split path and filename</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CString strFileName = lpszFileName;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CString strPath;</P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int nPos = strFileName.ReverseFind('\\');</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (nPos != -1)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strPath = strFileName.Left(nPos);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strFileName = strFileName.Mid(nPos + 1);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // insert to list</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int nItem = m_list.GetItemCount();</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_list.InsertItem(nItem, strFileName, nIcon);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_list.SetItemText(nItem, 1, strSize);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_list.SetItemText(nItem, 2, strFileName.Right(3));</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_list.SetItemText(nItem, 3, strPath);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int CTest6Dlg::GetIconIndex(LPCTSTR lpszPath, BOOL bIsDir, BOOL bSelected)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHFILEINFO sfi;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memset(&amp;sfi, 0, sizeof(sfi));</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (bIsDir)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHGetFileInfo(lpszPath,&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FILE_ATTRIBUTE_DIRECTORY,&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;sfi,&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof(sfi),&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHGFI_SMALLICON | SHGFI_SYSICONINDEX |</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHGFI_USEFILEATTRIBUTES |(bSelected ? SHGFI_OPENICON : 0));&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp; sfi.iIcon;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHGetFileInfo (lpszPath,&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FILE_ATTRIBUTE_NORMAL,&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;sfi,&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof(sfi),&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHGFI_SMALLICON | SHGFI_SYSICONINDEX |&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHGFI_USEFILEATTRIBUTES | (bSelected ? SHGFI_OPENICON : 0));</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp;&nbsp; sfi.iIcon;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return&nbsp; -1;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P style="TEXT-INDENT: 2em">22. listctrlÄÚÈݽøÐдóÊý¾ÝÁ¿¸üÐÂʱ£¬±ÜÃâÉÁ˸</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_list.SetRedraw(FALSE);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //¸üÐÂÄÚÈÝ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_list.SetRedraw(TRUE);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_list.Invalidate();</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_list.UpdateWindow();</P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">»òÕ߲ο¼ </P> <P style="TEXT-INDENT: 2em"><A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cwnd.3a3a.setredraw.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cwnd.3a3a.setredraw.asp</A></P> <P style="TEXT-INDENT: 2em">23. listctrlÅÅÐò </P> <P style="TEXT-INDENT: 2em">Q250614£ºHow To Sort Items in a CListCtrl in Report View</P> <P style="TEXT-INDENT: 2em"><A href="http://support.microsoft.com/kb/250614/en-us">http://support.microsoft.com/kb/250614/en-us</A></P> <P style="TEXT-INDENT: 2em">24. ÔÚlistctrlÖÐÑ¡ÖÐij¸öitemʱ¶¯Ì¬¸Ä±äÆäicon»òbitmap</P> <P style="TEXT-INDENT: 2em">Q141834: How to change the icon or the bitmap of a CListCtrl item in Visual C++</P> <P style="TEXT-INDENT: 2em"><A href="http://support.microsoft.com/kb/141834/en-us">http://support.microsoft.com/kb/141834/en-us</A></P> <P style="TEXT-INDENT: 2em">25. ÔÚÌí¼Óitemºó£¬ÔÙInsertColumn()ºóµ¼ÖÂÕûÁÐÊý¾ÝÒÆ¶¯µÄÎÊÌâ</P> <P style="TEXT-INDENT: 2em">Q151897: CListCtrl::InsertColumn() Causes Column Data to Shift </P> <P style="TEXT-INDENT: 2em"><A href="http://support.microsoft.com/kb/151897/en-us">http://support.microsoft.com/kb/151897/en-us</A></P> <P style="TEXT-INDENT: 2em">26. ¹ØÓÚlistctrlµÚÒ»ÁÐʼÖÕ¾Ó×óµÄÎÊÌâ</P> <P style="TEXT-INDENT: 2em">½â¾ö°ì·¨£º°ÑµÚÒ»Áе±Ò»¸öÐéÁУ¬´ÓµÚ¶þÁпªÊ¼²åÈëÁм°Êý¾Ý£¬×îºóɾ³ýµÚÒ»ÁС£</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">¾ßÌå½âÊͲÎÔÄ&nbsp;&nbsp; <A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/listview/structures/lvcolumn.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/listview/structures/lvcolumn.asp</A></P> <P style="TEXT-INDENT: 2em">27. Ëø¶¨column headerµÄÍ϶¯</P> <P style="TEXT-INDENT: 2em"><A href="http://msdn.microsoft.com/msdnmag/issues/03/06/CQA/">http://msdn.microsoft.com/msdnmag/issues/03/06/CQA/</A></P> <P style="TEXT-INDENT: 2em">28. ÈçºÎÒþ²ØclistctrlµÄÁÐ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; °ÑÐèÒþ²ØµÄÁеĿí¶ÈÉèΪ0,È»ºó¼ì²âµ±¸ÃÁÐΪÒþ²ØÁÐʱ£¬ÓÃÉÏÃæµÚ27µãµÄËø¶¨column µÄÍ϶¯À´ÊµÏÖ</P> <P style="TEXT-INDENT: 2em">29. listctrl½øÐдóÊý¾ÝÁ¿²Ù×÷ʱ£¬Ê¹ÓÃvirtual list&nbsp;&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em"><A href="http://www.codeguru.com/cpp/controls/listview/advanced/article.php/c4151/">http://www.codeguru.com/cpp/controls/listview/advanced/article.php/c4151/</A></P> <P style="TEXT-INDENT: 2em"><A href="http://www.codeproject.com/listctrl/virtuallist.asp">http://www.codeproject.com/listctrl/virtuallist.asp</A></P> <P style="TEXT-INDENT: 2em">30. ¹ØÓÚitemÖ»ÄÜÏÔʾ259¸ö×Ö·ûµÄÎÊÌâ</P> <P style="TEXT-INDENT: 2em">½â¾ö°ì·¨£ºÐèÒªÔÚitemÉÏ·ÅÒ»¸öedit¡£</P> <P style="TEXT-INDENT: 2em">31. ÏìÓ¦ÔÚlistctrlµÄcolumn headerÉϵÄÊó±êÓÒ¼üµ¥»÷</P> <P style="TEXT-INDENT: 2em">Q125694: How To Find Out Which Listview Column Was Right-Clicked</P> <P style="TEXT-INDENT: 2em"><A href="http://support.microsoft.com/kb/125694/en-us">http://support.microsoft.com/kb/125694/en-us</A></P> <P style="TEXT-INDENT: 2em">32. ÀàËÆÓÚwindows×ÊÔ´¹ÜÀíÆ÷µÄlistview</P> <P style="TEXT-INDENT: 2em">Q234310: How to imple**** ListView control that is similar to Windows Explorer by using DirLV.exe</P> <P style="TEXT-INDENT: 2em"><A href="http://support.microsoft.com/kb/234310/en-us">http://support.microsoft.com/kb/234310/en-us</A></P> <P style="TEXT-INDENT: 2em">33. ÔÚListCtrlÖÐOnTimerÖ»ÏìÓ¦Á½´ÎµÄÎÊÌâ</P> <P style="TEXT-INDENT: 2em">Q200054£º</P> <P style="TEXT-INDENT: 2em">PRB: OnTimer() Is Not Called Repeatedly for a List Control</P> <P style="TEXT-INDENT: 2em"><A href="http://support.microsoft.com/kb/200054/en-us">http://support.microsoft.com/kb/200054/en-us</A></P> <P style="TEXT-INDENT: 2em">34. ÒÔÏÂΪһЩΪʵÏÖ¸÷ÖÖ×Ô¶¨Ò幦ÄܵÄlistctrlÅÉÉúÀà</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1)&nbsp;&nbsp;&nbsp; ÍÏ·Å&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/listctrl/dragtest.asp">http://www.codeproject.com/listctrl/dragtest.asp</A></P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ÔÚCListCtrlºÍCTreeCtrl¼äÍÏ·Å</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://support.microsoft.com/kb/148738/en-us">http://support.microsoft.com/kb/148738/en-us</A></P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (2)&nbsp;&nbsp;&nbsp; ¶à¹¦ÄÜlistctrl</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ö§³Ösubitem¿É±à¼­£¬Í¼±ê£¬radiobutton£¬checkbox£¬×Ö·û´®¸Ä±äÑÕÉ«µÄÀà</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/listctrl/quicklist.asp">http://www.codeproject.com/listctrl/quicklist.asp</A></P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ö§³ÖÅÅÐò£¬subitem¿É±à¼­£¬subitemͼ±ê£¬subitem¸Ä±äÑÕÉ«µÄÀà</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/listctrl/ReportControl.asp">http://www.codeproject.com/listctrl/ReportControl.asp</A></P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (3)&nbsp;&nbsp;&nbsp; subitemÖÐÏÔʾ³¬Á´½Ó</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/listctrl/CListCtrlLink.asp">http://www.codeproject.com/listctrl/CListCtrlLink.asp</A></P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (4)&nbsp;&nbsp;&nbsp; subitemµÄtooltipÌáʾ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/listctrl/ctooltiplistctrl.asp">http://www.codeproject.com/listctrl/ctooltiplistctrl.asp</A></P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (5)&nbsp;&nbsp;&nbsp; subitemÖÐÏÔʾ½ø¶ÈÌõ&nbsp;&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/listctrl/ProgressListControl.asp">http://www.codeproject.com/listctrl/ProgressListControl.asp</A></P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/listctrl/napster.asp">http://www.codeproject.com/listctrl/napster.asp</A></P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeguru.com/Cpp/controls/listview/article.php/c4187/">http://www.codeguru.com/Cpp/controls/listview/article.php/c4187/</A></P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (6)&nbsp;&nbsp;&nbsp; ¶¯Ì¬¸Ä±äsubitemµÄÑÕÉ«ºÍ±³¾°É«</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/listctrl/highlightlistctrl.asp">http://www.codeproject.com/listctrl/highlightlistctrl.asp</A></P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <A href="http://www.codeguru.com/Cpp/controls/listbox/colorlistboxes/article.php/c4757/">http://www.codeguru.com/Cpp/controls/listbox/colorlistboxes/article.php/c4757/</A></P> <P style="TEXT-INDENT: 2em">&nbsp;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (7)&nbsp;&nbsp;&nbsp; ÀàvbÊôÐÔ¶Ô»°¿ò</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/listctrl/propertylistctrl.asp">http://www.codeproject.com/listctrl/propertylistctrl.asp</A></P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeguru.com/Cpp/controls/listview/propertylists/article.php/c995/">http://www.codeguru.com/Cpp/controls/listview/propertylists/article.php/c995/</A> </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeguru.com/Cpp/controls/listview/propertylists/article.php/c1041/">http://www.codeguru.com/Cpp/controls/listview/propertylists/article.php/c1041/</A> </P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (8)&nbsp;&nbsp;&nbsp; Ñ¡ÖÐsubitem(Ö»¸ßÁÁÑ¡ÖеÄitem)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/listctrl/SubItemSel.asp">http://www.codeproject.com/listctrl/SubItemSel.asp</A></P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/listctrl/ListSubItSel.asp">http://www.codeproject.com/listctrl/ListSubItSel.asp</A></P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (9)&nbsp;&nbsp;&nbsp; ¸Ä±äÐиß</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/listctrl/changerowheight.asp">http://www.codeproject.com/listctrl/changerowheight.asp</A></P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (10)&nbsp;&nbsp; ¸Ä±äÐÐÑÕÉ«</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/listctrl/coloredlistctrl.asp">http://www.codeproject.com/listctrl/coloredlistctrl.asp</A></P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (11)&nbsp;&nbsp; ¿É±à¼­subitemµÄlistctrl</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/listctrl/nirs2000.asp">http://www.codeproject.com/listctrl/nirs2000.asp</A></P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/listctrl/editing_subitems_in_listcontrol.asp">http://www.codeproject.com/listctrl/editing_subitems_in_listcontrol.asp</A></P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (12)&nbsp;&nbsp; subitem¿É±à¼­£¬²åÈëcombobox£¬¸Ä±äÐÐÑÕÉ«£¬subitemµÄtooltipÌáʾ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/listctrl/reusablelistcontrol.asp">http://www.codeproject.com/listctrl/reusablelistcontrol.asp</A></P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (13)&nbsp;&nbsp; header ÖÐÔÊÐí¶àÐÐ×Ö·û´®</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/listctrl/headerctrlex.asp">http://www.codeproject.com/listctrl/headerctrlex.asp</A></P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (14)&nbsp;&nbsp; ²åÈëcombobox</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeguru.com/Cpp/controls/listview/editingitemsandsubitem/article.php/c979/">http://www.codeguru.com/Cpp/controls/listview/editingitemsandsubitem/article.php/c979/</A></P> <P style="TEXT-INDENT: 2em">&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (15)&nbsp;&nbsp; Ìí¼Ó±³¾°Í¼Æ¬</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeguru.com/Cpp/controls/listview/backgroundcolorandimage/article.php/c4173/">http://www.codeguru.com/Cpp/controls/listview/backgroundcolorandimage/article.php/c4173/</A></P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeguru.com/Cpp/controls/listview/backgroundcolorandimage/article.php/c983/">http://www.codeguru.com/Cpp/controls/listview/backgroundcolorandimage/article.php/c983/</A></P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.vchelp.net/vchelp/archive.asp?type_id=9&amp;class_id=1&amp;cata_id=1&amp;article_id=1088&amp;search_term">http://www.vchelp.net/vchelp/archive.asp?type_id=9&amp;class_id=1&amp;cata_id=1&amp;article_id=1088&amp;search_term</A>=</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (16)&nbsp; ×ÔÊÊÓ¦¿í¶ÈµÄlistctrl</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/useritems/AutosizeListCtrl.asp">http://www.codeproject.com/useritems/AutosizeListCtrl.asp</A></P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; (17)&nbsp; ¸Ä±äListCtrl¸ßÁÁʱµÄÑÕÉ«(ĬÈÏΪÀ¶É«)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; ´¦Àí</P> <P style="TEXT-INDENT: 2em">NM_CUSTOMDRAW </P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <A href="http://www.codeproject.com/listctrl/lvcustomdraw.asp">http://www.codeproject.com/listctrl/lvcustomdraw.asp</A></P> <P style="TEXT-INDENT: 2em">CListCtrlʹÓÃÏê½â </P> <P style="TEXT-INDENT: 2em">1¡£ÏÈÀ´½éÉÜREPORTÀàÐ͵ÄCListCtrl£º</P> <P style="TEXT-INDENT: 2em">Ê×ÏÈʹÓÃÏÂÃæµÄÓï¾äÉèÖÃCListCtrlµÄstyle£º</P> <P style="TEXT-INDENT: 2em">&nbsp;DWORD SetExtendedStyle( DWORD dwNewStyle );</P> <P style="TEXT-INDENT: 2em">ÆäÖÐ</P> <P style="TEXT-INDENT: 2em">&nbsp;LVS_EX_CHECKBOXES&nbsp;±íʾÌí¼ÓCheckBox</P> <P style="TEXT-INDENT: 2em">&nbsp;LVS_EX_FULLROWSELECT&nbsp;±íʾѡÔñÕûÐÐ</P> <P style="TEXT-INDENT: 2em">&nbsp;LVS_EX_GRIDLINES&nbsp;±íʾÌí¼Ó±í¸ñÏß</P> <P style="TEXT-INDENT: 2em">Èç¹ûÉèÖÃÁËLVS_EX_CHECKBOXESÊôÐÔ£¬Ôò¿ÉÒÔÓÃ</P> <P style="TEXT-INDENT: 2em">&nbsp;BOOL GetCheck( int nItem ) const;</P> <P style="TEXT-INDENT: 2em">À´µÃµ½Ä³Ò»ÐÐÊÇ·ñChecked¡£</P> <P style="TEXT-INDENT: 2em">¿ÉÒÔÏÈÓÃÏÂÃæµÄÓï¾äÀ´É¾³ýÒÔǰµÄ¶«Î÷£º</P> <P style="TEXT-INDENT: 2em">&nbsp;for(int k=2;k&gt;=0;k--)&nbsp;//×¢ÒâÒª´ÓºóÍùǰɾ£¬·ñÔò³ö´í</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;m_ListCtrl.DeleteColumn(k);</P> <P style="TEXT-INDENT: 2em">&nbsp;m_ListCtrl.DeleteAllItems();</P> <P style="TEXT-INDENT: 2em">ÓÃÏÂÃæµÄÓï¾äн¨ÁУº</P> <P style="TEXT-INDENT: 2em">&nbsp;m_ListCtrl.InsertColumn(0,_T("ÎļþÃû"),LVCFMT_IMAGE|LVCFMT_LEFT);</P> <P style="TEXT-INDENT: 2em">&nbsp;m_ListCtrl.InsertColumn(1,_T("ÒÇÆ÷Àà±ð"));</P> <P style="TEXT-INDENT: 2em">&nbsp;m_ListCtrl.InsertColumn(2,_T("ÏîÄ¿Àà±ð"));</P> <P style="TEXT-INDENT: 2em">&nbsp;</P> <P style="TEXT-INDENT: 2em">ÆäÖÐLVCFMT_IMAGE±íʾ¿ÉÒÔÔÚµÚÒ»ÁмÓÈëͼ±ê¡£Èç¹û²»ÒªÍ¼±ê¿ÉÒÔɾȥ¡£</P> <P style="TEXT-INDENT: 2em">È»ºóÉèÖÃÁÐ¿í£º</P> <P style="TEXT-INDENT: 2em">&nbsp;for(j=0;j&lt;3;j++)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;m_ListCtrl.SetColumnWidth(j ,100);</P> <P style="TEXT-INDENT: 2em">&nbsp;</P> <P style="TEXT-INDENT: 2em">ÒÔÏÂΪÁбí¼ÓÈëͼ±ê£¬Èç¹û²»ÐèҪͼ±ê£¬¿ÉÒÔÌø¹ýÕâÒ»²½¡£×¢ÒâÖ»ÔÚµÚÒ»´Î¼ÓÈ룬Èç¹û¶à´Î¼ÓÈë»á³ö´í£¡</P> <P style="TEXT-INDENT: 2em">ÏÈÔÚÍ·ÎļþÖмÓÈëÉùÃ÷£º</P> <P style="TEXT-INDENT: 2em">&nbsp;CImageList m_ImageList;</P> <P style="TEXT-INDENT: 2em">ÕâÊDZØÒªµÄ£¬Èç¹ûÔÚcppµÄij¸öº¯ÊýÖмÓÈëÓÉÓÚÉúÃüÆÚ½áÊø£¬CImageList×Ô¶¯ÊÍ·Å£¬ÔòЧ¹ûÊÇÁбíÖп´²»µ½Í¼±ê£¬Ö»¿´µ½Ò»¸ö°×·½¿é¡£</P> <P style="TEXT-INDENT: 2em">ÏÂÃæÉú³ÉCImageList£¬²¢½«Æä°ó¶¨µ½CListCtrlÖУ¬ÕâÊÇCImageListÖл¹Ã»ÓÐͼ±ê£¬Ö»ÊÇÒ»¸öÈÝÆ÷£º</P> <P style="TEXT-INDENT: 2em">&nbsp;static int flag=2;</P> <P style="TEXT-INDENT: 2em">&nbsp;if(flag==2){//Ö»µ÷ÓÃÒ»´ÎSetImageList£¬·ñÔò³ö´í</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;m_ImageList.Create(128, 128, ILC_COLORDDB|ILC_MASK, 20, 1);&nbsp;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;m_ListCtrl.SetImageList(&amp;m_ImageList,LVSIL_SMALL);</P> <P style="TEXT-INDENT: 2em">&nbsp;}</P> <P style="TEXT-INDENT: 2em">&nbsp;flag=(flag+1)%2;</P> <P style="TEXT-INDENT: 2em">Èç¹ûCListCtrlÒѾ­Óùý£¬Ôø¾­¼Ó¹ýͼ±ê½øÈ¥£¬Õâʱ¾ÍҪɾ³ýÉϴηŽøm_ImageListÖеÄImage</P> <P style="TEXT-INDENT: 2em">&nbsp;for(int kk=0;kk&lt;m_ImageList.GetImageCount();kk++)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;m_ImageList.Remove(k);</P> <P style="TEXT-INDENT: 2em">&nbsp;</P> <P style="TEXT-INDENT: 2em">ÏÂÃæ½éÉÜÈçºÎÏòCListCtrlÀïÃæ¼ÓÈëÐУ¬²¢Í¬Ê±ÎªÃ¿Ò»Ðж¯Ì¬¼ÓÈëͼ±ê£º</P> <P style="TEXT-INDENT: 2em">¼ÙÉèm_listRowCountΪҪ¼ÓÈëµÄÐÐÊý¡£</P> <P style="TEXT-INDENT: 2em">&nbsp;CBitmap* bitmap;</P> <P style="TEXT-INDENT: 2em">&nbsp;bitmap=new CBitmap[m_list1rowCount];</P> <P style="TEXT-INDENT: 2em">&nbsp;HBITMAP hbitmap;&nbsp;</P> <P style="TEXT-INDENT: 2em">&nbsp;</P> <P style="TEXT-INDENT: 2em">&nbsp;for(int i = 0; i &lt; m_listRowCount; i++)</P> <P style="TEXT-INDENT: 2em">&nbsp;{</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;//ΪÿһÐвåÈëÏàÓ¦µÄËõÂÔͼ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;CFile f;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;CFileException e;&nbsp;&nbsp;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;if( !f.Open(m_FileName, CFile::modeRead, &amp;e )){&nbsp;//m_FileNameΪbmpÎļþÃû£¬ÓÉÄãÀ´¶¨</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;hbitmap = (HBITMAP)LoadImage(NULL,path+"blank.bmp",IMAGE_BITMAP,0,0,</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;LR_CREATEDIBSECTION|LR_DEFAULTSIZE|LR_LOADFROMFILE);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;}else{</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;f.Close();</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;hbitmap = (HBITMAP)LoadImage(NULL,bmpFile,IMAGE_BITMAP,0,0,</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;LR_CREATEDIBSECTION|LR_DEFAULTSIZE|LR_LOADFROMFILE);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;}</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;bitmap[i].Attach(hbitmap);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;m_ImageList.Add(&amp;bitmap[i], RGB(0, 128, 128));</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;//²åÈëÐÐ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;m_ListCtrl.InsertItem(i,m_FileName,i);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;m_ListCtrl.SetItemText(i,1,type);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;m_ListCtrl.SetItemText(i,2,m_Path);</P> <P style="TEXT-INDENT: 2em">&nbsp;}</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;</P> <P style="TEXT-INDENT: 2em">&nbsp;//¼ÇµÃɾ³ýÒѾ­Ã»ÓõÄÁÙʱÎļþ</P> <P style="TEXT-INDENT: 2em">&nbsp;if(m_list1rowCount!=0)</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;delete[] bitmap;</P> <P style="TEXT-INDENT: 2em">2¡£Èç¹ûÊÇICONÀàÐ͵ÄCListCtrl£¬ÔòÒª×öÒ»µãµã¸Ä¶¯£º</P> <P style="TEXT-INDENT: 2em">°Ñ°ó¶¨Í¼±ê¼¯µÄ´úÂëÓÉ</P> <P style="TEXT-INDENT: 2em">&nbsp;SetImageList(&amp;m_ImageList,LVSIL_SMALL);</P> <P style="TEXT-INDENT: 2em">¸ÄΪ</P> <P style="TEXT-INDENT: 2em">&nbsp;SetImageList(&amp;m_ImageList,LVSIL_NORMAL);</P> <P style="TEXT-INDENT: 2em">²åÈëÐÐʱֻÓÃ</P> <P style="TEXT-INDENT: 2em">&nbsp;InsertItem(i,mainSet.m_FileName,i);</P> <P style="TEXT-INDENT: 2em">²»ÓÃ</P> <P style="TEXT-INDENT: 2em">&nbsp;SetItemText(i,1,type);</P> <P style="TEXT-INDENT: 2em">Ö®ÀàµÄ´úÂë¡£</P> <P style="TEXT-INDENT: 2em"></P></div>
¡¡¡¡[ÔĶÁÈ«ÎÄ]¡¡¡¡[·µ»ØÒ³Ê×]

VC++ͨÓÿؼþ±à³Ì

<div><P style="TEXT-INDENT: 2em">»¬¶¯Ìõ¿ØÖÆ£¨Slider Control£©Ò²½Ð¹ìµÀÌõ¿ØÖÆ£¬ÆäÖ÷ÒªÊÇÓÃÒ»¸ö´øÓйìµÀºÍ»¬±êµÄС´°¿ÚÒÔ¼°´°¿ÚÉϵĿ̶ȣ¬À´ÈÃÓû§Ñ¡ÔñÒ»¸öÀëÉ¢Êý¾Ý»òÒ»¸öÁ¬ÐøµÄÊýÖµÇø¼ä¡£Í¨¹ýÊó±ê»ò¼üÅÌÀ´½øÐÐÊý¾ÝµÄÑ¡Ôñ²Ù×÷£¬ÕâÔÚWIN98/95ÖеĺܶàÓ¦ÓóÌÐòÖж¼¿ÉÒÔ¿´µ½£¬Èç¿ØÖÆÃæ°åÖеÄÊó±êµÈ£¬»¬¶¯Ìõ¼È¿ÉÒÔÊÇˮƽ·½Ê½µÄÒ²¿ÉÒÔÊÇ´¹Ö±·½Ê½µÄ¡£»¬¶¯Ìõ¿ØÖƵķç¸ñÈçÏ£º</P> <P style="TEXT-INDENT: 2em">TBS_HORZ »¬¶¯ÌõÊÇˮƽ·½ÏòµÄ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TBS_VERT »¬¶¯ÌõÊÇ´¹Ö±·½ÏòµÄ</P> <P style="TEXT-INDENT: 2em">TBS_LEFT »¬¶¯ÌõλÓÚ´°¿Ú×ó²à&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TBS_RIGHT »¬¶¯ÌõλÓÚ´°¿ÚÓÒ²à</P> <P style="TEXT-INDENT: 2em">TBS_TOP »¬¶¯ÌõλÓÚ´°¿Ú¶¥²¿&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TBS_BOTTOM »¬¶¯ÌõλÓÚ´°¿Úµ×²¿</P> <P style="TEXT-INDENT: 2em">TBS_BOTH »¬¶¯ÌõλÓÚ´°¿ÚÁ½²à&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TBS_AUTOTICKS»¬¶¯Ìõ¾ßÓп̶ȣ¬Ä¬ÈÏ</P> <P style="TEXT-INDENT: 2em">TBS_NOTICKS »¬¶¯Ìõ²»¾ßÓп̶È</P> <P style="TEXT-INDENT: 2em">¡¡¡¡»¬¶¯ÌõµÄ¿Ì¶ÈÌõÔÚÿһ¸öÊýֵλÖÃÏÔʾһ¸ö¿Ì¶È±ê¼Ç£¬Èç¹ûÔÚ»¬¶¯ÌõÉÏÏÔʾijһÊýֵѡÔñÇø¼ä£¬ÔòӦʹÓ÷ç¸ñTBS_ENABLESELRANGE£¬´ËʱѡÔñÇø¼äÁ½¸ö²»ÔÙÊǿ̶ȱê¼Ç£¬¶øÊÇÒ»¸öСµÄÈý½ÇÐηûºÅ¡£ÁíÍ⣬ʹÓ÷ç¸ñTBS_NOTHUMB»áʹ»¬±êÏûÒþÆðÀ´¡£</P> <P style="TEXT-INDENT: 2em">¡¡¡¡»¬¶¯Ìõ¿ØÖÆÔÚMFCÀà¿âÖб»·âװΪCSliderCtrl¿ØÖÆ£¬ÆäÖ÷Òª²Ù×÷ÊÇÉèÖÿ̶ȷ¶Î§¡¢»æÖƿ̶ȱê¼Ç¡¢ÉèÖÃÑ¡Ôñ·¶Î§ºÍµ±Ç°»¬±êλÖõȡ£µ±Óû§½øÐн»»¥²Ù×÷ʱ£¬»¬¶¯Ìõ¿ØÖƽ«ÏòÆä¸¸´°¿Ú·¢ËÍÏûÏ¢WM_HSCROLL£¬ËùÒÔÔÚÓ¦ÓóÌÐòÖÐÓ¦ÖØÔØ¸¸´°¿ÚµÄOnHScroll()³ÉÔ±º¯Êý£¬ÒÔ±ã¶ÔÏûÏ¢½øÐÐÕýÈ·´¦Àíϵͳ·¢Ë͵Ä֪ͨ´úÂë¡¢»¬±êλÖúÍÖ¸ÏòCSliderCtrl¶ÔÏóµÄÖ¸ÕëµÈ¡£ÓÉÓÚ¿¼Âǵ½ºÍˮƽ¾í¶¯¸Ë¹«ÓÃͬһ¸ö³ÉÔ±º¯Êý£¬OnHScroll()º¯Êý²ÎÊý±íÖеÄÖ¸Õë±äÁ¿±»¶¨ÒåΪCScrollBar*ÀàÐÍ£¬ÓÉÓÚʵ¼ÊÉÏÏûÏ¢ÊÇÓÉ»¬¶¯Ìõ²úÉúµÄ£¬ËùÒÔÔÚ³ÌÐòÖбØÐë°ÑÕâ¸öÖ¸Õë±äÁ¿Ç¿ÖÆ×ª»»ÎªCSliderCtrl*ÀàÐÍ¡£»¬¶¯ÌõºÍ¾í¶¯¸ËµÄÏûÏ¢´úÂëºÍº¬Òå¶¼·Ç³£ÀàËÆÈçTB_BOTTOMµÈ£¬ËùÒÔÕâÖÖ´¦Àí·½·¨±È½ÏºÏÀí¡£SetRange()º¯ÊýÓÃÀ´ÉèÖ÷¶Î§£¬SetPos()º¯ÊýÓÃÀ´ÉèÖõ±Ç°Î»Öá£</P> <P style="TEXT-INDENT: 2em">£¨¶þ£©»¬¶¯Ìõ¿ØÖƵĶÔÏó½á¹¹</P> <P style="TEXT-INDENT: 2em">¡¡¡¡»¬¶¯Ìõ¿ØÖƵĽ¨Á¢·½·¨</P> <P style="TEXT-INDENT: 2em">¡¡¡¡¡¡CsliderCtrl &amp;SliderCtrl ½¨Á¢»¬¶¯Ìõ¿ØÖƶÔÏó½á¹¹£»Create ½¨Á¢»¬¶¯Ìõ¿ØÖƶÔÏ󲢰󶨶ÔÏó</P> <P style="TEXT-INDENT: 2em">¡¡¡¡¡¡»¬¶¯Ìõ¿ØÖÆÀàCSliderCtrl::CreateµÄµ÷ÓøñʽÈçÏ£º</P> <P style="TEXT-INDENT: 2em">¡¡¡¡BOOL Create( DWORD dwStyle, const RECT&amp; rect, CWnd* pParentWnd, UINT nID );</P> <P style="TEXT-INDENT: 2em">¡¡¡¡ÆäÖвÎÊýdwStyleÓÃÀ´È·¶¨»¬¶¯Ìõ¿ØÖÆ·ç¸ñ£»²ÎÊýrectÓÃÀ´È·¶¨»¬¶¯Ìõ¿ØÖƵĴóСºÍλÖ㻲ÎÊýpParentWndÓÃÀ´È·¶¨»¬¶¯Ìõ¿ØÖƵĸ¸´°¿ÚÖ¸Õ룻²ÎÊýnIDÓÃÀ´È·¶¨»¬¶¯Ìõ¿ØÖƵĿØÖÆ·ûIDÖµ¡£</P> <P style="TEXT-INDENT: 2em">¡¡¡¡2¡¢»¬¶¯Ìõ¿ØÖƵÄÀàÊôÐÔ</P> <P style="TEXT-INDENT: 2em">¡¡¡¡»¬¶¯Ìõ¿ØÖƶÔÏóµÄÀàÊôÐÔ°üÀ¨È¡µÃ»¬¶¯Ìõ´óСGetLineSize¡¢ÉèÖû¬¶¯Ìõ´óСSetLineSize¡¢È¡µÃ»¬¶¯ÌõÒ³´óСGetPageSize¡¢ÉèÖû¬¶¯ÌõÒ³´óСSetPageSize¡¢È¡µÃ»¬¶¯Ìõ×î´óλÖÃGetRangeMax¡¢È¡µÃ»¬¶¯Ìõ×îСλÖÃGetRangeMin¡¢È¡µÃ»¬¶¯Ìõ·¶Î§GetRange¡¢ÉèÖû¬¿é×îСλÖÃSetRangeMin¡¢ÉèÖû¬¿é×î´óλÖÃSetRangeMax¡¢ÉèÖû¬¶¯Ìõ·¶Î§SetRange¡¢È¡µÃ»¬¿éµ±Ç°Î»ÖÃGetSelection¡¢ÉèÖû¬¿éµ±Ç°Î»ÖÃSetSelection¡¢È¡µÃ»¬¶¯Ìõµ±Ç°Î»ÖÃGetPosºÍÉèÖû¬¶¯Ìõµ±Ç°Î»ÖÃSetPosµÈ¡£</P> <P style="TEXT-INDENT: 2em">¡¡¡¡3¡¢»¬¶¯Ìõ¿ØÖƵIJÙ×÷·½·¨</P> <P style="TEXT-INDENT: 2em">¡¡¡¡»¬¶¯Ìõ¿ØÖƵIJÙ×÷·½·¨°üÀ¨Çå³ý»¬¶¯Ìõµ±Ç°Ñ¡ÔñClearSel¡¢ÑéÖ¤»¬¶¯Ìõµ±Ç°Î»ÖÃÊÇ·ñÔÚ×î´ó×îСλÖÃÖ®¼äVerifyPosºÍÇå³ýµ±Ç°¿Ì¶È±êÖ¾ClearTics¡£</P> <P style="TEXT-INDENT: 2em">¡¡¡¡»¬¶¯Ìõ¿ØÖƵÄÓ¦Óü¼ÇÉʾÀý</P> <P style="TEXT-INDENT: 2em">¡¡¡¡1¡¢ÀûÓÃÓ¦ÓóÌÐòÏòµ¼AppWizardÉú³É»ùÓÚ¶ÔÏó¿òµÄÓ¦ÓóÌÐòCSlidDlg£»</P> <P style="TEXT-INDENT: 2em">¡¡¡¡2¡¢ÔÚ¶Ô»°¿òÖÐÉèÖû¬¶¯Ìõ¿ØÖÆ£¬ÆäIDΪIDC_SLIDER£»</P> <P style="TEXT-INDENT: 2em">¡¡¡¡3¡¢ÔÚ¶Ô»°¿ò³õʼ´úÂëÖÐÔö¼Ó¿ØÖƵķ¶Î§ºÍλÖãº</P> <P style="TEXT-INDENT: 2em">¡¡¡¡£¨1£©ÔÚSlidDlg.hÖÐÉèÖÃÊý¾Ý³ÉÔ±£¬ÓÃÀ´±íʾ»¬¶¯ÌõµÄµ±Ç°Öµ£º</P> <P style="TEXT-INDENT: 2em">//SlidDlg.h</P> <P style="TEXT-INDENT: 2em">class CSlidDlg:public Cdialog</P> <P style="TEXT-INDENT: 2em">{ &nbsp;&nbsp;&nbsp;£®£®£®£®£®£®//ÆäËü´úÂë</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; public:</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int m_nCur;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; £®£®£®£®£®£®//ÆäËü´úÂë</P> <P style="TEXT-INDENT: 2em">}</P> <P style="TEXT-INDENT: 2em">£¨2£©ÔÚSlidDlg.cppÖÐÉèÖóõʼ״̬</P> <P style="TEXT-INDENT: 2em">BOOL CSlidDlg::OnInitDialog()</P> <P style="TEXT-INDENT: 2em">{ &nbsp;&nbsp;&nbsp;Cdialog::OnInitDialog();</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; £®£®£®£®£®£®//ÆäËü´úÂë</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; //TODO:Add extra initialization here</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; CSliderCtrl *pSlidCtrl=(CSliderCtrl*)GetDlgItem(IDC_SLLIDER);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; pSlidCtrl-&gt;SetRange(1,5,TRUE);//ÉèÖû¬¶¯Ìõ·¶Î§</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; pSlidCtrl-&gt;SetPos(2);//ÉèÖû¬¶¯ÌõλÖÃ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; £®£®£®£®£®£®//ÆäËü´úÂë</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; return TRUE;</P> <P style="TEXT-INDENT: 2em">}</P> <P style="TEXT-INDENT: 2em">£¨3£©ÍêÉÆ»¬¶¯ÌõµÄÏûÏ¢´¦Àí£¬ÀûÓÃÀàÏòµ¼ClassWizardÔö¼Ó¶Ô»°¿ò´°¿ÚµÄWM_HSCROLLÏûÏ¢´¦Àíº¯Êý£¬²¢È¡µÃ»¬±êËùָλÖÃÖµ£º</P> <P style="TEXT-INDENT: 2em">void CSlidDlg::OnHScroll(UINT nSBCode,UINT nPos,CScrollBar *pScrollBar)</P> <P style="TEXT-INDENT: 2em">{ //TODO:Add your message handler?</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; Cdialog::OnHScroll(nSBCode,nPos,pScrollBar);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; CSliderCtrl *pSlidCtrl=(CSliderCtrl*)GetDlgItem(IDC_SLLIDER);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; m_nCur=pSlidCtrl-&gt;GetPos();//È¡µÃµ±Ç°Î»ÖÃÖµ</P> <P style="TEXT-INDENT: 2em">}</P> <P style="TEXT-INDENT: 2em">&nbsp;</P> <P style="TEXT-INDENT: 2em">VCͨÓÿؼþ±à³ÌÖ®CStatusBar¿Ø¼þ</P> <P style="TEXT-INDENT: 2em">£¨Ò»£©×´Ì¬Ìõ¿ØÖƵÄÖ÷Òª¹¦ÄÜ </P> <P style="TEXT-INDENT: 2em">״̬Ìõ¿ØÖÆ(Status Bar <A href="http://www.yesky.com/key/478/125478.html">Control</A>)±È½ÏÈÝÒ×Àí½â£¬Ê¹ÓÃÆðÀ´Ò²±È½Ï¼òµ¥¡£×´Ì¬ÌõÊÇλÓÚ¸¸´°¿Úµ×²¿µÄÒ»¸öˮƽ×Ó´°¿Ú£¬Ëü¿ÉÒÔ±»·Ö³É¶à¸öÏÔʾÐÅÏ¢µÄÐ¡ÇøÓò¡£ÆäMFCÖзâ×°µÄCstatusBarCtrl¿ØÖÆÀàÌṩÁËÓ¦ÓõĻù±¾·½·¨¡£</P> <P style="TEXT-INDENT: 2em">£¨¶þ£©×´Ì¬Ìõ¿ØÖƵĶÔÏó½á¹¹</P> <P style="TEXT-INDENT: 2em">1¡¢×´Ì¬Ìõ¿ØÖƵĽ¨Á¢·½·¨</P> <P style="TEXT-INDENT: 2em">CStatusBarCtrl &amp;StatusBarCtrl ½¨Á¢×´Ì¬Ìõ¿ØÖƶÔÏó½á¹¹£»Create ½¨Á¢×´Ì¬Ìõ¿ØÖƶÔÏó²¢°ó¶¨×´Ì¬Ìõ¿ØÖÆÀàCstatusBarCtrl::CreateµÄµ÷ÓøñʽÈçÏ£º</P> <P style="TEXT-INDENT: 2em">BOOL Create( DWORD dwStyle,const RECT&amp; rect,CWnd* pParentWnd,UINT nID);</P> <P style="TEXT-INDENT: 2em">ÆäÖвÎÊýdwStyleÓÃÀ´È·¶¨×´Ì¬ÌõµÄ¿ØÖÆ·ç¸ñ£»²ÎÊýrectÓÃÀ´È·¶¨×´Ì¬Ìõ´°¿ÚµÄ´óСºÍλÖ㻲ÎÊýpParentWndÓÃÀ´È·¶¨×´Ì¬Ìõ¸¸´°¿ÚµÄÖ¸Õ룻nIDÓÃÀ´È·¶¨×´Ì¬Ìõ¿ØÖƵıêʶ·û¡£</P> <P style="TEXT-INDENT: 2em">״̬Ìõ¿ØÖÆ·ç¸ñ¿ÉÒÔÊÇÏÂÁÐÖµµÄ×éºÏ£ºCCS_BOTTOM¡¢CCS_NODIVIDER¡¢CCS_NOHILITE¡¢CCS_NOMOVEY¡¢CCS_NOPARENTALIGN¡¢CCS_NORESIZEºÍCCS_TOPµÈ£¬¾ßÌåÄÚÈݺͺ¬ÒåÇë¼û¹¤¾ßÌõ¿ØÖÆÖеÄÓйز¿·Ö¡£</P> <P style="TEXT-INDENT: 2em">2¡¢×´Ì¬Ìõ¿ØÖƵÄÀàÊôÐÔ</P> <P style="TEXT-INDENT: 2em">״̬Ìõ¿ØÖÆÀàÊôÐÔ°üÀ¨ÉèÖøø¶¨²¿·ÖÏÔʾÎı¾SetText¡¢È¡µÃ¸ø¶¨²¿·ÖµÄÎı¾GetText¡¢ÉèÖÃ״̬ÌõÇøÓò»®·ÖÊý¼°Æäÿ²¿·ÖµÄÓÒ±ß×ø±êSetParts¡¢È¡µÃ״̬ÌõÇøÓò»®·ÖÊýÁ¿GetParts¡¢È¡µÃ״̬ÌõµÄˮƽºÍ´¹Ö±¿í¶ÈGetBordersºÍÈ¡µÃ״̬Ìõ¾ØÐÎÇøÓòGetRect¡£</P> <P style="TEXT-INDENT: 2em">£¨Èý£©×´Ì¬Ìõ¿ØÖƵÄÓ¦Óü¼ÇÉ</P> <P style="TEXT-INDENT: 2em">״̬Ìõ¿ØÖƳý¿ÉÒÔÏÔʾһ¶¨µÄ°ïÖúºÍÌáʾÐÅÏ¢Í⣬»¹¿ÉÒÔʵÏÖÏìÓ¦Êó±êÊäÈëµÈ¹¦ÄÜ¡£ÕâÀïÒÔÔÚ״̬ÌõÉÏÏÔʾÊó±êÒÆ¶¯×ø±êΪÀý£¬¾ßÌå˵Ã÷ÆäÓ¦Óü¼ÇÉ¡£</P> <P style="TEXT-INDENT: 2em">ÀûÓÃÓ¦ÓóÌÐòÏòµ¼Éú³ÉµÄ³ÌÐò´úÂëÖУ¬×´Ì¬Ìõ×÷ΪÖ÷´°¿ÚµÄ×Ó´°¿Ú£¬Æä¾ßÓÐÒ»¸öAFX_IDW_STATUS _BAR±êʶ·û£¬Í¨¹ýËüµ÷Óú¯ÊýGetDescendantWindow()ºÍAfxGetMainWnd()£¬¾Í¿ÉÒÔÈ¡µÃ״̬Ìõ´°¿ÚµÄÖ¸Õë¡£ÓÉÓÚ»ùÓÚÎĵµµÄÓ¦ÓóÌÐòÔÚ½¨Á¢Ê±¾Í¾ßÓÐ״̬ÌõÇøÓò£¬ËùÒÔÖ»ÒªÀûÓÃÀàÏòµ¼¼òµ¥µØ¼ÓÈëÊó±êÒÆ¶¯ÏûÏ¢´¦Àí¹¦Äܺ¯ÊýºÍÏÂÊöº¯Êý´úÂ룬¾Í¿ÉÒÔʵÏÖÕâÒ»¹¦ÄÜ£º</P> <P style="TEXT-INDENT: 2em">Void CTestView::OnMouseMove(UINT nFlags,Cpoint point)</P> <P style="TEXT-INDENT: 2em">{</P> <P style="TEXT-INDENT: 2em">CclientDC dc(this);//½¨Á¢É豸Îı¾</P> <P style="TEXT-INDENT: 2em">OnPrepareDC(&amp;dc,NULL);//É豸ӳÉä´¦Àí</P> <P style="TEXT-INDENT: 2em">dc.DPtoLP(&amp;point);//Êó±êÖ¸Õëת»»</P> <P style="TEXT-INDENT: 2em">char text[128];</P> <P style="TEXT-INDENT: 2em">CstatusBar *pStatus=(CstatusBar *)AfxGetApp()-&gt;m_pMainWnd-&gt;</P> <P style="TEXT-INDENT: 2em">GetDescendanWindow(AFX_IDW_STATUS_BAR);//È¡µÃ´°¿ÚÖ¸Õë</P> <P style="TEXT-INDENT: 2em">If(pStatus){//Èç¹û´æÔÚÏÔʾÊó±ê×ø±ê</P> <P style="TEXT-INDENT: 2em">Sprintf(text,¡±X×ø±ê=%4d,Y×ø±ê=%4d¡±,point.x,point.y);</P> <P style="TEXT-INDENT: 2em">pStatus-&gt;SetPaneText(0,text);}</P> <P style="TEXT-INDENT: 2em">CscrollView::OnMouseMove(nFlags,point); </P> <P style="TEXT-INDENT: 2em">}</P> <P style="TEXT-INDENT: 2em">VCͨÓÿؼþ±à³ÌÖ®CProgress¿Ø¼þ</P> <P style="TEXT-INDENT: 2em">£¨Ò»£©½ø¶ÈÌõµÄÖ÷Òª¹¦ÄÜ </P> <P style="TEXT-INDENT: 2em">¡¡¡¡½ø¶ÈÌõ¿ØÖÆ£¨Progress Control£©Ö÷ÒªÓÃÀ´½øÐÐÊý¾Ý¶Áд¡¢Îļþ¿½±´ºÍ´ÅÅ̸ñʽµÈ²Ù×÷ʱµÄ¹¤×÷½ø¶ÈÌáʾÇé¿ö£¬Èç°²×°³ÌÐòµÈ£¬°éËæ¹¤×÷½ø¶ÈµÄ½øÕ¹£¬½ø¶ÈÌõµÄ¾ØÐÎÇøÓò´Ó×óµ½ÓÒÀûÓõ±Ç°»î¶¯´°¿Ú±êÌâÌõµÄÑÕÉ«À´²»¶ÏÌî³ä¡£</P> <P style="TEXT-INDENT: 2em">½ø¶ÈÌõ¿ØÖÆÔÚMFCÀà¿âÖеķâ×°ÀàΪCProgressCtrl£¬Í¨³£½ö×÷ΪÊä³öÀà¿ØÖÆ£¬ËùÒÔÆä²Ù×÷Ö÷ÒªÊÇÉèÖýø¶ÈÌõµÄ·¶Î§ºÍµ±Ç°Î»Ö㬲¢²»¶ÏµØ¸üе±Ç°Î»Ö᣽ø¶ÈÌõµÄ·¶Î§ÓÃÀ´±íʾÕû¸ö²Ù×÷¹ý³ÌµÄʱ¼ä³¤¶È£¬µ±Ç°Î»ÖñíʾÍê³ÉÇé¿öµÄµ±Ç°Ê±¿Ì¡£SetRange()º¯ÊýÓÃÀ´ÉèÖ÷¶Î§£¬³õʼ·¶Î§Îª0-100£¬SetPos()º¯ÊýÓÃÀ´ÉèÖõ±Ç°Î»Ö㬳õʼֵΪ0£¬SetStep()º¯ÊýÓÃÀ´ÉèÖò½³¤£¬³õʼ²½³¤Îª10£¬StepIt()º¯ÊýÓÃÀ´°´ÕÕµ±Ç°²½³¤¸üÐÂλÖã¬OffsetPos()º¯ÊýÓÃÀ´Ö±½Ó½«µ±Ç°Î»ÖÃÒÆ¶¯Ò»¶Î¾àÀë¡£Èç¹û·¶Î§»òλÖ÷¢Éú±ä»¯£¬ÄÇô½ø¶ÈÌõ½«×Ô¶¯ÖØ»æ½ø¶ÈÇøÓòÀ´¼°Ê±·´Ó³µ±Ç°¹¤×÷µÄ½øÕ¹Çé¿ö¡£</P> <P style="TEXT-INDENT: 2em">½ø¶ÈÌõµÄ¶ÔÏó½á¹¹</P> <P style="TEXT-INDENT: 2em">¡¡¡¡½ø¶ÈÌõ¿ØÖƵĽ¨Á¢·½·¨</P> <P style="TEXT-INDENT: 2em">¡¡¡¡CProgressCtrl &amp;ProgressCtrl ½¨Á¢½ø¶ÈÌõ¿ØÖƶÔÏó½á¹¹</P> <P style="TEXT-INDENT: 2em">¡¡¡¡Create ½¨Á¢½ø¶ÈÌõ¿ØÖƶÔÏ󲢰󶨶ÔÏó</P> <P style="TEXT-INDENT: 2em">¡¡¡¡½ø¶ÈÌõ¿ØÖÆÀàCprogressCtrl::CreateµÄµ÷ÓøñʽÈçÏ£º</P> <P style="TEXT-INDENT: 2em">¡¡¡¡BOOL Create( DWORD dwStyle, const RECT&amp; rect, CWnd* pParentWnd, UINT nID );</P> <P style="TEXT-INDENT: 2em">¡¡¡¡ÆäÖвÎÊýdwStyleÓÃÀ´È·¶¨½ø¶ÈÌõ¿ØÖƵĿØÖÆ·ç¸ñ£»²ÎÊýrectÓÃÀ´È·¶¨½ø¶ÈÌõ¿ØÖƵĴóСºÍλÖ㻲ÎÊýpParentWndÓÃÀ´È·¶¨½ø¶ÈÌõ¸¸´°¿ÚÖ¸Õ룻²ÎÊýnIDÓÃÀ´È·¶¨½ø¶ÈÌõ¿ØÖƵĿØÖÆ·ûIDÖµ¡£</P> <P style="TEXT-INDENT: 2em">¡¡¡¡2¡¢½ø¶ÈÌõ¿ØÖƵÄÀàÊôÐÔ</P> <P style="TEXT-INDENT: 2em">¡¡¡¡½ø¶ÈÌõ¿ØÖƵÄÀàÊôÐÔ°üÀ¨ÉèÖýø¶ÈÌõ×î´ó×îС¿ØÖÆ·¶Î§SetRange¡¢ÉèÖýø¶ÈÌõµ±Ç°Î»Öà SetPos¡¢ÉèÖýø¶ÈÌõµ±Ç°Î»ÖÃÆ«ÒÆÖµOffsetPosºÍÉèÖýø¶ÈÌõ¿ØÖÆÔöÁ¿ÖµSetStep¡£</P> <P style="TEXT-INDENT: 2em">¡¡3¡¢½ø¶ÈÌõ¿ØÖƵIJÙ×÷·½·¨</P> <P style="TEXT-INDENT: 2em">¡¡¡¡½ø¶ÈÌõ¿ØÖƵIJÙ×÷·½·¨Ö÷ÒªÊÇʹ½ø¶ÈÌõ¿ØÖƲ¢ÖØ»æ½ø¶ÈÌõµÄStepItº¯Êý¡£</P> <P style="TEXT-INDENT: 2em">¡¡¡¡½ø¶ÈÌõ¿ØÖƵÄÓ¦Óü¼ÇÉʾÀý</P> <P style="TEXT-INDENT: 2em">¡¡¡¡1¡¢ÀûÓÃÓ¦ÓóÌÐòÏòµ¼AppWizardÉú³É»ùÓÚ¶ÔÏó¿òµÄÓ¦ÓóÌÐòCProgDlg£»</P> <P style="TEXT-INDENT: 2em">¡¡¡¡2¡¢ÔÚ¶Ô»°¿òÖÐÉèÖýø¶ÈÌõºÍ¾²Ì¬Îı¾¿ØÖÆ£¬ÆäID·Ö±ðΪIDC_PROGºÍIDCPERCENT£»</P> <P style="TEXT-INDENT: 2em">ÔÚ¶Ô»°¿ò³õʼ´úÂëÖÐÔö¼Ó¿ØÖƵķ¶Î§ºÍλÖãº</P> <P style="TEXT-INDENT: 2em">¡¡¡¡ÔÚProgDlg.hÖÐÉèÖÃÁ½¸öÊý¾Ý³ÉÔ±£¬ÓÃÀ´±íʾ½ø¶ÈÌõµÄ×î´óÖµºÍ²½³¤£º</P> <P style="TEXT-INDENT: 2em">//ProgDlg.h</P> <P style="TEXT-INDENT: 2em">class CProgDlg:public Cdialog</P> <P style="TEXT-INDENT: 2em">{ &nbsp;&nbsp;£®£®£®£®£®£®//ÆäËü´úÂë</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp; public:</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int m_nMax,m_nStep;</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp; £®£®£®£®£®£®¡¡//ÆäËü´úÂë</P> <P style="TEXT-INDENT: 2em">}</P> <P style="TEXT-INDENT: 2em">(2)ÔÚProgDlg.cppÖÐÉèÖóõʼ״̬</P> <P style="TEXT-INDENT: 2em">BOOL CProgDlg::OnInitDialog()</P> <P style="TEXT-INDENT: 2em">(3)ÍêÉÆWM_TIMERÏûÏ¢´¦Àí£¬Ê¹½ø¶ÈÌõ°´ÕÕµ±Ç°²½³¤½øÐиüУ¬Í¬Ê±Íê³É½ø¶ÈÌõµÄ°Ù·Ö±ÈÏÔʾ£º</P> <P style="TEXT-INDENT: 2em">void CProgDlg::OnTimer(UINT nIDEvent)</P> <P style="TEXT-INDENT: 2em">{&nbsp;&nbsp;&nbsp; &nbsp;//TODO:Add your message handler?</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; CProgressCtrl *pProgCtrl=(CProgressCtrl*)GetDlgItem(IDC_PROG);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; int nPrePos=pProgCtrl-&gt;StepIt();//È¡µÃ¸üÐÂǰλÖÃ</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; char test[10];</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; int nPercent=(int)(((nPrePos+m_nStep)/m_nMax*100+0.5);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; wsprintf(test,?%d%%?,nPercent);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; GetDlgItem(IDC_PERCENT)-&gt;SetWindowText(text);</P> <P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; Cdialog::OnTimer(nIDEvent);</P> <P style="TEXT-INDENT: 2em">}</P> <P style="TEXT-INDENT: 2em">VCͨÓÿؼþ±à³ÌÖ®CList¿Ø¼þ</P> <P style="TEXT-INDENT: 2em">£¨Ò»£©ÁÐ±í¿ØÖÆµÄÖ÷Òª¹¦ÄÜ </P> <P style="TEXT-INDENT: 2em">&nbsp; ÁÐ±í¿ØÖÆºÍÊÓ£¨List Control&amp;View)Ö÷ÒªÓÃÀ´ÒÔ¸÷ÖÖ·½Ê½ÏÔʾһ×éÊý¾Ý¼Ç¼¹©Óû§½øÐи÷ÖÖ²Ù×÷£¬Windows98/95ÖÐ×ÊÔ´¹ÜÀíÆ÷Öеġ°²é¿´¡±±êǩϵġ°´óͼ±ê£üСͼ±ê£üÁбí£üÏêϸ×ÊÔ´¡±¾ÍÊÇÒ»¸ö·Ç³£ºÃµÄµäÐÍÓ¦Óá£ÁбíÖеļǼ¿ÉÒÔ°üÀ¨¶à¸öÊý¾ÝÏҲ¿ÉÒÔ°üÀ¨±íʾÊý¾ÝÄÚÈݵĴóСͼ±ê£¬ÓÃÀ´±íʾÊý¾Ý¼Ç¼µÄ¡¡ÁÐ±í¿ØÖÆÌṩÁ˶ÔWindowsÁÐ±í¹¦ÄܲÙ×÷µÄ»ù±¾·½·¨£¬¶øÊ¹ÓÃÁбíÊÓµÄÊÓº¯Êý¿ÉÒÔ¶ÔÁбíÊÓ½øÐи÷ÖÖ²Ù×÷£¬Í¨¹ýµ÷ÓÃÊÓ³ÉÔ±GetListCtrl»ñȡǶÔÚÁбíÊÓÄÚÁÐ±í¿ØÖÆµÄÒýÓã¨GetListCtrl&amp; ctrlList = GetListCtrl()£©£¬¾Í¿ÉÒÔºÍÁÐ±í¿ØÖÆÒ»Ñù½øÐи÷ÖÖ²Ù×÷¡£²Ù×÷Ò»¸öÁÐ±í¿ØÖÆºÍÊӵĻù±¾·½·¨Îª£º´´½¨ÁÐ±í¿ØÖÆ£»´´½¨ÁÐ±í¿ØÖÆËùÐèÒªµÄͼÏñÁÐ±í£»ÏòÁÐ±í¿ØÖÆÌí¼Ó±íÁкͱíÏ¶ÔÁÐ±í½øÐи÷ÖÖ¿ØÖÆ£¬Ö÷Òª°üÀ¨²éÕÒ¡¢ÅÅÐò¡¢É¾³ý¡¢ÏÔʾ·½Ê½¡¢ÅÅÁз½Ê½ÒÔ¼°¸÷ÖÖÏûÏ¢´¦Àí¹¦Äܵȣ»×îºó³·ÏûÁÐ±í¿ØÖÆ¡£</P> <P style="TEXT-INDENT: 2em">¶ÔÓÚÒ»¸öÁÐ±í¿ØÖÆ£¬Æä×îµäÐÍ×î³£ÓõÄÏÔʾ¿ØÖÆ·½Ê½Îª£º´óͼ±ê·½Ê½£¨LVS_ICON£©¡¢Ð¡Í¼±ê·½Ê½£¨LVS_SMALLICON£©¡¢ÁбíÏÔʾ·½Ê½£¨LVS_LIST£©ºÍÏêϸ×ÊÁÏ£¨¼´±¨¸æLVS_REPORT£©ÏÔʾ·½Ê½¡£Õâ¿ÉÒÔͨ¹ýÉèÖÃÆäÏÔʾ·½Ê½ÊôÐÔÀ´ÊµÏÖ¡£Òª¿ØÖÆÁбíËùÔÚ´°¿ÚµÄ·ç¸ñ£¬¿Éͨ¹ý¹¦Äܺ¯ÊýGetWindowLongºÍSetWindowLongÀ´ÊµÏÖ£¬Òª¿ØÖÆÁбíͼ±êµÄ¶ÔÆë·½Ê½£¬¿Éͨ¹ýÉèÖÃÁÐ±í´°¿ÚµÄ·ç¸ñLVS_ALIGNTOP»òLVS_ALIGNLEFTÀ´ÊµÏÖ£¬</P> <P style="TEXT-INDENT: 2em">£¨¶þ£©ÁÐ±í¿ØÖÆµÄ¶ÔÏó½á¹¹</P> <P style="TEXT-INDENT: 2em">1¡¢ÁÐ±í¿ØÖÆµÄ½¨Á¢·½·¨</P> <P style="TEXT-INDENT: 2em">CListCtrl£¦listCtrl ¶¨ÒåÁбí¶ÔÏóµÄ½á¹¹</P> <P style="TEXT-INDENT: 2em">Create ½¨Á¢ÁÐ±í¿ØÖÆ²¢°ó¶¨¶ÔÏó</P> <P style="TEXT-INDENT: 2em">ÁÐ±í¿ØÖÆCListCtrl::CreateµÄµ÷ÓøñʽÈçÏ£º</P> <P style="TEXT-INDENT: 2em">BOOL Create( DWORD dwStyle, const RECT&amp; rect, CWnd* pParentWnd, UINT nID );</P> <P style="TEXT-INDENT: 2em">ÆäÖвÎÊýdwStyleÓÃÀ´È·¶¨ÁÐ±í¿ØÖÆµÄ·ç¸ñ£»rectÓÃÀ´È·¶¨ÁÐ±í¿ØÖÆµÄ´óСºÍλÖã»pParentWndÓÃÀ´È·¶¨ÁÐ±í¿ØÖÆµÄ¸¸´°¿Ú£¬Í¨³£ÊÇÒ»¸ö¶Ô»°¿ò£»nIDÓÃÀ´È·¶¨ÁÐ±í¿ØÖÆµÄ±êʶ¡£ÆäÖÐÁÐ±í¿ØÖÆµÄ·ç¸ñ¿ÉÒÔÊÇÏÂÁÐÖµµÄ×éºÏ£º</P> <P style="TEXT-INDENT: 2em">LVS_ALIGNLEFT ÓÃÀ´È·¶¨±íÏîµÄ´óСͼ±êÒÔ×ó¶ÔÆë·½Ê½ÏÔʾ£»</P> <P style="TEXT-INDENT: 2em">LVS_ALIGNTOP ÓÃÀ´È·¶¨±íÏîµÄ´óСͼ±êÒÔ¶¥¶ÔÆë·½Ê½ÏÔʾ£»</P> <P style="TEXT-INDENT: 2em">LVS_AUTOARRANGE ÓÃÀ´È·¶¨±íÏîµÄ´óÐ