锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鏁呮葷粨浜嗕竴涓嬭嚜宸辯殑浣跨敤緇忛獙錛屼互渚涘弬鑰冧嬌鐢ㄣ?/p>
銆銆鍏堟敞鏄庝竴涓嬶紝榪欓噷錛屾垜浠敤m_listctrl鏉ヨ〃紺轟竴涓狢ListCtrl鐨勭被瀵硅薄錛?/p>
鐒跺悗榪欓噷鎴戜滑鐨凩istCtrl閮芥槸report褰㈠紡錛岃嚦浜庡叾浠栫殑濡備粈涔堝ぇ鍥炬爣錛屽皬鍥炬爣 鐨勬殏鏃朵笉璁詫紝姣曠珶report鏄ぇ浼楄瘽鐨勪嬌鐢ㄣ傚叾嬈★紝鎴戜滑榪欓噷鐢ㄦ潯嬈句竴錛屾潯嬈句簩 鏉ユ弿榪扮涓鐐癸紝絎簩鐐癸紝榪欎釜鏄弬鐓с奅ffective C++銆嬬殑鍙硶錛屼亢瑙夊緱榪欎箞 鍙瘮杈僀OOL :) 銆鏉℃涓錛氳緗甃istCtrl鐨勯鏍?/p>
銆鍦–SDN涓婂父甯哥湅鍒版湁浜洪棶鎬庝箞璁劇疆椋庢牸鐨勶紝浠栦滑ListCtrl鐨勬牱瀛愭槸涓涓垪琛?/p>
錛屾湁妯潯鍜岀珫鏉″垎鐣岀嚎錛岀劧鍚庨変腑涓琛岋紝瑕佹暣涓琛岄兘閫変腑錛岃屼笉鏄彧鏈夋煇涓鍒?/p>
琚変腑錛岀瓑絳夛紝榪欓噷緇欎竴涓瘮杈冨叏闈㈢殑璁劇疆鏂規(guī)硶銆?/p>
//鑾峰緱鍘熸湁椋庢牸 //璁劇疆鏂伴鏍?br> SetWindowLong(m_listctrl.m_hWnd, GWL_STYLE, dwStyle,|LVS_REPORT|LVS_NOLABELWRAP|LVS_SHOWSELALWAYS); LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES; ListView_SetExtendedListViewStyleEx(m_listctrl.m_hWnd, styles, styles ); 鍏朵腑LVS_EX_FULLROWSELECT銆灝辨槸鍓嶉潰璇村緱鏁磋閫変腑 LVS_EX_GRIDLINES銆緗戞牸綰匡紙鍙傜敤涓巖eport椋庢牸鐨刲istctrl錛?/p>
LVS_EX_CHECKBOXES銆鍓嶉潰鍔犱釜checkbox pListCtrl->SetExtendedStyle( m_listctrl.GetExtendedStyle() |LVS_EX_SUBITEMIMAGES); 浠誨姟綆$悊鍣ㄥ悧錛屼綘鎯沖仛寰楅偅鏍鳳紝榪欎釜灞炴т篃瑕佸姞鍝︼紝榪欎釜鎴戜互鍚庝細璁茬殑锝?/p>
鏉℃浜岋細鍔犲叆鍒楀ご 銆銆榪欐槸涓涓瘮杈冨疄璐ㄧ殑涓滆タ錛岀粰鍒楄〃妗嗗垎鍒楋紝鐒跺悗鍔犱笂鍒楀ご 銆銆浠g爜璇磋瘽錛屾潵浜?/p>
銆銆TCHAR rgtsz[2][10] = {_T("鍒楀ご1"), _T("鍒楀ご2")}; 銆銆銆m_listctrl.InsertColumn(i, &lvcolumn); 榪欐槸鎻掑叆涓ゅ垪鐨勫仛娉曪紝浣犺鎻掑叆20鍒楋紵錛熼殢渚夸綘錛屼緷鏍風敾钁姦锝烇綖 銆lvcolumn.mask 涓偅涓猰ask鍙互鏈夊悇縐嶅睘鎬э紝鍏蜂綋鍘葷湅msdn鍚э紝 鏉℃涓夛細鎶婅褰曪紝鎻掑叆鍒楄〃妗嗕腑 銆int nIndex = m_listctrl.GetItemCount(); LV_ITEM lvitemAdd = {0}; nIndex 鏄綋鍓嶇殑琛屾暟錛岀劧鍚庢妸鏂扮殑涓琛岋紝鎻掑湪鏈涓嬮潰錛?/p>
鏉℃鍥涳細緇欏垪琛ㄤ腑鎻掑叆鍥炬爣 銆鍦╮eport鏍煎紡涓紝涔熻兘鎻掑叆鍥炬爣 銆緇х畫浠g爜璇磋瘽 銆m_image鏄釜CImageList瀵硅薄 銆m_image.Create(16,16, TRUE|ILC_COLOR24, 3, 1); 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涔堬紝鍛靛懙 鏉℃浜旓細銆鎻掑叆璁板綍鏃朵嬌鐢ㄩ澶栫殑淇℃伅錛宭Param 鐨勪嬌鐢?/p>
銆銆銆鏈夋椂鍊欙紝浣犳兂瀵逛簬鏌愪竴琛岋紝鍔犲叆涓浜涢澶栫殑淇℃伅錛岄偅涔堝氨鍙互浣跨敤榪欎釜 lParam 銆銆锝嶏綋锝勶綆鏄繖涔堟弿榪扮殑Specifies the 32-bit value of the item 銆銆鎴戜笂嬈℃槸涓轟簡鍦ㄦ煇涓琛屽姞鍏ヤ竴涓俊鎭紝紿楀彛鍙ユ焺錛岀劧鍚庢槸榪欎箞鍔犵殑錛?/p>
銆銆int nIndex = m_listctrl.GetItemCount(); LV_ITEM lvitemAdd = {0}; lvitemAdd.iImage = n; ok錛岃繖鏄竴涓瘮杈冨叏鐨勪緥瀛愮殑錛屽張鎻捍CON錛屽張浣跨敤PARAM鐨?/p>
鏉℃鍏錛氥鐐瑰嚮鍒楄〃妗嗭紝鑾峰彇閫変腑琛屼俊鎭?/p>
銆銆鍝嶅簲NM_CLICK娑堟伅錛屽鏋滀綘鏈塎SDN錛屽彲浠ョ湅鍒幫紝鏈変笓闂ㄥ叧浜巐istview鐨?/p>
NM_CLICK鐨勪粙緇?/p>
void CMyDlg::OnItemClick(NMHDR* pNMHDR, LRESULT* pResult) if(lpNMItemActivate != NULL) } 鐜板湪nItem灝辨槸鐐瑰嚮閫変腑閭h鐨刬ndex浜嗭紝鏈変簡index錛岃幏鍙栭偅琛岀殑淇℃伅榪橀毦鍚?/p>
錛?/p>
鎳掓眽璇達細闅撅紝鍥犱負浣犺繕娌¤錛屾檿錛岄偅灝辯戶緇 鏉℃涓冿細銆鏍規(guī)嵁琛岀殑index錛岃幏鍙栬琛岀殑淇℃伅 銆鐩存帴涓婁唬鐮佸惂 銆LV_ITEM lvitem = {0}; m_listctrl.GetItem(&lvitem) 榪欐牱錛屽氨鎶妌index,絎竴鍒楃殑淇℃伅鍙栧嚭鏉ヤ簡錛屽寘鎷垰鎵嶆垜浠姞鍏ョ殑ICON,鍜岄偅涓?/p>
棰濆淇℃伅錛堢獥鍙e彞鏌勶級錛?/p>
姣斿鎴戣鑾峰彇紿楀彛鍙ユ焺錛屽氨鍙互hwnd = (HWND)lvitem.lParam; mask 鐢ㄦ潵鎸囨槑浣犳兂鑾峰彇閭d簺淇℃伅 鍏蜂綋鍙互鏌sdn涓璍VITEM Structure鐨勫畾涔夊拰CListCtrl::GetItem 鏉℃鍏細鐢ㄧ▼搴忛変腑鏌愪竴琛岋紝浣夸箣閫変腑 閫変腑涔嬨 m_listctrl.SetItemState (nIndex,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED); 涓嶉変腑錛屽彇娑堥変腑涔?/p>
m_listctrl.SetItemState(nIndex,0,LVIS_SELECTED|LVIS_FOCUSED); 鏉℃涔?jié)锛氳幏鍙栧綋鍓嶆墍鏈夐変腑鐨勮錛堝閫夛級 銆銆榪欎釜錛屼亢灝辨瘮杈冩噿浜嗭紝鎶刴sdn鐨勪唬鐮佸惂錛屽弽姝e緢綆鍗?/p>
銆銆 Example (IDC_YOURLISTCONTROL); POSITION pos = pList->GetFirstSelectedItemPosition(); 鏉℃鍗侊細鍒犻櫎鏉℃涔?jié)涓変腑鐨勮 銆銆榪欎釜鐩稿鍓嶉潰涔?jié)涓潯娆炬槸姣旇緝楹荤儲鐨勫Q屽洜涓哄鏋滀綘瑕佸垹闄ゅ琛岀殑璇濄傚線寰瑕佸嚭閿?/p>
銆銆姣斿錛屾垜鐜板湪瑕佸垹闄ょ0琛屽拰絎?琛岋紙鍒楄〃鐨勮搴忓垪鏄粠0寮濮嬬殑錛?/p>
銆銆閭d箞濂藉晩銆傛垜鏉ュ垹浜?/p>
銆銆m_listctrl.DeleteItem(0) m_listctrl.DeleteItem(1) 銆銆鎭枩浣狅紝閿欎簡錛屾垜濂藉紑蹇冨晩銆錛氾級 銆銆鍥犱負浣犲垹闄ょ0琛屼互鍚庯紝涓嬮潰鐨勮浼氬線涓婄Щ錛岄偅涔堝師鏉ョ殑絎?琛屽氨鍙樻垚浜嗙0琛岋紝閭d箞浣犲啀 m_listctrl.DeleteItem(1)錛岄偅涔堝垹闄ょ殑鏄師鏉ョ殑絎紥琛岋紝鐪熼夯鐑︼紝 銆銆銆鎵浠ワ紝鍙湁浠庝笅寰涓婂垹錛屾墠鏄畨鍏ㄧ殑錛屽厛鍒犵殑錛屼笉浼氬獎鍝嶅悗闈㈢殑鎿嶄綔錛?/p>
銆銆銆銆m_listctrl.DeleteItem(1) m_listctrl.DeleteItem(0) 銆銆浣嗘湁鏃跺欙紝鎴戜滑涔熶笉鐭ラ亾瑕佸垹闄ゅ摢浜涜錛屽彧鐭ラ亾瑕佸垹闄ら変腑鐨勯偅浜涜錛屽儚鏉℃涔?jié)涓殑閭d?/p>
銆銆銆濡傛灉鎴戜滑榪樻槸鐢?/p>
銆銆銆 POSITION pos = m_listctrl.GetFirstSelectedItemPosition(); 銆m_listctrl.DeleteItem(nItem ); } 浣犲氨絳夌潃鏀跺案鍚?/p>
榪欐椂鍊欐垜浠氨瑕丅4寰蔣浜嗭紝涓鴻櫨綾蟲湪鏈塆etLastselectedItemPosition 鍜孏etPrevSelectedItem 澶氬啓涓瀵規(guī)垚鍛樺嚱鏁頒細姝誨晩銆:( 銆娌″姙娉曪紝鍔炴硶鑷繁鎯籌紝榪欓噷鏈変釜絎ㄥ姙娉?/p>
銆POSITION sSelPos = NULL; while(sSelPos = m_listctrl.GetFirstSelectedItemPosition()) if(nSelItem >= 0 && nSelItem<m_listctrl.GetItemCount()) 濂戒簡錛岃繖涓猲SelItem 灝辨槸鎴戜滑瑕佺殑DD } } GetNextSelectedItem榪欎釜鍑芥暟錛岀湅msdn鐨勭敤娉曪紝鍏跺疄鏄繑鍥炵涓涓殑index錛岀劧鍚庤蛋鍒頒笅涓涓変腑鐨勮鍘伙紝鎵浠ヨ繖涔堝仛涔熸槸瀹夊叏鐨勶紝鍦ㄥ疄闄呬腑錛屼亢涔熸槸榪欎箞鍋氱殑錛屾祴璇曚篃閫氳繃錛屾病闂鐨?/p>
褰撶劧錛岃繕鏈変釜鍔炴硶錛屽厛閫氳繃GetFirstSelectedItemPosition鍜孏etNextSelectedItem 鏉ヨ幏鍙栨墍鏈夌殑閫変腑琛岀殑index錛岀劧鍚庢妸榪欎簺index鏀懼埌涓涓暟緇勯噷錛岀劧鍚庡啀浠庝笅寰涓婂垹 鍞夌湡楹葷儲鍟婏紝榪樿涓嶅畾鏁扮粍錛屼笉璇寸敤new鍦ㄥ爢涓婂紑鍚э紝閭d箞涓涓獀ector鎬繪槸瑕佺殑鍚э紝楹葷儲鍟?/p>
鎵浠ユ垜鏆傛椂鏄敤涓婅堪鐨勫姙娉曟潵鍒犻櫎錛屼篃渚涘ぇ瀹跺弬鑰冿紝甯屾湜鑳芥壘鍒版洿濂界殑鍔炴硶銆?/p>
濂戒簡錛屼粖澶╁氨鏆傛椂鍏堟暣鐞嗕笂榪板崄鐐廣俵istctrl鍏朵粬楂樼駭鐨勭敤娉曪紝緗戜笂璧勬枡涔熷緢澶氾紝鎴戜篃鏆傛椂涓嶆葷粨錛屼互鍚庢湁鏈轟細鍐嶈鍚с?/p>
鎼炰簡濂介暱鏃墮棿鍟婏紝瑕佺潯瑙夊幓浜嗭紝绱浜嗐錛氾級
ListCtrl鍦ㄥ伐浣滀腑錛屽父甯哥敤鍒幫紝涔熷父甯哥湅鍒板ぇ瀹跺彂甯栭棶鎬庝箞鐢ㄨ繖涓帶浠訛紝
DWORD dwStyle = ::GetWindowLong(m_listctrl.m_hWnd, GWL_STYLE);
dwStyle &= ~(LVS_TYPEMASK);
dwStyle &= ~(LVS_EDITLABELS);
//璁劇疆鎵╁睍椋庢牸
DWORD styles =
榪欎篃鏄竴涓緢閲嶈鐨勫睘鎬э紝榪欐牱鐨勮瘽錛屽彲浠ュ湪鍒楄〃涓姞ICON錛岃寰梬indows鐨?/p>
LV_COLUMN lvcolumn;
CRect rect;
m_listctrl.GetWindowRect(&rect);
for(int i=0;i<2;i++)
{
銆lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT
銆銆銆銆銆銆銆銆 | LVCF_WIDTH | LVCF_ORDER;
銆lvcolumn.fmt = LVCFMT_LEFT;
銆lvcolumn.pszText = rgtsz[i];
銆 lvcolumn.iSubItem = i;
銆lvcolumn.iOrder = i;
銆 if(i==0)
銆{
銆銆銆lvcolumn.cx = rect.Width()*3/5 ;
銆 }
銆 else
銆銆lvcolumn.cx = rect.Width()*2/5;
銆銆銆銆
銆}
lvitemAdd.mask = LVIF_TEXT;
lvitemAdd.iItem = nIndex ;
lvitemAdd.iSubItem = 0;
lvitemAdd.pszText =_T("姣涙瘺1");;
if (m_listctrl.InsertItem(&lvitemAdd) != -1)
{
LV_ITEM lvitem = {0};
lvitem.mask = LVIF_TEXT;
lvitem.iItem = nIndex ;
lvitem.iSubItem = 1;
lvitem.pszText =_T("姣涙瘺2");
m_listctrl.SetItem(&lvitem);
}
lvitemAdd.mask = LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM;
lvitemAdd.iItem = nIndex ;
lvitemAdd.iSubItem = 0;
lvitemAdd.pszText =_T("姣涙瘺1");;
lvitemAdd.lParam = (LPARAM)hwnd;(鏌愪釜紿楀彛鐨勭獥鍙e彞鏌?
if (m_listctrl.InsertItem(&lvitemAdd) != -1)
{
LV_ITEM lvitem = {0};
lvitem.mask = LVIF_TEXT;
lvitem.iItem = nIndex ;
lvitem.iSubItem = 1;
lvitem.pszText =_T("姣涙瘺2");
m_listctrl.SetItem(&lvitem);
}
{
// TODO: Add your control notification handler code here
int nItem = -1;
LPNMITEMACTIVATE lpNMItemActivate = (LPNMITEMACTIVATE)pNMHDR;
{
nItem = lpNMItemActivate->iItem;
}
lvitem.iItem = nIndex;
lvitem.iSubItem = 0;
lvitem.mask = LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM;
// CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem
ASSERT(pListCtrl != NULL);
if (pos == NULL)
TRACE0("No items were selected!\n");
else
{
while (pos)
{
int nItem = pList->GetNextSelectedItem(pos);
TRACE1("Item %d was selected!\n", nItem);
// you could do your own processing on nItem here
}
}
if (pos == NULL)
TRACE0("No items were selected!\n");
else
{
while (pos)
{
int nItem = m_listctrl.GetNextSelectedItem(pos);
}
{
int nSelItem = -1;
nSelItem = m_listctrl.GetNextSelectedItem(sSelPos);
{
鏃ユ湡錛?4/07/2006
娉細
m_edit1浠h〃ID涓篒DC_EDIT1鐨凜Edit鎺т歡鐨刢ontrol綾誨瀷鐨勫彉閲?br> m_richedit1浠h〃ID涓篒DC_RICHEDIT1鐨凜RichEditCtrl鎺т歡鐨刢ontrol綾誨瀷鐨勫彉閲?br>
1.璁劇疆edit鍙灞炴?br>
鏂規(guī)硶涓錛?br> m_edit1.SetReadOnly(TRUE);
鏂規(guī)硶浜岋細
::SendMessage(m_edit1.m_hWnd, EM_SETREADONLY, TRUE, 0);
2.鍒ゆ柇edit涓厜鏍囩姸鎬佸茍寰楀埌閫変腑鍐呭(richedit鍚屾牱閫傜敤)
int nStart, nEnd;
CString strTemp;
m_edit1.GetSel(nStart, nEnd);
if(nStart == nEnd)
{
strTemp.Format(_T("鍏夋爣鍦?d"), nStart);
AfxMessageBox(strTemp);
}
else
{
//寰楀埌edit閫変腑鐨勫唴瀹?nbsp;
m_edit1.GetWindowText(strTemp);
strTemp = strTemp.Mid(nStart) - strTemp.Mid(nEnd);
AfxMessageBox(strTemp);
}
娉細GetSel鍚庯紝濡傛灉nStart鍜宯End錛岃〃鏄庡厜鏍囧浜庢煇涓綅緗紙鐩磋鏉ョ湅灝辨槸鍏夋爣鍦ㄩ棯鍔級錛?br> 濡傛灉nStart鍜宯End涓嶇浉絳夛紝琛ㄦ槑鐢ㄦ埛鍦╡dit涓変腑浜嗕竴孌靛唴瀹廣?br>
3.鍦╡dit鏈鍚庢坊鍔犲瓧絎︿覆
CString str;
m_edit1.SetSel(-1, -1);
m_edit1.ReplaceSel(str);
4.闅忚緭鍏ヨ嚜鍔ㄦ粴鍔ㄥ埌鏈鍚庝竴琛?richedit鍚屾牱閫傜敤)
鏂規(guī)硶涓錛氾紙鎽樿嚜msdn錛?br> // The pointer to my edit.
extern CEdit* pmyEdit;
int nFirstVisible = pmyEdit->GetFirstVisibleLine();
// Scroll the edit control so that the first visible line
// is the first line of text.
if (nFirstVisible > 0)
{
pmyEdit->LineScroll(-nFirstVisible, 0);
}
鏂規(guī)硶浜岋細
m_richedit.PostMessage(WM_VSCROLL, SB_BOTTOM, 0);
5.濡備綍闄愬埗edit杈撳叆鎸囧畾瀛楃
鍙互浠嶤Edit媧劇敓涓涓被錛屾坊鍔燱M_CHAR娑堟伅鏄犲皠銆備笅闈竴涓緥瀛愬疄鐜頒簡闄愬畾杈撳叆16榪涘埗瀛楃鐨勫姛鑳姐?br>
void CMyHexEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if ( (nChar >= '0' && nChar <= '9') ||
(nChar >= 'a' && nChar <= 'f') ||
(nChar >= 'A' && nChar <= 'F') ||
nChar == VK_BACK ||
nChar == VK_DELETE) //msdn鐨剉irtual key
{
CEdit::OnChar(nChar, nRepCnt, nFlags);
}
}
6.濡備綍浣跨敤richedit
娣誨姞AfxInitRichEdit();
CxxxApp::InitInstance()
{
AfxInitRichEdit();
.............
}
AfxInitRichEdit()鍔熻兘錛氳杞?RichEdit 1.0 Control (RICHED32.DLL).
7.濡備綍浣跨敤richedit2.0 or richedit3.0
浣跨敤鍘熷洜錛氱敱浜嶳ichEdit2.0A鑷姩涓哄瀛楃錛圵ideChar錛夛紝鎵浠ュ畠鍙互瑙e喅涓枃涔辯爜浠ュ強涓浜涙眽瀛楅棶棰?br>
鏂規(guī)硶涓錛氾紙msdn涓婄殑鍋氭硶錛岄傜敤浜庣敤VC.NET鍙婁互鍚庣増鏈垱寤虹殑宸ョ▼錛?br> To update rich edit controls in existing Visual C++ applications to version 2.0,
open the .RC file as text, change the class name of each rich edit control from "RICHEDIT" to "RichEdit20a".
Then replace the call to AfxInitRichEdit with AfxInitRichEdit2.
鏂規(guī)硶浜岋細浠ュ璇濇涓轟緥錛?br> (1) 澧炲姞涓鍏ㄥ眬鍙橀噺 HMODULE hMod;
(2) 鍦–xxxApp::InitInstance()涓坊鍔犱竴鍙Mod = LoadLibrary(_T("riched20.dll"));
鍦–xxxApp::ExitInstance()涓坊鍔犱竴鍙reeLibrary(hMod);
(3) 鍦ㄥ璇濇涓婃斁涓涓猺ichedit錛屾枃鏈柟寮忔墦寮.rc鏂囦歡淇敼璇ichedit鎺т歡鐨勭被鍚?RICHEDIT" to "RichEdit20a".
(4) 鍦ㄥ璇濇澶存枃浠舵坊鍔?CRichEditCtrl m_richedit;
鍦∣nInitDialog涓坊鍔?m_richedit.SubclassDlgItem(IDC_RICHEDIT1, this);
8.鏀瑰彉richedit鎸囧畾鍖哄煙鐨勯鑹插強瀛椾綋
CHARFORMAT cf;
ZeroMemory(&cf, sizeof(CHARFORMAT));
cf.cbSize = sizeof(CHARFORMAT);
cf.dwMask = CFM_BOLD | CFM_COLOR | CFM_FACE |
CFM_ITALIC | CFM_SIZE | CFM_UNDERLINE;
cf.dwEffects = 0;
cf.yHeight = 12*12;//鏂囧瓧楂樺害
cf.crTextColor = RGB(200, 100, 255); //鏂囧瓧棰滆壊
strcpy(cf.szFaceName ,_T("闅朵功"));//璁劇疆瀛椾綋
m_richedit1.SetSel(1, 5); //璁劇疆澶勭悊鍖哄煙
m_richedit1.SetSelectionCharFormat(cf);
9.璁劇疆琛岄棿璺濓紙鍙傜敤浜巖ichedit2.0錛?br>
PARAFORMAT2 pf;
pf2.cbSize = sizeof(PARAFORMAT2);
pf2.dwMask = PFM_LINESPACING | PFM_SPACEAFTER;
pf2.dyLineSpacing = 200;
pf2.bLineSpacingRule = 4;
m_richedit.SetParaFormat(pf2);
10.richedit鎻掑叆浣嶅浘
Q220844錛欻ow to insert a bitmap into an RTF document using the RichEdit control in Visual C++ 6.0
http://support.microsoft.com/default.aspx?scid=kb;en-us;220844
http://www.codeguru.com/Cpp/controls/richedit/article.php/c2417/
http://www.codeguru.com/Cpp/controls/richedit/article.php/c5383/
11.richedit鎻掑叆gif鍔ㄧ敾
http://www.codeproject.com/richedit/AnimatedEmoticon.asp
12.richedit宓屽叆ole瀵硅薄
http://support.microsoft.com/kb/141549/en-us
13.浣縭ichedit閫変腑鍐呭鍙
http://www.codeguru.com/cpp/controls/richedit/article.php/c2401/
14.鎵撳嵃richedit
http://www.protext.com/MFC/RichEdit3.htm
15.richeidt鐢ㄤ簬鑱婂ぉ娑堟伅紿楀彛
http://www.vckbase.com/document/viewdoc/?id=1087
http://www.codeproject.com/richedit/chatrichedit.asp
http://www.codeguru.com/Cpp/controls/richedit/article.php/c2395/
16.瑙e喅richedit鐨凟N_SETFOCUS鍜孍N_KILLFOCUS鏃犲搷搴旂殑闂
http://support.microsoft.com/kb/181664/en-us
17.richedit鎷煎啓媯鏌?br>
http://www.codeproject.com/com/AutoSpellCheck.asp
18.鏀瑰彉edit鑳屾櫙鑹?br>
Q117778錛欻ow to change the background color of an MFC edit control
http://support.microsoft.com/kb/117778/en-us
19.褰揺dit鎺т歡鐨勭埗紿楀彛灞炴ф槸甯︽爣棰樻爮WS_CAPTION鍜屽瓙紿楀彛WS_CHILD鏃訛紝涓嶈兘璁劇疆鐒︾偣SetFocus
Q230587錛歅RB: Can't Set Focus to an Edit Control When its Parent Is an Inactive Captioned Child Window
http://support.microsoft.com/kb/230587/en-us
20. 鍦‥dit涓洖杞︽椂錛屼細閫鍑哄璇濇
閫変腑Edit鐨勯鏍糤ant Return銆?br>
MSDN鐨勮В閲婂涓嬶細
ES_WANTRETURN Specifies that a carriage return be inserted when the user presses the ENTER key while entering text into a multiple-line edit control in a dialog box. Without this style, pressing the ENTER key has the same effect as pressing the dialog box's default pushbutton. This style has no effect on a single-line edit control.
21. 鍔ㄦ佸垱寤虹殑edit娌℃湁杈規(guī)鐨勯棶棰?/span>
m_edit.Create(....);
m_edit.ModifyStyleEx(0, WS_EX_CLIENTEDGE, SWP_DRAWFRAME);
22. 涓涓兘鏄劇ずRTF錛宱le錛堝寘鎷琯if錛?wmv錛宔xcel 錛宲pt錛夌殑渚嬪瓙
http://www.codeproject.com/richedit/COleRichEditCtrl.asp