锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鑻ュ皢char*杞崲鎴怌String錛岄櫎浜?jiǎn)鐩存帴璧嬪煎錛岃繕鍙嬌鐢–String::format榪涜銆備緥濡傦細(xì)
char chArray[] = "This is a test";
char * p = "This is a test";
鎴?
LPSTR p = "This is a test"; 鎴栧湪宸插畾涔塙nicode搴旂殑鐢ㄧ▼搴忎腑
TCHAR * p = _T("This is a test"); 鎴?
LPTSTR p = _T("This is a test");
CString theString = chArray;
theString.format(_T("%s"), chArray);
theString = p;
2銆丆String杞崲鎴恈har*
鑻ュ皢CString綾昏漿鎹㈡垚char*(LPSTR)綾誨瀷錛屽父甯鎬嬌鐢ㄤ笅鍒椾笁縐嶆柟娉曪細(xì)
鏂規(guī)硶涓錛屼嬌鐢ㄥ己鍒惰漿鎹€備緥濡傦細(xì)
CString theString( "This is a test" );
LPTSTR lpsz =(LPTSTR)(LPCTSTR)theString; 鏂規(guī)硶浜岋紝浣跨敤strcpy銆備緥濡傦細(xì)
CString theString( "This is a test" );
LPTSTR lpsz = new TCHAR[theString.GetLength()+1];
_tcscpy(lpsz, theString); 闇瑕佽鏄庣殑鏄紝strcpy(鎴栧彲縐誨糢nicode/MBCS鐨刜tcscpy)鐨勭浜屼釜鍙傛暟鏄? const wchar_t* (Unicode)鎴朿onst char* (ANSI)錛岀郴緇熺紪璇戝櫒灝嗕細(xì)鑷姩瀵瑰叾榪涜杞崲銆?
鏂規(guī)硶涓夛紝浣跨敤CString::GetBuffer銆備緥濡傦細(xì)
CString s(_T("This is a test "));
LPTSTR p = s.GetBuffer();
// 鍦ㄨ繖閲屾坊鍔犱嬌鐢╬鐨勪唬鐮?
if(p != NULL) *p = _T('\0');
s.ReleaseBuffer(); // 浣跨敤瀹屽悗鍙?qiáng)鏃堕噴鏀惧Q屼互渚胯兘浣跨敤鍏跺畠鐨凜String鎴愬憳鍑芥暟
]]> WORD wVersionRequested = MAKEWORD(1, 1);
2 WSADATA wsaData;
3 int err = WSAStartup(wVersionRequested, &wsaData);
4 if (err != 0)
5
{
6 WSACleanup();
7 }
]]>Edit<杈撳叆妗?/span>>
1.(CWnd *)GetDlgItem(IDC_EDIT_1))->SetWindowText("0");
2.int n=GetDlgItemInt(IDC_EDIT_1, NULL,true);
3.(CWnd *)GetDlgItem(IDC_EDIT_1))->GetWindowText(cs);
Combox<涓嬫媺妗?/span>>
1.((CComboBox *)GetDlgItem(IDC_COMB_1))->SetCurSel(1);
2. GetDlgItemText(IDC_COMB_1, cs, 50);
3.int i=m_COM.GetCurSel();
m_COM.GetLBText(i,cs);
4.m_COM.AddString(cs);m_COM.DeleteString(0);m_COM.SetCurSel(0);
Radio<鍗曢夋寜閽?/span>>
1.((CButton *)GetDlgItem(IDC_RADIO_1))->SetCheck(true);
2.if (((CButton *)GetDlgItem(IDC_RADIO_1))->GetCheck())
{}
3.((CButton *)GetDlgItem(IDC_RADIO_1))->SetCheck(true);
List Control<鍒楄〃>
1.m_list2.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); m_list2.InsertColumn(0,"TagID",LVCFMT_LEFT,60);
m_list2.InsertColumn(1,"TagType",LVCFMT_CENTER,120);
m_list2.InsertItem(i,cs1);
m_list2.SetItemText(i,1,cs2);
2.if(m_list2.GetSelectedItem()!=-1)
{
int i=m_list2.GetSelectionMark();
cs=m_list2.GetItemText(i,0);
}
3.int i=m_List2.GetItemCount();
4.m_list2.DeleteItem(i);m_list2.DeleteAllItems();
ListBox<鍒楄〃妗?/span>>
1.((CListBox *)listBox)->InsertString(0, str);
Button<鎸夐挳>
1.((CWnd *)GetDlgItem(IDC_BUTTON_1))->ShowWindow(true);
2.((CWnd *)GetDlgItem(IDC_BUTTON_1))->EnableWindow(true);
]]>
]]>
銆銆涓銆佸垱寤哄姩鎬佹帶浠訛細(xì)
銆銆涓轟簡(jiǎn)瀵圭収錛屾垜浠厛鏉ョ湅涓涓嬮潤(rùn)鎬佹帶浠剁殑鍒涘緩銆?br>
銆銆鏀劇疆闈?rùn)鎬佹帶浠舵椂蹇呴』鍏堝緩绔嬩竴涓鍣紝涓鑸槸瀵硅瘽妗嗭紝榪欐椂鎴戜滑鍦ㄥ璇濇緙栬緫紿楀彛涓紝浠庡伐鍏風(fēng)獥鍙d腑鎷栧嚭鎵闇鎺т歡鏀懼湪瀵硅瘽妗嗕腑鍗沖彲錛屽啀閫傚綋淇敼鎺т歡ID錛岃緗帶浠跺睘鎬э紝涓涓潤(rùn)鎬佹帶浠跺氨鍒涘緩濂戒簡(jiǎn)錛屽綋瀵硅瘽妗嗚鏄劇ず鏃訛紝鍏朵笂鐨勬帶浠朵篃浼?xì)鏄窘C恒?br>
銆銆闈?rùn)鎬佹帶浠朵笉闇瑕佽皟鐢–reate()鍑芥暟鏉ュ垱寤恒?br>
銆銆鑰屽垱寤哄姩鎬佹帶浠舵湁寰堝ぇ涓嶅悓錛屼互涓嬩互鎸夐挳涓轟緥錛岀湅涓涓嬪姩鎬佹帶浠剁殑鍒涘緩榪囩▼錛?br>
銆銆1.寤虹珛鎺т歡ID鍙鳳細(xì)
銆銆ID鍙鋒槸鎺т歡鐨勬爣璇嗭紝鍒涘緩鎺т歡鍓嶅繀欏誨厛涓哄畠璁劇疆涓涓狪D鍙楓?br>
銆銆鎵撳紑璧勬簮涓殑“String Table”錛屽湪絀虹櫧琛屼笂鍙屽嚮榧犳爣錛岃繖鏃朵細(xì)寮瑰嚭涓涓狪D灞炴у璇濇錛屽湪鍏朵腑鐨処D緙栬緫妗嗕腑杈撳叆ID錛屽錛欼DC_MYBUTTON錛屽湪Caption涓緭鍏ユ帶浠舵爣棰樻垨娉ㄨВ錛堟敞錛欳aption妗嗕笉鑳戒負(fù)絀猴紝涓虹┖浼?xì)瀵艰嚧鍒涘缓澶辫触锛?jí)錛岃繖閲屾垜杈撳叆鐨勬槸鎸夐挳涓婅鏄劇ず鐨勬枃瀛?-鍔ㄦ佹寜閽?br>
銆銆2.寤虹珛鎺т歡瀵硅薄錛?br>
銆銆涓嶅悓縐嶇被鐨勬帶浠跺簲鍒涘緩涓嶅悓鐨勭被瀵硅薄錛?br>
銆銆·鎸夐挳鎺т歡 CButton 錛堝寘鎷櫘閫氭寜閽佸崟閫夋寜閽拰澶嶉夋寜閽級(jí)
銆銆·緙栬緫鎺т歡 CEdit
銆銆·闈?rùn)鎬佹枃鏈帶浠?CStatic
銆銆·鏍囩鎺т歡 CTabCtrl
銆銆·鏃嬭漿鎺т歡 CSpinButtonCtrl
銆銆·婊戞爣鎺т歡 CSliderCtrl
銆銆·澶氫俊鎭紪杈戞帶浠?CRichEditCtrl
銆銆·榪涘害鏉℃帶浠?CProgressCtrl
銆銆·婊氬姩鏉℃帶浠?CSrcollBar
銆銆·緇勫悎妗嗘帶浠?CComboBox
銆銆·鍒楄〃妗嗘帶浠?CListBox
銆銆·鍥懼儚鍒楄〃鎺т歡 CImageCtrl
銆銆·鏍?wèi)鐘舵帶錃g CTreeCtrl
銆銆·鍔ㄧ敾鎺т歡 CAnimateCtrl
銆銆鏈緥涓垜浠垱寤轟竴涓狢Button綾葷殑鏅氭寜閽傛敞鎰忎笉鑳界洿鎺ュ畾涔塁Button瀵硅薄錛屽錛欳Button m_MyBut;榪欑瀹氫箟鍙兘鐢ㄦ潵緇欓潤(rùn)鎬佹帶浠跺畾涔夋帶鍒跺彉閲忥紝涓嶈兘鐢ㄤ簬鍔ㄦ佹帶浠躲?br>
銆銆姝g‘鍋氭硶鏄敤new璋冪敤CButton鏋勯犲嚱鏁扮敓鎴愪竴涓疄渚嬶細(xì)
CButton *p_MyBut = new CButton();
銆銆鐒跺悗鐢–Button綾葷殑Create()鍑芥暟鍒涘緩錛岃鍑芥暟鍘熷瀷濡備笅錛?br>
BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
銆銆lpszCaption鏄寜閽笂鏄劇ず鐨勬枃鏈紱dwStyle鎸囧畾鎸夐挳椋庢牸錛屽彲浠ユ槸鎸夐挳椋庢牸涓庣獥鍙i鏍肩殑緇勫悎錛屽彇鍊兼湁錛?br>
銆銆紿楀彛椋庢牸錛?br>
銆銆·WS_CHILD 瀛愮獥鍙o紝蹇呴』鏈?br>銆銆·WS_VISIBLE 紿楀彛鍙錛屼竴鑸兘鏈?br>銆銆·WS_DISABLED 紱佺敤紿楀彛錛屽垱寤哄垵濮嬬姸鎬佷負(fù)鐏拌壊涓嶅彲鐢ㄧ殑鎸夐挳鏃朵嬌鐢?br>銆銆·WS_TABSTOP 鍙敤Tab閿夋嫨
銆銆·WS_GROUP 鎴愮粍錛岀敤浜庢垚緇勭殑鍗曢夋寜閽腑鐨勭涓涓寜閽?br>
銆銆鎸夐挳椋庢牸錛?br>
銆銆·BS_PUSHBUTTON 涓嬪帇寮忔寜閽紝涔熷嵆鏅氭寜閽?br>銆銆·BS_AUTORADIOBUTTON 鍚嚜鍔ㄩ変腑鐘舵佺殑鍗曢夋寜閽?br>銆銆·BS_RADIOBUTTON 鍗曢夋寜閽紝涓嶅父鐢?br>銆銆·BS_AUTOCHECKBOX 鍚嚜鍔ㄩ変腑鐘舵佺殑澶嶉夋寜閽?br>銆銆·BS_CHECKBOX 澶嶉夋寜閽紝涓嶅父鐢?br>銆銆·BS_AUTO3STATE 鍚嚜鍔ㄩ変腑鐘舵佺殑涓夋佸閫夋寜閽?br>銆銆·BS_3STATE 涓夋佸閫夋寜閽紝涓嶅父鐢?br>銆
銆銆浠ヤ笂椋庢牸鎸囧畾浜?jiǎn)鍒涘缓鐨勬寜閽c誨瀷錛屼笉鑳藉悓鏃朵嬌鐢紝浣嗗繀欏繪湁鍏朵竴銆?br>
銆銆·BS_BITMAP 鎸夐挳涓婂皢鏄劇ず浣嶅浘
銆銆·BS_DEFPUSHBUTTON 璁劇疆涓洪粯璁ゆ寜閽紝鍙敤浜庝笅鍘嬪紡鎸夐挳錛屼竴涓璇濇涓彧鑳芥寚瀹氫竴涓粯璁ゆ寜閽?br>銆銆·rect鎸囧畾鎸夐挳鐨勫ぇ灝忓拰浣嶇疆錛?br>銆銆·pParentWnd鎸囩ず鎷ユ湁鎸夐挳鐨勭埗紿楀彛錛屼笉鑳戒負(fù)NULL錛?br>銆銆·nID鎸囧畾涓庢寜閽叧鑱旂殑ID鍙鳳紝鐢ㄤ笂涓姝ュ垱寤虹殑ID鍙楓?br>
銆銆涓嶅悓鎺т歡綾葷殑Create()鍑芥暟鐣ユ湁涓嶅悓錛屽彲鍙傝冪浉鍏寵祫鏂欍?br>
銆銆渚嬶細(xì)p_MyBut->Create( "鍔ㄦ佹寜閽?, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(20,10,80,40), this, IDC_MYBUTTON );
榪欐牱錛屾垜浠氨鍦ㄥ綋鍓嶅璇濇涓殑(20,10)澶勫垱寤轟簡(jiǎn)瀹?0錛岄珮30錛屾寜閽枃瀛椾負(fù)“鍔ㄦ佹寜閽?#8221;鐨勪笅鍘嬪紡鎸夐挳銆?br>
銆銆涓轟簡(jiǎn)浣垮垱寤鴻繃紼嬫洿鏂逛究鏄撶敤錛屾垜瀹氫箟浜?jiǎn)濡備笅鍑芥晭图?xì)
CButton* CTextEditorView::NewMyButton(int nID,CRect rect,int nStyle)
{
CString m_Caption;
m_Caption.LoadString( nID ); //鍙栨寜閽爣棰?br>CButton *p_Button = new CButton();
ASSERT_VALID(p_Button);
p_Button->Create( m_Caption, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | nStyle, rect, this, nID ); //鍒涘緩鎸夐挳
return p_Button;
}
銆銆鍏朵腑m_Caption.LoadString( nID )鏄粠瀛楃涓茶〃涓鍙栨寜閽枃鏈紝榪欐牱鍦ㄥ垱寤烘寜閽甀D鏃訛紝搴旇鎶婃枃鏈緗ソ錛屽弬鏁皀Style涓洪櫎蹇呴』椋庢牸澶栫殑棰濆椋庢牸銆?br>
銆銆浠ヤ笅錛屾垜璋冪敤璇ュ嚱鏁板垱寤轟笁涓寜閽紝騫舵寚瀹氱涓涓寜閽負(fù)榛樿鎸夐挳錛屾寜閽殑ID宸查鍏堣緗ソ浜?jiǎn)锛?xì)
CButton *p_MyBut[3];
p_MyBut[0] = NewMyButton( ID_MYBUT1, CRect(10,20,50,35), BS_DEFPUSHBUTTON );
p_MyBut[1] = NewMyButton( ID_MYBUT2, CRect(55,20,95,35), 0 );
p_MyBut[2] = NewMyButton( ID_MYBUT3, CRect(100,20,140,35), 0 );
銆銆浜屻佸姩鎬佹帶浠剁殑鍝嶅簲錛?br>
銆銆鍔ㄦ佹帶浠剁殑鍝嶅簲鍑芥暟涓嶈兘鐢–lassWizard娣誨姞錛屽彧鑳芥墜鍔ㄦ坊鍔犮備粛浠ヤ笂闈㈢殑鎸夐挳涓轟緥錛屾垜浠埗浣滄寜閽殑鍗曞嚮鍝嶅簲鍑芥暟銆?br>
銆銆1.鍦∕ESSAGE_MAP涓坊鍔犲搷搴斿嚱鏁幫細(xì)
銆銆MESSAGE_MAP琛ㄤ腑瀹氫箟浜?jiǎn)娑堟伅鍝嶅簲鍑芥晭图屽叾鏍煎紡湄?fù)錛氭秷鎭悕(ID,鍑芥暟鍚?錛屽綋鎴戜滑鐢–lassWizard娣誨姞鍑芥暟鏃訛紝浼?xì)鑷姩娣诲姞鍦ˋFX_MSG_MAP鎷搗鐨勫尯闂村唴錛屽錛?br>
銆
BEGIN_MESSAGE_MAP(CTextEditorView, CFormView)
//{{AFX_MSG_MAP(CTextEditorView)
ON_BN_CLICKED(IDC_ICONBUT0, OnIconbut0)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
銆銆鎵嬪伐娣誨姞鏃朵笉瑕佹坊鍔犲埌AFX_MSG_MAP鍖洪棿鍐咃紝浠ラ槻ClassWizard涓嶈兘姝e父宸ヤ綔錛屽錛?
BEGIN_MESSAGE_MAP(CTextEditorView, CFormView)
//{{AFX_MSG_MAP(CTextEditorView)
ON_BN_CLICKED(IDC_ICONBUT0, OnIconbut0)
//}}AFX_MSG_MAP
ON_BN_CLICKED(ID_MYBUT1, OnMybut1)
ON_BN_CLICKED(ID_MYBUT2, OnMybut2)
ON_BN_CLICKED(ID_MYBUT3, OnMybut3)
END_MESSAGE_MAP()
銆銆鍏朵腑ON_BN_CLICKED鏄寜閽崟鍑?yán)L秷鎭?br>
銆銆2.鍦ㄥご鏂囦歡涓坊鍔犲嚱鏁板畾涔夛細(xì)
銆銆鐢–lassWizard娣誨姞鍑芥暟鏃訛紝浼?xì)鍦ㄥご鏂囦欢鐨凙FX_MSG鍖洪棿鍐呮坊鍔犲嚱鏁板畾涔夛紝濡傦細(xì)
protected:
//{{AFX_MSG(CTextEditorView)
afx_msg void OnIconbut0();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
銆銆鎴戜滑妯′豢榪欑褰㈠紡錛屽彧鏄妸鍑芥暟瀹氫箟娣誨姞鍒癆FX_MSG鍖洪棿澶栧氨琛屼簡(jiǎn)錛?br>
protected:
//{{AFX_MSG(CTextEditorView)
afx_msg void OnIconbut0();
//}}AFX_MSG
afx_msg void OnMybut1();
afx_msg void OnMybut2();
afx_msg void OnMybut3();
DECLARE_MESSAGE_MAP()
銆銆3.緙栧啓娑堟伅鍝嶅簲鍑芥暟錛?br>
銆銆浠ヤ笂鏄妸娑堟伅鍜屽嚱鏁板叧鑱旇搗鏉ヤ簡(jiǎn)錛屽叿浣撳湪鍗曞嚮鎸夐挳鍚庡簲鍋氱殑宸ヤ綔鍦ㄥ嚱鏁頒腑瀹屾垚錛?
void CTextEditorView::OnMybut1()
{
MessageBox( "鍝堬紒浣犲崟鍑諱簡(jiǎn)鍔ㄦ佹寜閽? );
}
void CTextEditorView::OnMybut2()
{
……
}
void CTextEditorView::OnMybut3()
{
……
}
銆銆闄や簡(jiǎn)鎸夐挳鐨勫搷搴斿嚱鏁板錛屼綘榪樺彲浠ョ敤涓婇潰鑾峰緱鐨勬寚閽堣闂寜閽紝濡傦細(xì)
銆銆淇敼鎸夐挳鐨勫ぇ灝忓拰浣嶇疆錛歱_MyBut[0]->MoveWindow(……);
銆銆淇敼鎸夐挳鏂囨湰錛歱_MyBut[0]->SetWindowText(……);
銆銆鏄劇ず/闅愯棌鎸夐挳錛歱_MyBut[0]->ShowWindow(……);絳夌瓑銆?br>涓夈佸洖鏀惰祫婧愶細(xì)
銆銆鐢變簬鍔ㄦ佹帶浠跺璞℃槸鐢眓ew鐢熸垚鐨勶紝瀹冧笉浼?xì)琚E嬪簭鑷姩閲婃斁錛屾墍浠ラ渶鎵嬪伐閲婃斁銆傚湪鎺т歡涓嶅啀浣跨敤鏃跺彲浠ュ垹闄ゅ畠錛?br>
if( p_MyBut[0] )
delete p_MyBut[0];
銆銆浠ヤ笂灝辨槸鎸夐挳鎺т歡鍔ㄦ佺敓鎴愮殑鏂規(guī)硶銆備笅闈紝鍐嶇湅涓涓嬪崟閫夋寜閽殑鍔ㄦ佺敓鎴愰棶棰樸?鍥涖佸疄渚嬶細(xì)鍗曢夋寜閽粍鐨勫姩鎬佺敓鎴?br>
銆銆鍗曢夋寜閽篃灞炰簬CButton綾伙紝浣嗙敱浜庡崟閫夋寜閽繪槸鎴愮粍浣跨敤鐨勶紝鎵浠ュ畠鍦ㄥ埗浣滃拰浣跨敤涓婁笌鏅氭寜閽湁涓瀹氬尯鍒?br>
銆銆鍋囪鏈変笁涓崟閫夋寜閽粍鎴愪竴緇勶紝鍒濆鏃訛紝絎竴涓崟閫夋寜閽浜庨変腑鐘舵併?br>
銆銆鎴戜滑鍏堟潵鐪嬮潤(rùn)鎬佸埗浣滄柟娉曪細(xì)鍦ㄥ璇濇涓斁緗笁涓崟閫夋寜閽紝璁劇疆灞炴у涓嬶細(xì)
銆銆·Radio1灞炴э細(xì)Visible銆丟roup銆乀ab stop銆丄uto
銆銆·Radio2灞炴э細(xì)Visible銆乀ab stop銆丄uto
銆銆·Radio3灞炴э細(xì)Visible銆乀ab stop銆丄uto
銆銆榪欐牱鐨勫睘鎬ц緗氨鎶婁笁涓崟閫夋寜閽垎鎴愪簡(jiǎn)涓緇勶紝瀹冧滑涓嬈″彧鑳芥湁涓涓閫変腑錛岃嫢瀵硅瘽妗嗕腑榪樻湁鍏跺畠鎴愮粍鐨勫崟閫夋寜閽紝浣跨敤鏃朵篃浼?xì)浜掍笉骞叉壈銆備絾榪欐椂榪樻病鏈変嬌絎竴涓寜閽浜庨変腑鐘舵併?br>
銆銆鎺ョ潃灝辯敤ClassWizard涓鴻繖緇勫崟閫夋寜閽坊鍔犲彉閲忥紝榪欓噷鍙渶涓虹涓涓崟閫夋寜閽坊鍔犲彉閲忓嵆鍙傝鍙橀噺鍚嶄負(fù)m_Radio錛岀被鍨嬮変負(fù)int鍨嬨傚湪鏋勯犲嚱鏁頒腑ClassWizard鎶妋_Radio鐨勫艱緗負(fù)-1錛屾垜浠妸瀹冩敼涓?錛岃繖鏍峰湪榪愯紼嬪簭鏃跺彲浠ョ湅鍒扮涓涓崟閫夋寜閽浜庨変腑鐘舵佷簡(jiǎn)銆備箣鍚庯紝榪樺簲璇ョ敤ClassWizard涓轟笁涓崟閫夋寜閽坊鍔犲崟鍑誨搷搴斿嚱鏁幫紝鍦ㄩ噷闈慨鏀筸_Radio鐨勫煎搴斾笁涓崟閫夋寜閽氨鍙互浜?jiǎn)銆?br>
銆銆浠ヤ笂灝辨槸閫氬父鍒朵綔鍗曢夋寜閽粍鐨勫姙娉曪紝鐜版垜浠鏀逛負(fù)鍔ㄦ佺敓鎴愶紝涓昏瑕佽В鍐蟲(chóng)寜閽垎緇勫拰鍗曞嚮鎺у埗闂銆備互涓嬩負(fù)鍒朵綔姝ラ錛?br>
銆銆1.瀹氫箟涓変釜鍗曢夋寜閽殑ID錛?br>
銆銆鎵撳紑璧勬簮涓殑“String Table”錛屽湪鍏朵腑娣誨姞涓変釜ID鍊鹼細(xì)
銆銆·絎竴涓細(xì)ID涓篒DC_MYRADIO1錛孋aption涓哄崟閫?
銆銆·絎簩涓細(xì)ID涓篒DC_MYRADIO2錛孋aption涓哄崟閫?
銆銆·絎笁涓細(xì)ID涓篒DC_MYRADIO3錛孋aption涓哄崟閫?
銆銆鍏朵腑Caption涓烘寜閽笂瑕佹樉紺虹殑鏂囧瓧錛屽彲鏍規(guī)嵁闇瑕佽緗?br>
銆銆2.鐢–Button綾葷殑Create()鍑芥暟鐢熸垚涓変釜鍗曢夋寜閽細(xì)
銆銆涓烘柟渚胯搗瑙侊紝鍏堝畾涔変竴涓嚱鏁扮敓鎴愬崟閫夋寜閽細(xì)
CButton* CTextEditorView::NewMyRadio(int nID,CRect rect,int nStyle)
{
銆CString m_Caption;
銆m_Caption.LoadString( nID ); //鍙栨寜閽爣棰?br>銆CButton *p_Radio = new CButton();
銆ASSERT_VALID(p_Radio);
銆p_Radio->Create( m_Caption, WS_CHILD | WS_VISIBLE | nStyle | WS_TABSTOP | BS_AUTORADIOBUTTON, rect, this, nID ); //鍒涘緩鎸夐挳
銆return p_Radio;
}
銆銆鍑芥暟LoadString()鐢ㄤ簬浠?#8220;String Table”涓鍙栨寜閽枃鏈紝Create()鍑芥暟涓瀹氫簡(jiǎn)鍗曢夋寜閽繀欏葷殑灞炴э紝鍏朵腑灝卞寘鎷簡(jiǎn)Visible銆乀ab stop銆丄uto灞炴с?br>
銆銆鍙傛暟nID涓哄崟閫夋寜閽甀D鍙鳳紝rect涓哄崟閫夋寜閽昂瀵革紝nStyle涓洪櫎蹇呰灞炴у鐨勫叾瀹冨睘鎬с傝繑鍥炲間負(fù)鎸囧悜鏂板緩鎸夐挳鐨勬寚閽堛?br>
銆銆鏈変簡(jiǎn)榪欎釜鍑芥暟鍚庯紝鍒涘緩鍗曢夋寜閽粍鏃跺彧瑕佷緷嬈¤皟鐢ㄨ鍑芥暟鍗沖彲錛屽叾涓崟閫夋寜閽粍鐨勭涓涓崟閫夋寜閽繀欏繪寚瀹歐S_GROUP灞炴с?br>
CButton *p_MyRadio[3];
p_MyRadio[0] = NewMyRadio( IDC_MYRADIO1, CRect(15,90,60,105), WS_GROUP );
p_MyRadio[1] = NewMyRadio( IDC_MYRADIO2, CRect(15,108,60,123), 0 );
p_MyRadio[2] = NewMyRadio( IDC_MYRADIO3, CRect(15,126,60,141), 0 );
銆銆3.瀹氫箟鍗曢夋寜閽粍鐨勬帶鍒跺彉閲忥紝璁劇疆絎竴涓崟閫夋寜閽負(fù)閫変腑鐘舵侊細(xì)
銆銆榪欓噷涓嶈兘鐢–lassWizard娣誨姞鍙橀噺錛屼篃涓嶈鍦―oDataExchange()涓坊鍔犳帶鍒跺彉閲忥紝鍥犱負(fù)鍔ㄦ佹帶浠朵竴寮濮嬪茍涓嶅瓨鍦紝鍦―oDataExchange()涓坊鍔犳帶鍒跺彉閲忎細(xì)閫犳垚榪愯閿欒銆傝繖閲屾垜浠彧闇鍦ㄥご鏂囦歡涓殢鎰忓畾涔変竴涓猧nt鍨嬪彉閲忎綔涓烘帶鍒跺彉閲忓嵆鍙紝濡傦細(xì)
int m_SelRadio;
銆銆鍦ㄦ瀯閫犲嚱鏁頒腑璁劇疆鍏跺垵鍊間負(fù)0錛歮_SelRadio = 0;
銆銆鍦ㄤ笂闈㈢殑鍒涘緩鎸夐挳鐨勮鍙ヤ腑錛岀敤SetCheck()鍑芥暟璁劇疆鍒濆閫変腑鐨勬寜閽細(xì)
CButton *p_MyRadio[3];
p_MyRadio[0] = NewMyRadio( IDC_MYRADIO1, CRect(15,90,60,105), WS_GROUP );
p_MyRadio[1] = NewMyRadio( IDC_MYRADIO2, CRect(15,108,60,123), 0 );
p_MyRadio[2] = NewMyRadio( IDC_MYRADIO3, CRect(15,126,60,141), 0 );
p_MyRadio[m_SelRadio]->SetCheck(1); //璁劇疆絎竴涓崟閫変負(fù)閫変腑鐘舵?
銆銆鍦⊿etCheck()鍑芥暟涓紝鍙傛暟涓?琛ㄧず璁劇疆涓洪変腑鐘舵侊紝涓?琛ㄧず鏈変腑鐘舵併?br>
銆銆4.娣誨姞榧犳爣鍗曞嚮鍝嶅簲鍑芥暟錛?br>
銆銆榧犳爣鍗曞嚮鏌愬崟閫夋寜閽悗錛屽叾鐘舵佸凡緇忚兘鑷姩鏀瑰彉錛岃繖閲屾垜浠繕闇淇敼鎺у埗鍙橀噺m_SelRadio鐨勫鹼紝浠ヤ究璺熻釜閫変腑鐨勫崟閫夋寜閽?br>
銆銆棣栧厛鍦∕ESSAGE_MAP涓妸榧犳爣鍗曞嚮娑堟伅涓庡搷搴斿嚱鏁拌仈緋昏搗鏉ワ細(xì)
BEGIN_MESSAGE_MAP(CTextEditorView, CFormView)
//{{AFX_MSG_MAP(CTextEditorView)
ON_BN_CLICKED(IDC_ICONBUT0, OnIconbut0) //ClassWizard鍦ㄦ澶勬坊鍔?br>//}}AFX_MSG_MAP
ON_BN_CLICKED(IDC_MYRADIO1, OnMyRadio1) //鍗曢夋寜閽?
ON_BN_CLICKED(IDC_MYRADIO2, OnMyRadio2) //鍗曢夋寜閽?
ON_BN_CLICKED(IDC_MYRADIO3, OnMyRadio3) //鍗曢夋寜閽?
END_MESSAGE_MAP()
銆銆鐒跺悗鍦ㄥご鏂囦歡鐨凪ESSAGE_MAP涓畾涔夊崟鍑誨嚱鏁幫細(xì)
protected:
//{{AFX_MSG(CTextEditorView)
afx_msg void OnIconbut0(); //ClassWizard鍦ㄦ澶勬坊鍔?br>//}}AFX_MSG
afx_msg void OnMyRadio1(); //鍗曢夋寜閽?
afx_msg void OnMyRadio2(); //鍗曢夋寜閽?
afx_msg void OnMyRadio3(); //鍗曢夋寜閽?
DECLARE_MESSAGE_MAP()
銆銆榪欓噷娉ㄦ剰涓嶈鎶婂嚱鏁板姞鍦ˋFX_MSG鍖洪棿鍐咃紝浠ラ槻褰卞搷ClassWizard鐨勪嬌鐢ㄣ?br>
銆銆瀹氫箟鍏蜂綋鐨勫搷搴斿嚱鏁幫紙榪欓噷鏄敤鎵嬪伐鍔犲叆鐨勶紝涓嶆槸鐢–lassWizard鍔犲叆鐨勶級(jí)錛?br>
//鍗曞嚮鍗曢夋寜閽? void CTextEditorView::OnMyRadio1()
{
m_SelRadio=0;
}
//鍗曞嚮鍗曢夋寜閽? void CTextEditorView::OnMyRadio2()
{
m_SelRadio=1;
}
//鍗曞嚮鍗曢夋寜閽? void CTextEditorView::OnMyRadio3()
{
m_SelRadio=2;
}
銆銆5.鍥炴敹璧勬簮錛?br>
銆銆鍦ㄦ瀽鏋勫嚱鏁頒腑錛屽洖鏀跺垱寤虹殑鍗曢夋寜閽紙涔熷彲浠ュ湪涓嶄嬌鐢ㄥ崟閫夋寜閽椂绔嬪嵆鍥炴敹錛夛細(xì)
CTextEditorView::~CTextEditorView()
{
int i;
for( i=0; i<3; i++)
{
if(p_MyRadio[i])
delete p_MyRadio[i];
}
}
銆銆浠ヤ笂灝辨槸鍔ㄦ佹帶浠剁殑鐢熸垚鍜屽搷搴旀柟娉曪紝鍚勭涓嶅悓鐨勬帶浠跺仛娉曠暐鏈変笉鍚岋紝浣嗘濊礬鍜屾楠ら兘鏄被浼肩殑錛屽笇鏈涗互涓婂疄渚嬪浣犺兘澶熸湁鎵甯姪銆?
]]>
{
......
public:
typedef ITaskbarList *LPITaskbarList;
LPITaskbarList pTaskbar;
......
};
Step 2: 鍒濆鍖?浠誨姟鏍廋OM 瀵硅薄
BOOL CXDlg::OnInitDialog()
{
......
// Initializes the Component Object Model(COM)
CoInitialize(0);
// We call below function since we only need to create one object
CoCreateInstance(
CLSID_TaskbarList,
0,
CLSCTX_INPROC_SERVER,
IID_ITaskbarList,
(void**)&pTaskbar
);
// Below function will initialize the taskbar list object
pTaskbar->HrInit();
......
}
Step 3: 浣跨敤錛氬垹闄?鏄劇ず 浠誨姟鏍忕▼搴忔寜閽?/u>
void CXDlg::OnBnClickedButtonHide()
{
pTaskbar->DeleteTab(this->GetSafeHwnd());
}
void CXDlg::OnBnClickedButtonShow()
{
pTaskbar->AddTab(this->GetSafeHwnd());
}
GardenUI(鍏嶈垂錛岀晫闈㈡晥鏋滄尯濂界殑,XML錛屼唬鐮?鐣岄潰 鍒嗙)
http://www.gardenui.com/
CJLib(寮婧愶紝鍏嶈垂錛孶NICODE緙栫爜,鏄痻treme toolkit鐨勫墠鐢燂紝浣唜treme toolkit鏀惰垂浜?
http://www.codejock.com/
LibUIDK(閮ㄥ垎鍏嶈垂錛屼笉寮婧愶紝鏁堟灉濂?閫傚悎璐村浘)
http://www.iuishop.com/download.htm
BCGControlBar(鏀惰垂錛岀晫闈㈡劅瑙夊拰Office綾諱技)
http://www.bcgsoft.com
SKin++(鏀惰垂錛岀晫闈㈠緢濂界湅錛屼粠瀹冪殑鎴浘涓婂彲浠ョ湅鍑?
http://www.uipower.com/
SkinMagic(鏀惰垂錛岀湅璧鋒潵鍍廜ffice)
http://appspeed.com/html/download.html
ActiveSkin(鏈煡)
http://www.softshape.com/software/develop/
SYGUI(鏀惰垂,綾諱技Office)
http://www.sygui.com/
_declspec(dllexport)int subtract(int a, int b)
{
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)return a-b;
}
_declspec(dllexport)琛ㄧず涓哄鍑哄嚱鏁?鍙緵搴旂敤紼嬪簭璋冪敤銆?extern C"琛ㄧず,鍙互浣跨敤鍏朵粬緙栫▼璇█璁塊棶dll涓殑鍑芥暟.
緙栬瘧鍚庡彲浠ュ緱鍒癉LL1.DLL鏂囦歡.
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
dlltest.dlg
extern int add(int x,int y);
extern int subtract(int x,int y);
//_declspec(dllimport) int add(int a, int b )
//_declspec(dllimport)int subtract(int a, int b)聽(tīng)聽(tīng) //榪欐牱鐨勬柟娉曞憡璇夌紪璇戝櫒榪欎簺鍑芥暟鏄粠涓涓猟ll涓皟鐢ㄧ殑鍑芥暟.緙栬瘧鍣ㄥ氨鑳借皟鐢ㄧ浉搴旂殑lib鏂囦歡,鎻愰珮榪愯鏁堢巼
extern鍙互緗簬鍙橀噺鎴栬?/font>鍑芥暟鍓嶏紝浠ユ爣紺哄彉閲忔垨鑰?/font>鍑芥暟鐨勫畾涔夊湪鍒殑鏂囦歡涓紝鎻愮ず緙栬瘧鍣ㄩ亣鍒版鍙橀噺鍜?/font>鍑芥暟鏃跺湪鍏朵粬妯″潡涓鎵懼叾瀹氫箟
聽(tīng)CString str;
聽(tīng)str.Format("3+5=%d",add(3,5));
聽(tīng)MessageBox(str);
緙栬瘧鍣ㄥ伐紼嬪睘鎬INK-->input-->additional dependencies 娣誨姞鐩稿簲鐨刲ib鏂囦歡,LINK-->input-->Module defintion file娣誨姞def鏂囦歡.
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
濡備綍鏄懼紡鐨勫姞杞戒竴涓姩鎬侀摼鎺ュ簱
鍔ㄦ佸姞杞戒笉闇瑕乴ib鏂囦歡,鍙渶瑕乨ll鏂囦歡鍗沖彲
HINSTANCE涓嶩MODULE鍙互閫氱敤
HInstance hinst;
hinst = Loadlibrary("dll2.dll");聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //鏄懼紡鍔犺澆
typedef int (*ADDPROC)(int a , int b);聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //瀹氫箟涓涓嚱鏁版寚閽?br />ADDPROC Add = (ADDPROC)getprocAdress(hinst, "add");聽(tīng)聽(tīng)聽(tīng) //鑾峰緱鍑芥暟鎸囬拡
if(!add)
{
聽(tīng)聽(tīng)聽(tīng)messagebox("fail");
}
else
{
聽(tīng)聽(tīng)聽(tīng)聽(tīng)CString str;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)str.Format("3+5=%d",add(3,5));
聽(tīng)聽(tīng)聽(tīng)聽(tīng)MessageBox(str);
}
Sort(int a[],int left,int right)
{
聽(tīng)聽(tīng) int value,l,r,temp;
聽(tīng) 聽(tīng)l=left;
聽(tīng) 聽(tīng)r=right;
聽(tīng) 聽(tīng)value = a[(left+right)/2];
聽(tīng)聽(tīng) while(l<r)
聽(tīng) 聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) while(a[l]<value)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 聽(tīng)l++;
聽(tīng)聽(tīng)聽(tīng)聽(tīng) 聽(tīng)while(a[r]>value)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 聽(tīng)r--;
聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)if(l>=r)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 聽(tīng)break;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) temp = a[l];
聽(tīng)聽(tīng)聽(tīng)聽(tīng) 聽(tīng)a[l] = a[r];
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) a[r] = temp;
聽(tīng)聽(tīng)聽(tīng)聽(tīng) 聽(tīng)l++;
聽(tīng)聽(tīng)聽(tīng)聽(tīng) 聽(tīng)r--;
聽(tīng)聽(tīng) }
聽(tīng)聽(tīng) if(l==r)
聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)l++;
聽(tīng) 聽(tīng)if(left<r)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Sort(a,left,l-1);
聽(tīng)聽(tīng) if(l<right)
聽(tīng)聽(tīng)聽(tīng)聽(tīng) 聽(tīng)Sort(a,r+1,right);
}
鏁呮葷粨浜?jiǎn)涓涓嬭嚜宸辯殑浣跨敤緇忛獙錛屼互渚涘弬鑰冧嬌鐢ㄣ?/p>
銆銆鍏堟敞鏄庝竴涓嬶紝榪欓噷錛屾垜浠敤m_listctrl鏉ヨ〃紺轟竴涓狢ListCtrl鐨勭被瀵硅薄錛?/p>
鐒跺悗榪欓噷鎴戜滑鐨凩istCtrl閮芥槸report褰㈠紡錛岃嚦浜庡叾浠栫殑濡備粈涔堝ぇ鍥炬爣錛屽皬鍥炬爣
鐨勬殏鏃朵笉璁詫紝姣曠珶report鏄ぇ浼楄瘽鐨勪嬌鐢ㄣ傚叾嬈★紝鎴戜滑榪欓噷鐢ㄦ潯嬈句竴錛屾潯嬈句簩
鏉ユ弿榪扮涓鐐癸紝絎簩鐐癸紝榪欎釜鏄弬鐓с奅ffective C++銆嬬殑鍙硶錛屼亢瑙夊緱榪欎箞
鍙瘮杈僀OOL :)
銆鏉℃涓錛氳緗甃istCtrl鐨勯鏍?/p>
銆鍦–SDN涓婂父甯哥湅鍒版湁浜洪棶鎬庝箞璁劇疆椋庢牸鐨勶紝浠栦滑ListCtrl鐨勬牱瀛愭槸涓涓垪琛?/p>
錛屾湁妯潯鍜岀珫鏉″垎鐣岀嚎錛岀劧鍚庨変腑涓琛岋紝瑕佹暣涓琛岄兘閫変腑錛岃屼笉鏄彧鏈夋煇涓鍒?/p>
琚変腑錛岀瓑絳夛紝榪欓噷緇欎竴涓瘮杈冨叏闈㈢殑璁劇疆鏂規(guī)硶銆?/p>
//鑾峰緱鍘熸湁椋庢牸
聽(tīng)DWORD dwStyle = ::GetWindowLong(m_listctrl.m_hWnd, GWL_STYLE);
聽(tīng)dwStyle &= ~(LVS_TYPEMASK);
聽(tīng)dwStyle &= ~(LVS_EDITLABELS);
聽(tīng)//璁劇疆鏂伴鏍?br />聽(tīng)聽(tīng)聽(tīng) SetWindowLong(m_listctrl.m_hWnd, GWL_STYLE,
dwStyle,|LVS_REPORT|LVS_NOLABELWRAP|LVS_SHOWSELALWAYS);
聽(tīng)//璁劇疆鎵╁睍椋庢牸
聽(tīng)DWORD styles =
LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES;
聽(tīng)ListView_SetExtendedListViewStyleEx(m_listctrl.m_hWnd, styles,
styles );
鍏朵腑LVS_EX_FULLROWSELECT銆灝辨槸鍓嶉潰璇村緱鏁磋閫変腑
LVS_EX_GRIDLINES銆緗戞牸綰匡紙鍙傜敤涓巖eport椋庢牸鐨刲istctrl錛?/p>
LVS_EX_CHECKBOXES銆鍓嶉潰鍔犱釜checkbox
pListCtrl->SetExtendedStyle(聽(tīng) m_listctrl.GetExtendedStyle()
|LVS_EX_SUBITEMIMAGES);
榪欎篃鏄竴涓緢閲嶈鐨勫睘鎬э紝榪欐牱鐨勮瘽錛屽彲浠ュ湪鍒楄〃涓姞I(yíng)CON錛岃寰梬indows鐨?/p>
浠誨姟綆$悊鍣ㄥ悧錛屼綘鎯沖仛寰楅偅鏍鳳紝榪欎釜灞炴т篃瑕佸姞鍝︼紝榪欎釜鎴戜互鍚庝細(xì)璁茬殑锝?/p>
鏉℃浜岋細(xì)鍔犲叆鍒楀ご
銆銆榪欐槸涓涓瘮杈冨疄璐ㄧ殑涓滆タ錛岀粰鍒楄〃妗嗗垎鍒楋紝鐒跺悗鍔犱笂鍒楀ご
銆銆浠g爜璇磋瘽錛屾潵浜?/p>
銆銆TCHAR rgtsz[2][10] = {_T("鍒楀ご1"), _T("鍒楀ご2")};
聽(tīng)
聽(tīng)LV_COLUMN lvcolumn;
聽(tīng)CRect rect;
聽(tīng)m_listctrl.GetWindowRect(&rect);
聽(tīng)for(int i=0;i<2;i++)
聽(tīng){
聽(tīng) 銆lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT
聽(tīng)聽(tīng)聽(tīng)聽(tīng) 銆銆銆銆銆銆銆銆 | LVCF_WIDTH | LVCF_ORDER;
聽(tīng) 銆lvcolumn.fmt = LVCFMT_LEFT;
聽(tīng) 銆lvcolumn.pszText = rgtsz[i];
聽(tīng)銆 lvcolumn.iSubItem = i;
聽(tīng) 銆lvcolumn.iOrder = i;
聽(tīng)銆 if(i==0)
聽(tīng) 銆{
聽(tīng)聽(tīng) 銆銆銆lvcolumn.cx = rect.Width()*3/5 ;
聽(tīng)銆 }
聽(tīng)銆 else
聽(tīng)聽(tīng) 銆銆lvcolumn.cx = rect.Width()*2/5;
聽(tīng) 銆銆銆銆
銆銆銆m_listctrl.InsertColumn(i, &lvcolumn);
聽(tīng)銆}
榪欐槸鎻掑叆涓ゅ垪鐨勫仛娉曪紝浣犺鎻掑叆20鍒楋紵錛熼殢渚夸綘錛屼緷鏍風(fēng)敾钁姦锝烇綖
銆lvcolumn.mask 涓偅涓猰ask鍙互鏈夊悇縐嶅睘鎬э紝鍏蜂綋鍘葷湅msdn鍚э紝
聽(tīng)
鏉℃涓夛細(xì)鎶婅褰曪紝鎻掑叆鍒楄〃妗嗕腑
銆int nIndex = m_listctrl.GetItemCount();
聽(tīng) LV_ITEM聽(tīng)聽(tīng) lvitemAdd = {0};
聽(tīng) lvitemAdd.mask = LVIF_TEXT;
聽(tīng) lvitemAdd.iItem = nIndex ;
聽(tīng) lvitemAdd.iSubItem = 0;
聽(tīng) lvitemAdd.pszText =_T("姣涙瘺1");;
聽(tīng) if (m_listctrl.InsertItem(&lvitemAdd) != -1)
聽(tīng) {
聽(tīng)聽(tīng) LV_ITEM lvitem = {0};
聽(tīng)聽(tīng) lvitem.mask = LVIF_TEXT;
聽(tīng)聽(tīng) lvitem.iItem = nIndex ;
聽(tīng)聽(tīng) lvitem.iSubItem = 1;
聽(tīng)
聽(tīng)聽(tīng) lvitem.pszText =_T("姣涙瘺2");
聽(tīng)聽(tīng) m_listctrl.SetItem(&lvitem);
聽(tīng)聽(tīng)
聽(tīng) }
nIndex 鏄綋鍓嶇殑琛屾暟錛岀劧鍚庢妸鏂扮殑涓琛岋紝鎻掑湪鏈涓嬮潰錛?/p>
聽(tīng)
鏉℃鍥涳細(xì)緇欏垪琛ㄤ腑鎻掑叆鍥炬爣
銆鍦╮eport鏍煎紡涓紝涔熻兘鎻掑叆鍥炬爣
銆緇х畫(huà)浠g爜璇磋瘽
銆m_image鏄釜CImageList瀵硅薄
銆m_image.Create(16,16, TRUE|ILC_COLOR24, 3, 1);
聽(tīng)m_listctrl.SetImageList(&m_image,LVSIL_SMALL);
鐒跺悗璋冪敤CImageList鐨勬垚鍛樺嚱鏁癷nt CImageList::Add( HICON hIcon );
鎶奍CON鎻掑叆鍒癷magelist錛?/p>
銆鐒跺悗鍦ㄦ彃鍏ヨ褰曠殑鏃跺?/p>
銆lvitemAdd.mask = LVIF_TEXT;銆錛嶃嬨lvitemAdd.mask =
LVIF_TEXT|LVIF_IMAGE
銆鐒跺悗娣誨姞涓涓猯vitemAdd.iImage = n;
銆榪欎釜n鏄痠magelist涓殑搴忓彿錛岃〃紺烘槸鍏蜂綋鐨勫摢涓涓浘鏍囷紝list涔堬紝鍛靛懙
聽(tīng)
鏉℃浜旓細(xì)銆鎻掑叆璁板綍鏃朵嬌鐢ㄩ澶栫殑淇℃伅錛宭Param 鐨勪嬌鐢?/p>
銆銆銆鏈夋椂鍊欙紝浣犳兂瀵逛簬鏌愪竴琛岋紝鍔犲叆涓浜涢澶栫殑淇℃伅錛岄偅涔堝氨鍙互浣跨敤榪欎釜
lParam
銆銆锝嶏綋锝勶綆鏄繖涔堟弿榪扮殑Specifies the 32-bit value of the item
銆銆鎴戜笂嬈℃槸涓轟簡(jiǎn)鍦ㄦ煇涓琛屽姞鍏ヤ竴涓俊鎭紝紿楀彛鍙ユ焺錛岀劧鍚庢槸榪欎箞鍔犵殑錛?/p>
銆銆int nIndex = m_listctrl.GetItemCount();
聽(tīng) LV_ITEM聽(tīng)聽(tīng) lvitemAdd = {0};
聽(tīng) lvitemAdd.mask = LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM;
聽(tīng) lvitemAdd.iItem = nIndex ;
聽(tīng) lvitemAdd.iSubItem = 0;
聽(tīng) lvitemAdd.pszText =_T("姣涙瘺1");;
聽(tīng) lvitemAdd.iImage = n;
聽(tīng) lvitemAdd.lParam = (LPARAM)hwnd;(鏌愪釜紿楀彛鐨勭獥鍙e彞鏌?
聽(tīng) if (m_listctrl.InsertItem(&lvitemAdd) != -1)
聽(tīng) {
聽(tīng)聽(tīng) LV_ITEM lvitem = {0};
聽(tīng)聽(tīng) lvitem.mask = LVIF_TEXT;
聽(tīng)聽(tīng) lvitem.iItem = nIndex ;
聽(tīng)聽(tīng) lvitem.iSubItem = 1;
聽(tīng)
聽(tīng)聽(tīng) lvitem.pszText =_T("姣涙瘺2");
聽(tīng)聽(tīng) m_listctrl.SetItem(&lvitem);
聽(tīng)聽(tīng)
聽(tīng) }
ok錛岃繖鏄竴涓瘮杈冨叏鐨勪緥瀛愮殑錛屽張鎻捍CON錛屽張浣跨敤PARAM鐨?/p>
鏉℃鍏錛氥鐐瑰嚮鍒楄〃妗嗭紝鑾峰彇閫変腑琛屼俊鎭?/p>
銆銆鍝嶅簲NM_CLICK娑堟伅錛屽鏋滀綘鏈塎SDN錛屽彲浠ョ湅鍒幫紝鏈変笓闂ㄥ叧浜巐istview鐨?/p>
NM_CLICK鐨勪粙緇?/p>
void CMyDlg::OnItemClick(NMHDR* pNMHDR, LRESULT* pResult)
{
聽(tīng)// TODO: Add your control notification handler code here
聽(tīng)int nItem = -1;
聽(tīng)
聽(tīng)LPNMITEMACTIVATE lpNMItemActivate = (LPNMITEMACTIVATE)pNMHDR;
聽(tīng)if(lpNMItemActivate != NULL)
聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng) nItem = lpNMItemActivate->iItem;
聽(tīng)}
}
鐜板湪nItem灝辨槸鐐瑰嚮閫変腑閭h鐨刬ndex浜?jiǎn)锛屾湁浜?jiǎn)index錛岃幏鍙栭偅琛岀殑淇℃伅榪橀毦鍚?/p>
錛?/p>
鎳掓眽璇達(dá)細(xì)闅撅紝鍥犱負(fù)浣犺繕娌¤錛屾檿錛岄偅灝辯戶緇
聽(tīng)
鏉℃涓冿細(xì)銆鏍規(guī)嵁琛岀殑index錛岃幏鍙栬琛岀殑淇℃伅
銆鐩存帴涓婁唬鐮佸惂
銆LV_ITEM lvitem = {0};
聽(tīng)聽(tīng) lvitem.iItem = nIndex;
聽(tīng)聽(tīng) lvitem.iSubItem = 0;
聽(tīng)聽(tīng) lvitem.mask = LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM;
m_listctrl.GetItem(&lvitem)
榪欐牱錛屽氨鎶妌index,絎竴鍒楃殑淇℃伅鍙栧嚭鏉ヤ簡(jiǎn)錛屽寘鎷垰鎵嶆垜浠姞鍏ョ殑ICON,鍜岄偅涓?/p>
棰濆淇℃伅錛堢獥鍙e彞鏌勶級(jí)錛?/p>
姣斿鎴戣鑾峰彇紿楀彛鍙ユ焺錛屽氨鍙互hwnd = (HWND)lvitem.lParam;
mask 鐢ㄦ潵鎸囨槑浣犳兂鑾峰彇閭d簺淇℃伅
鍏蜂綋鍙互鏌sdn涓璍VITEM Structure鐨勫畾涔夊拰CListCtrl::GetItem
聽(tīng)
鏉℃鍏細(xì)鐢ㄧ▼搴忛変腑鏌愪竴琛岋紝浣夸箣閫変腑
閫変腑涔嬨
m_listctrl.SetItemState
(nIndex,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);
涓嶉変腑錛屽彇娑堥変腑涔?/p>
m_listctrl.SetItemState(nIndex,0,LVIS_SELECTED|LVIS_FOCUSED);
聽(tīng)
鏉℃涔?jié)锛?xì)鑾峰彇褰撳墠鎵鏈夐変腑鐨勮錛堝閫夛級(jí)
銆銆榪欎釜錛屼亢灝辨瘮杈冩噿浜?jiǎn)锛屾妱msdn鐨勪唬鐮佸惂錛屽弽姝e緢綆鍗?/p>
銆銆
Example
// CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem
(IDC_YOURLISTCONTROL);
ASSERT(pListCtrl != NULL);
POSITION pos = pList->GetFirstSelectedItemPosition();
if (pos == NULL)
聽(tīng)聽(tīng) TRACE0("No items were selected!\n");
else
{
聽(tīng) while (pos)
聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng) int nItem = pList->GetNextSelectedItem(pos);
聽(tīng)聽(tīng)聽(tīng)聽(tīng) TRACE1("Item %d was selected!\n", nItem);
聽(tīng)聽(tīng)聽(tīng)聽(tīng) // you could do your own processing on nItem here
聽(tīng) }
}
聽(tīng)
鏉℃鍗侊細(xì)鍒犻櫎鏉℃涔?jié)涓変腑鐨勮
銆銆榪欎釜鐩稿鍓嶉潰涔?jié)涓潯娆炬槸姣旇緝楹荤儲(chǔ)鐨勫Q屽洜涓哄鏋滀綘瑕佸垹闄ゅ琛岀殑璇濄傚線寰瑕佸嚭閿?/p>
銆銆姣斿錛屾垜鐜板湪瑕佸垹闄ょ0琛屽拰絎?琛岋紙鍒楄〃鐨勮搴忓垪鏄粠0寮濮嬬殑錛?/p>
銆銆閭d箞濂藉晩銆傛垜鏉ュ垹浜?/p>
銆銆m_listctrl.DeleteItem(0)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_listctrl.DeleteItem(1)
銆銆鎭枩浣狅紝閿欎簡(jiǎn)錛屾垜濂藉紑蹇?jī)鍟娿錛氾級(jí)
銆銆鍥犱負(fù)浣犲垹闄ょ0琛屼互鍚庯紝涓嬮潰鐨勮浼?xì)寰涓婄Щ錛岄偅涔堝師鏉ョ殑絎?琛屽氨鍙樻垚浜?jiǎn)绗?琛岋紝閭d箞浣犲啀 m_listctrl.DeleteItem(1)錛岄偅涔堝垹闄ょ殑鏄師鏉ョ殑絎紥琛岋紝鐪熼夯鐑?chǔ)锛?/p>
銆銆銆鎵浠ワ紝鍙湁浠庝笅寰涓婂垹錛屾墠鏄畨鍏ㄧ殑錛屽厛鍒犵殑錛屼笉浼?xì)濯?jiǎng)鍝嶅悗闈㈢殑鎿嶄綔錛?/p>
銆銆銆銆m_listctrl.DeleteItem(1)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_listctrl.DeleteItem(0)
銆銆浣嗘湁鏃跺欙紝鎴戜滑涔熶笉鐭ラ亾瑕佸垹闄ゅ摢浜涜錛屽彧鐭ラ亾瑕佸垹闄ら変腑鐨勯偅浜涜錛屽儚鏉℃涔?jié)涓殑閭d?/p>
銆銆銆濡傛灉鎴戜滑榪樻槸鐢?/p>
銆銆銆
POSITION pos = m_listctrl.GetFirstSelectedItemPosition();
if (pos == NULL)
聽(tīng)聽(tīng) TRACE0("No items were selected!\n");
else
{
聽(tīng) while (pos)
聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng) int nItem = m_listctrl.GetNextSelectedItem(pos);
聽(tīng)聽(tīng)聽(tīng)
銆m_listctrl.DeleteItem(nItem );
聽(tīng) }
}
浣犲氨絳夌潃鏀跺案鍚?/p>
榪欐椂鍊欐垜浠氨瑕丅4寰蔣浜?jiǎn)锛屼给櫃揪c蟲(chóng)湪鏈塆etLastselectedItemPosition 鍜孏etPrevSelectedItem
澶氬啓涓瀵規(guī)垚鍛樺嚱鏁頒細(xì)姝誨晩銆:(
銆娌″姙娉曪紝鍔炴硶鑷繁鎯籌紝榪欓噷鏈変釜絎ㄥ姙娉?/p>
銆POSITION聽(tīng) sSelPos = NULL;
聽(tīng)while(sSelPos = m_listctrl.GetFirstSelectedItemPosition())
聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) int nSelItem = -1;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) nSelItem = m_listctrl.GetNextSelectedItem(sSelPos);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if(nSelItem >= 0 && nSelItem<m_listctrl.GetItemCount())
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 濂戒簡(jiǎn)錛岃繖涓猲SelItem 灝辨槸鎴戜滑瑕佺殑DD
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
}
GetNextSelectedItem榪欎釜鍑芥暟錛岀湅msdn鐨勭敤娉曪紝鍏跺疄鏄繑鍥炵涓涓殑index錛岀劧鍚庤蛋鍒頒笅涓涓変腑鐨勮鍘伙紝鎵浠ヨ繖涔堝仛涔熸槸瀹夊叏鐨勶紝鍦ㄥ疄闄呬腑錛屼亢涔熸槸榪欎箞鍋氱殑錛屾祴璇曚篃閫氳繃錛屾病闂鐨?/p>
褰撶劧錛岃繕鏈変釜鍔炴硶錛屽厛閫氳繃GetFirstSelectedItemPosition鍜孏etNextSelectedItem
鏉ヨ幏鍙栨墍鏈夌殑閫変腑琛岀殑index錛岀劧鍚庢妸榪欎簺index鏀懼埌涓涓暟緇勯噷錛岀劧鍚庡啀浠庝笅寰涓婂垹
鍞夌湡楹葷儲(chǔ)鍟婏紝榪樿涓嶅畾鏁扮粍錛屼笉璇寸敤new鍦ㄥ爢涓婂紑鍚э紝閭d箞涓涓獀ector鎬繪槸瑕佺殑鍚э紝楹葷儲(chǔ)鍟?/p>
鎵浠ユ垜鏆傛椂鏄敤涓婅堪鐨勫姙娉曟潵鍒犻櫎錛屼篃渚涘ぇ瀹跺弬鑰冿紝甯屾湜鑳芥壘鍒版洿濂界殑鍔炴硶銆?br />
CListCtrl浣跨敤鎶宸?/font>
浠ヤ笅鏈粡璇存槑錛宭istctrl榛樿view 椋庢牸涓簉eport
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) LVS_ICON: 涓烘瘡涓猧tem鏄劇ず澶у浘鏍?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) LVS_SMALLICON: 涓烘瘡涓猧tem鏄劇ず灝忓浘鏍?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) LVS_LIST: 鏄劇ず涓鍒楀甫鏈夊皬鍥炬爣鐨刬tem
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) LVS_REPORT: 鏄劇ずitem璇︾粏璧勬枡
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鐩磋鐨勭悊瑙o細(xì)windows璧勬簮綆$悊鍣紝鈥滄煡鐪嬧濇爣絳句笅鐨勨滃ぇ鍥炬爣錛屽皬鍥炬爣錛屽垪琛紝璇︾粏璧勬枡鈥?/p>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) LONG lStyle;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);//鑾峰彇褰撳墠紿楀彛style
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) lStyle &= ~LVS_TYPEMASK; //娓呴櫎鏄劇ず鏂瑰紡浣?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) lStyle |= LVS_REPORT; //璁劇疆style
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) SetWindowLong(m_list.m_hWnd, GWL_STYLE, lStyle);//璁劇疆style
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) DWORD dwStyle = m_list.GetExtendedStyle();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) dwStyle |= LVS_EX_FULLROWSELECT;//閫変腑鏌愯浣挎暣琛岄珮?shù)寒锛堝彧閫傜敤涓巖eport椋庢牸鐨刲istctrl錛?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) dwStyle |= LVS_EX_GRIDLINES;//緗戞牸綰匡紙鍙傜敤涓巖eport椋庢牸鐨刲istctrl錛?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) dwStyle |= LVS_EX_CHECKBOXES;//item鍓嶇敓鎴恈heckbox鎺т歡
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_list.SetExtendedStyle(dwStyle); //璁劇疆鎵╁睍椋庢牸
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 娉細(xì)listview鐨剆tyle璇鋒煡闃卪sdn
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceshellui5/html/wce50lrflistviewstyles.asp
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_list.InsertColumn( 0, "ID", LVCFMT_LEFT, 40 );//鎻掑叆鍒?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_list.InsertColumn( 1, "NAME", LVCFMT_LEFT, 50 );
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) int nRow = m_list.InsertItem(0, 鈥?1鈥?;//鎻掑叆琛?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_list.SetItemText(nRow, 1, 鈥渏acky鈥?;//璁劇疆鏁版嵁
聽(tīng)
聽(tīng)聽(tīng)聽(tīng) int nIndex = 0;
聽(tīng)聽(tīng)聽(tīng) //閫変腑
聽(tīng)聽(tīng)聽(tīng) m_list.SetItemState(nIndex, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
聽(tīng)聽(tīng)聽(tīng) //鍙栨秷閫変腑
聽(tīng)聽(tīng)聽(tīng) m_list.SetItemState(nIndex, 0, LVIS_SELECTED|LVIS_FOCUSED);
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_list.SetExtendedStyle(LVS_EX_CHECKBOXES);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) CString str;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) for(int i=0; i<m_list.GetItemCount(); i++)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED || m_list.GetCheck(i))
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) str.Format(_T("絎?d琛岀殑checkbox涓洪変腑鐘舵?), i);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) AfxMessageBox(str);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鏂規(guī)硶涓錛?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) CString str;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) for(int i=0; i<m_list.GetItemCount(); i++)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED )
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) str.Format(_T("閫変腑浜?jiǎn)绗?d琛?), i);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) AfxMessageBox(str);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鏂規(guī)硶浜岋細(xì)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) POSITION pos = m_list.GetFirstSelectedItemPosition();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if (pos == NULL)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) TRACE0("No items were selected!\n");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) else
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) while (pos)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) int nItem = m_list.GetNextSelectedItem(pos);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) TRACE1("Item %d was selected!\n", nItem);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) // you could do your own processing on nItem here
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) TCHAR szBuf[1024];
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) LVITEM lvi;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) lvi.iItem = nItemIndex;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) lvi.iSubItem = 0;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) lvi.mask = LVIF_TEXT;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) lvi.pszText = szBuf;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) lvi.cchTextMax = 1024;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_list.GetItem(&lvi);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鍏充簬寰楀埌璁劇疆item鐨勭姸鎬侊紝榪樺彲浠ュ弬鑰僲sdn鏂囩珷
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Q173242: Use Masks to Set/Get Item States in CListCtrl
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://support.microsoft.com/kb/173242/en-us
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) LVCOLUMN lvcol;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) char聽(tīng) str[256];
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) int聽(tīng)聽(tīng) nColNum;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) CString聽(tīng) strColumnName[4];//鍋囧鏈?鍒?/p>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) nColNum = 0;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) lvcol.mask = LVCF_TEXT;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) lvcol.pszText = str;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) lvcol.cchTextMax = 256;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) while(m_list.GetColumn(nColNum, &lvcol))
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) strColumnName[nColNum] = lvcol.pszText;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) nColNum++;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng) 聽(tīng) 鏂規(guī)硶涓錛?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)聽(tīng) while ( m_list.DeleteColumn (0))
聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng) 鍥犱負(fù)浣犲垹闄や簡(jiǎn)絎竴鍒楀悗錛屽悗闈㈢殑鍒椾細(xì)渚濇鍚戜笂縐誨姩銆?/p>
聽(tīng)聽(tīng)聽(tīng) 聽(tīng) 鏂規(guī)硶浜岋細(xì)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) int nColumns = 4;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) for (int i=nColumns-1; i>=0; i--)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)聽(tīng) m_list.DeleteColumn (i);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 娣誨姞listctrl鎺т歡鐨凬M_CLICK娑堟伅鐩稿簲鍑芥暟
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) void CTest6Dlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) // 鏂規(guī)硶涓錛?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) /*
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) DWORD dwPos = GetMessagePos();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_list.ScreenToClient(&point);
聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) LVHITTESTINFO lvinfo;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) lvinfo.pt = point;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) lvinfo.flags = LVHT_ABOVE;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) int nItem = m_list.SubItemHitTest(&lvinfo);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if(nItem != -1)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) CString strtemp;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) strtemp.Format("鍗曞嚮鐨勬槸絎?d琛岀%d鍒?, lvinfo.iItem, lvinfo.iSubItem);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) AfxMessageBox(strtemp);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) */
聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) // 鏂規(guī)硶浜?
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) /*
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if(pNMListView->iItem != -1)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) CString strtemp;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) strtemp.Format("鍗曞嚮鐨勬槸絎?d琛岀%d鍒?,
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) pNMListView->iItem, pNMListView->iSubItem);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) AfxMessageBox(strtemp);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) */
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *pResult = 0;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 娣誨姞listctrl鎺т歡鐨凬M_CLICK娑堟伅鐩稿簲鍑芥暟
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) void CTest6Dlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) DWORD dwPos = GetMessagePos();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_list.ScreenToClient(&point);
聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) LVHITTESTINFO lvinfo;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) lvinfo.pt = point;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) lvinfo.flags = LVHT_ABOVE;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) UINT nFlag;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) int nItem = m_list.HitTest(point, &nFlag);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //鍒ゆ柇鏄惁鐐瑰湪checkbox涓?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if(nFlag == LVHT_ONITEMSTATEICON)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) AfxMessageBox("鐐瑰湪listctrl鐨刢heckbox涓?);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *pResult = 0;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 娣誨姞listctrl鎺т歡鐨凬M_RCLICK娑堟伅鐩稿簲鍑芥暟
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) void CTest6Dlg::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if(pNMListView->iItem != -1)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) DWORD dwPos = GetMessagePos();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) CMenu menu;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) VERIFY( menu.LoadMenu( IDR_MENU1 ) );
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) CMenu* popup = menu.GetSubMenu(0);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) ASSERT( popup != NULL );
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) popup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this );
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *pResult = 0;
聽(tīng) }
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 娣誨姞listctrl鎺т歡鐨凩VN_ITEMCHANGED娑堟伅鐩稿簲鍑芥暟
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) void CTest6Dlg::OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) // TODO: Add your control notification handler code here
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) CString sTemp;
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if((pNMListView->uOldState & LVIS_FOCUSED) == LVIS_FOCUSED &&
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (pNMListView->uNewState & LVIS_FOCUSED) == 0)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) sTemp.Format("%d losted focus",pNMListView->iItem);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) else if((pNMListView->uOldState & LVIS_FOCUSED) == 0 &&
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (pNMListView->uNewState & LVIS_FOCUSED) == LVIS_FOCUSED)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) sTemp.Format("%d got focus",pNMListView->iItem);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if((pNMListView->uOldState & LVIS_SELECTED) == LVIS_SELECTED &&
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (pNMListView->uNewState & LVIS_SELECTED) == 0)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) sTemp.Format("%d losted selected",pNMListView->iItem);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) else if((pNMListView->uOldState & LVIS_SELECTED) == 0 &&
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (pNMListView->uNewState & LVIS_SELECTED) == LVIS_SELECTED)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) sTemp.Format("%d got selected",pNMListView->iItem);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) *pResult = 0;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
http://www.codeguru.com/cpp/controls/listview/introduction/article.php/c919/
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_list.SetExtendedStyle(LVS_EX_SUBITEMIMAGES);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_list.SetItem(..); //鍏蜂綋鍙傛暟璇峰弬鑰僲sdn
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 緗戜笂鎵懼埌鐨勪唬鐮侊紝share
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) BOOL CTest6Dlg::OnInitDialog()
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) CDialog::OnInitDialog();
聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) HIMAGELIST himlSmall;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) HIMAGELIST himlLarge;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) SHFILEINFO sfi;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) char聽(tīng) cSysDir[MAX_PATH];
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) CString聽(tīng) strBuf;
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) memset(cSysDir, 0, MAX_PATH);
聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) GetWindowsDirectory(cSysDir, MAX_PATH);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) strBuf = cSysDir;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) sprintf(cSysDir, "%s", strBuf.Left(strBuf.Find("\\")+1));
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) himlSmall = (HIMAGELIST)SHGetFileInfo ((LPCSTR)cSysDir,聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 0,聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) &sfi,
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) sizeof(SHFILEINFO),聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) SHGFI_SYSICONINDEX | SHGFI_SMALLICON );
聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) himlLarge = (HIMAGELIST)SHGetFileInfo((LPCSTR)cSysDir,聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 0,聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) &sfi,聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) sizeof(SHFILEINFO),聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) SHGFI_SYSICONINDEX | SHGFI_LARGEICON);
聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if (himlSmall && himlLarge)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) ::SendMessage(m_list.m_hWnd, LVM_SETIMAGELIST,
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (WPARAM)LVSIL_SMALL, (LPARAM)himlSmall);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) ::SendMessage(m_list.m_hWnd, LVM_SETIMAGELIST,
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (WPARAM)LVSIL_NORMAL, (LPARAM)himlLarge);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return TRUE;聽(tīng) // return TRUE聽(tīng) unless you set the focus to a control
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) void CTest6Dlg::AddFiles(LPCTSTR lpszFileName, BOOL bAddToDocument)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) int nIcon = GetIconIndex(lpszFileName, FALSE, FALSE);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) CString strSize;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) CFileFind filefind;
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //聽(tīng) get file size
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if (filefind.FindFile(lpszFileName))
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) filefind.FindNextFile();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) strSize.Format("%d", filefind.GetLength());
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) else
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) strSize = "0";
聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) // split path and filename
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) CString strFileName = lpszFileName;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) CString strPath;
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) int nPos = strFileName.ReverseFind('\\');
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if (nPos != -1)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) strPath = strFileName.Left(nPos);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) strFileName = strFileName.Mid(nPos + 1);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) // insert to list
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) int nItem = m_list.GetItemCount();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_list.InsertItem(nItem, strFileName, nIcon);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_list.SetItemText(nItem, 1, strSize);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_list.SetItemText(nItem, 2, strFileName.Right(3));
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_list.SetItemText(nItem, 3, strPath);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) int CTest6Dlg::GetIconIndex(LPCTSTR lpszPath, BOOL bIsDir, BOOL bSelected)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) SHFILEINFO sfi;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) memset(&sfi, 0, sizeof(sfi));
聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if (bIsDir)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) SHGetFileInfo(lpszPath,聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) FILE_ATTRIBUTE_DIRECTORY,聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) &sfi,聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) sizeof(sfi),聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) SHGFI_SMALLICON | SHGFI_SYSICONINDEX |
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) SHGFI_USEFILEATTRIBUTES |(bSelected ? SHGFI_OPENICON : 0));聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return聽(tīng) sfi.iIcon;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) else
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) SHGetFileInfo (lpszPath,聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) FILE_ATTRIBUTE_NORMAL,聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) &sfi,聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) sizeof(sfi),聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) SHGFI_SMALLICON | SHGFI_SYSICONINDEX |聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) SHGFI_USEFILEATTRIBUTES | (bSelected ? SHGFI_OPENICON : 0));
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return聽(tīng)聽(tīng) sfi.iIcon;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return聽(tīng) -1;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_list.SetRedraw(FALSE);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //鏇存柊鍐呭
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_list.SetRedraw(TRUE);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_list.Invalidate();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) m_list.UpdateWindow();
聽(tīng)
鎴栬呭弬鑰?
Q250614錛欻ow To Sort Items in a CListCtrl in Report View
http://support.microsoft.com/kb/250614/en-us
Q151897: CListCtrl::InsertColumn() Causes Column Data to Shift
http://support.microsoft.com/kb/151897/en-us
瑙e喅鍔炴硶錛氭妸絎竴鍒楀綋涓涓櫄鍒楋紝浠庣浜屽垪寮濮嬫彃鍏ュ垪鍙?qiáng)鏁版嵁锛屾渶鍚庡垹闄ょ涓鍒椼?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
鍏蜂綋瑙i噴鍙傞槄聽(tīng)聽(tīng) http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/listview/structures/lvcolumn.asp
聽(tīng)
http://msdn.microsoft.com/msdnmag/issues/03/06/CQA/
聽(tīng)聽(tīng)聽(tīng) 鎶婇渶闅愯棌鐨勫垪鐨勫搴﹁涓?,鐒跺悗媯(gè)嫻嬪綋璇ュ垪涓洪殣钘忓垪鏃訛紝鐢ㄤ笂闈㈢27鐐圭殑閿佸畾column 鐨勬嫋鍔ㄦ潵瀹炵幇
http://www.codeguru.com/cpp/controls/listview/advanced/article.php/c4151/
http://www.codeproject.com/listctrl/virtuallist.asp
瑙e喅鍔炴硶錛氶渶瑕佸湪item涓婃斁涓涓猠dit銆?br />
Q125694: How To Find Out Which Listview Column Was Right-Clicked
http://support.microsoft.com/kb/125694/en-us
Q234310: How to implement a ListView control that is similar to Windows Explorer by using DirLV.exe
http://support.microsoft.com/kb/234310/en-us
聽(tīng)
Q200054錛?br />PRB: OnTimer() Is Not Called Repeatedly for a List Control
http://support.microsoft.com/kb/200054/en-us
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (1)聽(tīng)聽(tīng)聽(tīng) 鎷栨斁聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeproject.com/listctrl/dragtest.asp
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鍦–ListCtrl鍜孋TreeCtrl闂存嫋鏀?/span>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://support.microsoft.com/kb/148738/en-us
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (2)聽(tīng)聽(tīng)聽(tīng) 澶氬姛鑳絣istctrl
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鏀寔subitem鍙紪杈戯紝鍥炬爣錛宺adiobutton錛宑heckbox錛屽瓧絎︿覆鏀瑰彉棰滆壊鐨勭被
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeproject.com/listctrl/quicklist.asp
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鏀寔鎺掑簭錛宻ubitem鍙紪杈戯紝subitem鍥炬爣錛宻ubitem鏀瑰彉棰滆壊鐨勭被
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeproject.com/listctrl/ReportControl.asp
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (3)聽(tīng)聽(tīng)聽(tīng) subitem涓樉紺鴻秴閾炬帴
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeproject.com/listctrl/CListCtrlLink.asp
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (4)聽(tīng)聽(tīng)聽(tīng) subitem鐨則ooltip鎻愮ず
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeproject.com/listctrl/ctooltiplistctrl.asp
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (5)聽(tīng)聽(tīng)聽(tīng) subitem涓樉紺鴻繘搴︽潯聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeproject.com/listctrl/ProgressListControl.asp
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeproject.com/listctrl/napster.asp
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeguru.com/Cpp/controls/listview/article.php/c4187/
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (6)聽(tīng)聽(tīng)聽(tīng) 鍔ㄦ佹敼鍙榮ubitem鐨勯鑹插拰鑳屾櫙鑹?/span>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeproject.com/listctrl/highlightlistctrl.asp
聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)聽(tīng) http://www.codeguru.com/Cpp/controls/listbox/colorlistboxes/article.php/c4757/
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (7)聽(tīng)聽(tīng)聽(tīng) 綾籿b灞炴у璇濇
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeproject.com/listctrl/propertylistctrl.asp
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeguru.com/Cpp/controls/listview/propertylists/article.php/c995/
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeguru.com/Cpp/controls/listview/propertylists/article.php/c1041/
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (8)聽(tīng)聽(tīng)聽(tīng) 閫変腑subitem(鍙珮?shù)寒閫変腑鐨刬tem)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeproject.com/listctrl/SubItemSel.asp
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeproject.com/listctrl/ListSubItSel.asp
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (9)聽(tīng)聽(tīng)聽(tīng) 鏀瑰彉琛岄珮
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeproject.com/listctrl/changerowheight.asp
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (10)聽(tīng)聽(tīng) 鏀瑰彉琛岄鑹?/span>
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeproject.com/listctrl/coloredlistctrl.asp
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (11)聽(tīng)聽(tīng) 鍙紪杈憇ubitem鐨刲istctrl
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeproject.com/listctrl/nirs2000.asp
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeproject.com/listctrl/editing_subitems_in_listcontrol.asp
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (12)聽(tīng)聽(tīng) subitem鍙紪杈戯紝鎻掑叆combobox錛屾敼鍙樿棰滆壊錛宻ubitem鐨則ooltip鎻愮ず
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeproject.com/listctrl/reusablelistcontrol.asp
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (13)聽(tīng)聽(tīng) header 涓厑璁稿琛屽瓧絎︿覆
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeproject.com/listctrl/headerctrlex.asp
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (14)聽(tīng)聽(tīng) 鎻掑叆combobox
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeguru.com/Cpp/controls/listview/editingitemsandsubitem/article.php/c979/
聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (15)聽(tīng)聽(tīng) 娣誨姞鑳屾櫙鍥劇墖
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeguru.com/Cpp/controls/listview/backgroundcolorandimage/article.php/c4173/
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeguru.com/Cpp/controls/listview/backgroundcolorandimage/article.php/c983/
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.vchelp.net/vchelp/archive.asp?type_id=9&class_id=1&cata_id=1&article_id=1088&search_term=
聽(tīng)聽(tīng)聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (16)聽(tīng) 鑷傚簲瀹藉害鐨刲istctrl
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) http://www.codeproject.com/useritems/AutosizeListCtrl.asp
http://www.codeproject.com/listctrl/lvcustomdraw.asp
OnDestroy()錛氭秷鎭搷搴斿嚱鏁幫紝鍝嶅簲WM_DESTROY娑堟伅錛屽綋涓涓獥鍙e嵆灝嗚閿姣佹椂錛岃鍙戦?/p>
鍦ㄥ崟瑙嗗浘紼嬪簭涓?鏍規(guī)嵁<<娣卞叆嫻呭嚭MFC>>鎵璁?紼嬪簭閫鍑烘椂鎵ц鐨勬搷浣滈『搴忎負(fù)
(1)鐢ㄦ埛鐐瑰嚮閫鍑烘寜閽?鍙戦佷簡(jiǎn)WM_CLOSE娑堟伅
(2)鍦╓M_CLOSE娑堟伅鐨勫鐞嗗嚱鏁頒腑,璋冪敤DestroyWindow()
(3)鍦―estroyWindow()涓彂閫佷簡(jiǎn)WM_DESTROY娑堟伅
(4)鍦╓M_DESTROY娑堟伅涓皟鐢≒ostQuitMessage(),鍙戦乄M_QUIT娑堟伅,緇撴潫娑堟伅寰幆
緇間笂錛岀▼搴忓厛璋冪敤OnClose()錛堜篃鍙兘涓嶈皟鐢級(jí)錛岀劧鍚庤皟鐢∣nDestroy()錛堝繀璋冪敤錛夛紝鎵浠ワ紝濡傛灉瑕佽繘琛岀▼搴忕粨鏉熸椂鐨勬竻鐞嗗伐浣滐紝搴旇鍦∣nDestroy錛堬級(jí)涓紝鑰屼笉鏄湪OnClose()錛屽惁鍒欏氨鏈夊彲鑳戒細(xì)鍑虹幇鍐呭瓨娉勬紡鐨勫嵄闄╀簡(jiǎn)錛?/p>
struct a
{
聽(tīng)int b;
};
struct b
{
聽(tīng)聽(tīng)聽(tīng) int a;
};
void main()
{
聽(tīng)a A;
聽(tīng)A.b = NULL;
聽(tīng)A.b = 1;
聽(tīng)
聽(tīng)b a;
聽(tīng)a.a = 3;
}
鍦–鐨勭幆澧冧笅錛屼細(xì)鎶ラ敊錛屽湪C++鐨勬儏鍐碉紝榪欐牱鐨勬搷浣滃氨鏄厑璁哥殑銆?br />鍦–++鐨勭紪璇戝櫒涓紝鍏佽灝嗙粨鏋勪綋鍚嶄綔涓轟竴涓彉閲忓悕鏉ュ寰呫?/p>