青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 126,  comments - 73,  trackbacks - 0

richedit 常見(jiàn)使用問(wèn)題
一.常見(jiàn)問(wèn)題
a.可以編譯,不能執(zhí)行的


在需要在相應(yīng)的對(duì)話框中加上InitInstance(void)函數(shù)中添加

AfxInitRichEdit();

b.升級(jí)默認(rèn)的Riched版本(默認(rèn)的有一些bug),如
可在InitInstance中添加
LoadLibrary("RICHED20.DLL")
最后注意 FreeLibrary

如果是CRichEditView基類(lèi)的可用
BOOL CXXXXXXView::PreCreateWindow(CREATESTRUCT& cs)
{
//裝入rich edit version 2.0
if (LoadLibraryA("RICHED20.DLL") == NULL)
{
AfxMessageBox(_T("Fail to load \"riched20.dll\"."),MB_OK | MB_ICONERROR);
PostMessage(WM_QUIT,0,0);
return FALSE;
}

m_strClass = RICHEDIT_CLASSA;//for 2.0 class

return CRichEditView::PreCreateWindow(cs);
}

c.最后追加行
richeditctrl.SetSel(-1, -1);
richeditctrl.ReplaceSel( (LPCTSTR)str );

d.字?jǐn)?shù)限制
CRichEditCtrl::LimitText(long nChars)

e.換行切換
CRichEditView的OnInitialUpdate()函數(shù)中加入下面兩句:
m_nWordWrap = WrapNone;
WrapChanged();
WrapChanged實(shí)際上也是調(diào)用
ctrl.SetTargetDevice(NULL, 1); //m_nWordWrap == WrapNone
ctrl.SetTargetDevice(NULL, 0); //m_nWordWrap == WrapToWindow
還有不常用的 m_nWordWrap == WrapToTargetDevice
ctrl.SetTargetDevice(m_dcTarget, GetPrintWidth());
如果是在Dialog中,可使用SetTargetDevice,注意在屬性里面加上want return

f.有時(shí)候不希望帶格式的數(shù)據(jù)粘貼,可通過(guò)PasteSpecial選擇性粘貼
pmyRichEditCtrl->PasteSpecial(CF_TEXT);

g.隨著輸入隨著自動(dòng)滾動(dòng)條滾動(dòng)到最后一行
int nFirstVisible = pmyRichEditCtrl->GetFirstVisibleLine();
if (nFirstVisible > 0)
{
??? pmyRichEditCtrl->LineScroll(-nFirstVisible, 0);
}

m_cRichEdit.PostMessage(WM_VSCROLL, SB_BOTTOM,0);


h.設(shè)置UNDO的次數(shù)(只能用在RICHED20以上,即默認(rèn)不支持,必須升級(jí))
SendMessage(EM_SETTEXTMODE,TM_MULTILEVELUNDO,0);
TM_MULTILEVELUNDO 支持多取消(默認(rèn)值).可通過(guò)EM_SETUNDOLIMIT設(shè)置最大次數(shù)
SendMessage(EM_SETUNDOLIMIT,100,0);

i.響應(yīng)OnChange
EM_SETEVENTMASK 設(shè)置 ENM_CHANGE
long lMask = GetEventMask();
lMask |= ENM_CHANGE;
lMask &= ~ENM_PROTECTED;
SetEventMask(lMask);

j.設(shè)置只讀
CRichEditCtrl::SetReadOnly( BOOL bReadOnly = TRUE );
通過(guò)設(shè)置PROTECTED實(shí)現(xiàn)選中的文本只讀,參見(jiàn)
http://www.codeguru.com/Cpp/controls/richedit/article.php/c2401/


二.函數(shù)應(yīng)用
a.設(shè)置字體(主要是通過(guò)SetSelectionCharFormat)
CHARFORMAT cf;
rich.GetSelectionCharFormat(cf);
cf.dwMask|=CFM_BOLD;
cf.dwEffects|=CFE_BOLD;//設(shè)置粗體,取消用cf.dwEffects&=~CFE_BOLD;
cf.dwMask|=CFM_ITALIC;
cf.dwEffects|=CFE_ITALIC;//設(shè)置斜體,取消用cf.dwEffects&=~CFE_ITALIC;
cf.dwMask|=CFM_UNDERLINE;
cf.dwEffects|=CFE_UNDERLINE;//設(shè)置斜體,取消用cf.dwEffects&=~CFE_UNDERLINE;
cf.dwMask|=CFM_COLOR;
cf.crTextColor = RGB(255,0,0);//設(shè)置顏色
cf.dwMask|=CFM_SIZE;
cf.yHeight =200;//設(shè)置高度
cf.dwMask|=CFM_FACE;
strcpy(cf.szFaceName ,_T("隸書(shū)"));//設(shè)置字體
rich.SetSelectionCharFormat(cf);

b.設(shè)置字體的行間距
要用richedit2.0以上
試試
PARAFORMAT2 pf;
pf.cbSize = sizeof(PARAFORMAT2);
pf.dwMask = PFM_NUMBERING | PFM_OFFSET;
pf.wNumbering = PFN_BULLET;//注意PFM_NUMBERING
pf.dxOffset = 10;
VERIFY(SetParaFormat(pf));
常用的dwMask有
PFM_NUMBERING 成員 wNumbering 才起作用,項(xiàng)目符號(hào),默認(rèn)用PFN_BULLET
2 使用阿拉伯?dāng)?shù)字 (1, 2, 3, ...).?
3 使用小寫(xiě)字母 (a, b, c, ...).?
4 使用大寫(xiě)字母 (A, B, C, ...).?
5 使用小寫(xiě)羅馬數(shù)字 (i, ii, iii, ...).?
6 使用大寫(xiě)羅馬數(shù)字 (I, II, III, ...).?
7 自定義,字符見(jiàn)成員 wNumberingStart.?
PFM_OFFSET 成員 dxOffset 才起作用,縮進(jìn),單位twips
PFM_STARTINDENT 成員 dxStartIndent 才起作用,首行縮進(jìn)
PFM_SPACEAFTER 成員 dySpaceAfter 才起作用,段間距
PFM_LINESPACING 成員 dyLineSpacing 才起作用,行間距

c.設(shè)置CRichEditCtrl(2.0)背景透明
long style = ::GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE);
style &= WS_EX_TRANSPARENT;
::SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE, style);
或 CreateEx,然后把WS_EX_TRANSPARENT樣式加上

e.得到內(nèi)容有三種
1)GetWindowText
2)使用EM_GETTEXTEX
GETTEXTEX gt;
gt.cb = 200;
gt.flags = GT_DEFAULT;
gt.codepage = CP_ACP ;
gt.lpDefaultChar = NULL;
gt.lpUsedDefChar = NULL;
SendMessage(EM_GETTEXTEX,(WPARAM)&gt,(LPARAM)text);
3)StreamOut(主要用于RTF等格式輸出)
static DWORD CALLBACK
MyStreamOutCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
??? CFile* pFile = (CFile*) dwCookie;

??? pFile->Write(pbBuff, cb);
??? *pcb = cb;

??? return 0;
}


??? CFile cFile(TEXT("myfile.rtf"), CFile::modeCreate|CFile::modeWrite);
??? EDITSTREAM es;
??? es.dwCookie = (DWORD) &cFile;//設(shè)置用例參數(shù),以便回調(diào)函數(shù)調(diào)用
??? es.pfnCallback = MyStreamOutCallback;
??? pmyRichEditCtrl->StreamOut(SF_RTF, es);
讀入可以此類(lèi)推,SetWindowText,EM_SETTEXTEX,StreamIn

f.查找字符串
FINDTEXTEX ft;
ft.chrg.cpMin = 0;
ft.chrg.cpMax = -1;
ft.lpstrText = "|";
long lPos = FindText(0, &ft);

如果要繼續(xù)查找,修改cpMin,如
int nCount = 0;
do
{
long lPos = GetRichEditCtrl().FindText(0, &ft);
if( -1 == lPos) break;
ft.chrg.cpMin = lPos + strlen(ft.lpstrText);
++nCount;
}while(TRUE);

g.以Html格式保存
目前做法可先轉(zhuǎn)為RTF格式,再通過(guò)RTF-to-HTML Converter

http://www.codeguru.com/Cpp/controls/richedit/conversions/article.php/c5377/

h.重載OnProtected函數(shù)得到對(duì)應(yīng)的消息,如粘貼等
void CMYichEditorView::OnProtected(NMHDR* pNMHDR, LRESULT* pResult)
{
ENPROTECTED* pEP = (ENPROTECTED*)pNMHDR;

switch (pEP->msg) {
case WM_KEYDOWN://按鍵,判斷pEP->wParam
case WM_PASTE://粘貼
case WM_CUT://剪切
case EM_SETCHARFORMAT:
default:
?? break;
};

*pResult = FALSE;
}

三.聊天常用?
a.LINK 鏈接功能
1.?? LoadLibrary(_T("Riched20.dll"));
2. 創(chuàng)建RichEdit2.0控件
CreateEx(0, _T("RichEdit20A"), NULL, WS_CHILD|WS_VISIBLE|WS_VSCROLL|WS_TABSTOP
|ES_READONLY|ES_WANTRETURN|ES_MULTILINE,
?????????? rect.left, rect.top, cx, cy,
?? pParentWnd->m_hWnd, (HMENU)nID, NULL);
3. 設(shè)定選中的文字為鏈接顯示
CHARFORMAT2 cf2;
ZeroMemory(&cf2, sizeof(CHARFORMAT2));//
cf2.cbSize = sizeof(CHARFORMAT2);
cf2.dwMask = CFM_LINK;
cf2.dwEffects |= CFE_LINK;
m_cRichEdit.SendMessage(EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2);
4.支持鏈接的點(diǎn)擊響應(yīng)
m_cRichEdit.SetEventMask(ENM_LINK);
5.響應(yīng)鏈接的點(diǎn)擊EN_LINK

BEGIN_MESSAGE_MAP(CMyRichEdit, CRichEditCtrl)
ON_NOTIFY_REFLECT(EN_LINK,OnURL)
END_MESSAGE_MAP()
......

void CMyRichEdit::OnURLClick(NMHDR *pNmhdr, LRESULT *pResult)
{
TCHAR LinkChar[512];
ENLINK *pLink = (ENLINK *)pNmhdr;
if (pLink->msg == WM_LBUTTONUP)
{
SetSel(penLink->chrg);//這是鏈接的文字范圍
long Res = GetSelText((char *)LinkChar);//這是鏈接文字
?????????????????? //后面是你的處理過(guò)程
?????????????????? ......
????????? }
}

b.插入位圖
http://www.codeguru.com/Cpp/controls/richedit/article.php/c2417/
http://www.codeguru.com/Cpp/controls/richedit/article.php/c5383/

自定義在RichEdit中插入對(duì)象的圖標(biāo)
http://www.blogcn.com/user3/jiangsheng/blog/1319738.html
方法基本同Knowledge Base文章Q220844 HOWTO: Insert a Bitmap Into an RTF Document Using the RichEdit Control
只是在最后插入之前調(diào)用一下IOleCache::SetData,用一個(gè)HGLOBAL作為參數(shù),HGLOBAL里面的數(shù)據(jù)是一個(gè)METAFILEPICT結(jié)構(gòu),包含自己提供的圖片

使用CRichEditView::InsertFileAsObject就可以插入圖像。VC++帶有一個(gè)例子WordPad。
另外可以參考“Insert any HBITMAP (Bitmap) in your RichEdit Control”(http://www.codeguru.com/richedit/richeditrc.html)。

c.顯示GIF動(dòng)畫(huà)
常用的是通過(guò)qq的imageole.dll(也有用Gif89.dll的)
http://www.xiaozhou.net/cooldog/blogview.asp?logID=82
http://www.codeproject.com/richedit/AnimatedEmoticon.asp

在richedit控件中插入動(dòng)態(tài)GIF (Native C++版)
http://blog.joycode.com/jiangsheng/archive/2004/12/15/41209.aspx

d.IRichEditOleCallback的使用
http://61.186.252.131/Expert/topic/905/905844.xml?temp=.8379022

類(lèi)似 MSN 信息發(fā)送框的制作(上)
http://www.vckbase.com/document/viewdoc/?id=1087
內(nèi)容包含:實(shí)現(xiàn)右鍵菜單,圖片插入,讀取/寫(xiě)入RTF格式字符串

自定義 CRichEditCtrl 控件
http://www.vckbase.com/document/viewdoc/?id=328
內(nèi)容包含:鼠標(biāo)右鍵消息,消息映射,字體變換

PS.richedit控件升級(jí)到2.0后,先把字體設(shè)為楷體,輸入漢字沒(méi)有問(wèn)題,但輸入字母時(shí),字母自動(dòng)跳轉(zhuǎn)為Arial字體,而1.0卻沒(méi)有這個(gè)文題,仍然是用楷體顯示字母
是一個(gè)專(zhuān)門(mén)的設(shè)計(jì) Dual-font, Smart font apply, 參見(jiàn) http://61.186.252.131/Expert/topic/913/913807.xml?temp=.3753778

不能顯示圖片等其他OLE對(duì)象

MFC提供的CRichEditCtrl沒(méi)有提供直接顯示圖片等OLE對(duì)象的屬性或方法設(shè)置,但是提供了一個(gè)接口SetOLECallback( IRichEditOleCallback* pCallback );
要讓CRichEditCtrl顯示圖片,就得在IRichEditOleCallback上下功夫。
IRichEditOleCallback是windows中的接口,它的定義如下:
ContextSensitiveHelp:
??? 通過(guò)該方法通知應(yīng)用程序它將以上下文關(guān)聯(lián)方式調(diào)度幫助。
DeleteObject:
??? 通過(guò)該方法發(fā)出通知:一個(gè)對(duì)象即將從RichEdit控件中刪除
GetClipboardData:
??? 通過(guò)該方法允許RichEdit的客戶(hù)端(調(diào)用程序)提供自己的粘貼對(duì)象
GetContextMenu:
??? 通過(guò)該方法向應(yīng)用程序提出通過(guò)鼠標(biāo)右鍵事件來(lái)獲取上下文菜單的請(qǐng)求
GetDragDropEffect:
??? 通過(guò)該方法允許RichEdit的客戶(hù)端(調(diào)用程序)設(shè)置拖動(dòng)操作的效果
GetInPlaceContext:
?? 通過(guò)該方法提供了應(yīng)用程序級(jí)和文檔級(jí)接口,以及必要的支持In-place激活的信息
GetNewStrorage:
??? 通過(guò)該方法存儲(chǔ)從粘貼板或超文本流(RTF)中讀取的新對(duì)象
QueryAcceptData:
??? 通過(guò)該方法決定在粘貼操作或拖放操作中引入的數(shù)據(jù)是否可以被接受。
QueryInsertObject:
??? 通過(guò)該方法向應(yīng)用程序詢(xún)問(wèn)某個(gè)對(duì)象是否可以被插入
ShowContainerUI:
??? 通過(guò)該方法告知應(yīng)用程序是否顯示自己的操作界面

大致了解了IRichEditOleCallback接口后,就應(yīng)該清楚,要顯示圖片等ole對(duì)象,至少應(yīng)該實(shí)現(xiàn)GetNewStorage方法,因?yàn)樵摲椒ㄊ谴鎯?chǔ)ole對(duì)象的接口方法。

以下是接口聲明的代碼:
??? interface IExRichEditOleCallback;?? // forward declaration (see below in this header file)

?? IExRichEditOleCallback* m_pIRichEditOleCallback;
?? BOOL m_bCallbackSet;
??
??
?? interface IExRichEditOleCallback : public IRichEditOleCallback
?? {
?? public:
?????? IExRichEditOleCallback();
?????? virtual ~IExRichEditOleCallback();
?????? int m_iNumStorages;
?????? IStorage* pStorage;
?????? DWORD m_dwRef;

?????? virtual HRESULT STDMETHODCALLTYPE GetNewStorage(LPSTORAGE* lplpstg);
?????? virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void ** ppvObject);
?????? virtual ULONG STDMETHODCALLTYPE AddRef();
?????? virtual ULONG STDMETHODCALLTYPE Release();
?????? virtual HRESULT STDMETHODCALLTYPE GetInPlaceContext(LPOLEINPLACEFRAME FAR *lplpFrame,
?????????? LPOLEINPLACEUIWINDOW FAR *lplpDoc, LPOLEINPLACEFRAMEINFO lpFrameInfo);
??????? virtual HRESULT STDMETHODCALLTYPE ShowContainerUI(BOOL fShow);
??????? virtual HRESULT STDMETHODCALLTYPE QueryInsertObject(LPCLSID lpclsid, LPSTORAGE lpstg, LONG cp);
??????? virtual HRESULT STDMETHODCALLTYPE DeleteObject(LPOLEOBJECT lpoleobj);
??????? virtual HRESULT STDMETHODCALLTYPE QueryAcceptData(LPDATAOBJECT lpdataobj, CLIPFORMAT FAR *lpcfFormat,
?????????? DWORD reco, BOOL fReally, HGLOBAL hMetaPict);
??????? virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode);
??????? virtual HRESULT STDMETHODCALLTYPE GetClipboardData(CHARRANGE FAR *lpchrg, DWORD reco, LPDATAOBJECT FAR *lplpdataobj);
??????? virtual HRESULT STDMETHODCALLTYPE GetDragDropEffect(BOOL fDrag, DWORD grfKeyState, LPDWORD pdwEffect);
??????? virtual HRESULT STDMETHODCALLTYPE GetContextMenu(WORD seltyp, LPOLEOBJECT lpoleobj, CHARRANGE FAR *lpchrg,
?????????? HMENU FAR *lphmenu);
?? };

-----------------------------------------------------------------------

注:
??????? m_edit1代表ID為IDC_EDIT1的CEdit控件的control類(lèi)型的變量
??????? m_richedit1代表ID為IDC_RICHEDIT1的CRichEditCtrl控件的control類(lèi)型的變量


--------------------------------------------------------------------------------
1.設(shè)置edit只讀屬性

??? 方法一:
??????????????? m_edit1.SetReadOnly(TRUE);
??? 方法二:
??????????????? ::SendMessage(m_edit1.m_hWnd, EM_SETREADONLY, TRUE, 0);


--------------------------------------------------------------------------------
2.判斷edit中光標(biāo)狀態(tài)并得到選中內(nèi)容(richedit同樣適用)

??????? int nStart, nEnd;
??????? CString strTemp;

??????? m_edit1.GetSel(nStart, nEnd);
??????? if(nStart == nEnd)
??????? {
??????????? strTemp.Format(_T("光標(biāo)在%d"), nStart);
??????????? AfxMessageBox(strTemp);
??????? }
??????? else
??????? {
??????????? //得到edit選中的內(nèi)容???
??????????? m_edit1.GetWindowText(strTemp);
??????????? strTemp = strTemp.Mid(nStart) - strTemp.Mid(nEnd);
??????????? AfxMessageBox(strTemp);
??????? }
??? 注:GetSel后,如果nStart和nEnd,表明光標(biāo)處于某個(gè)位置(直觀來(lái)看就是光標(biāo)在閃動(dòng));
???????????? 如果nStart和nEnd不相等,表明用戶(hù)在edit中選中了一段內(nèi)容。


--------------------------------------------------------------------------------
3.在edit最后添加字符串

??????? CString str;
??????? m_edit1.SetSel(-1, -1);
??????? m_edit1.ReplaceSel(str);


--------------------------------------------------------------------------------
4.隨輸入自動(dòng)滾動(dòng)到最后一行(richedit同樣適用)

??? 方法一:(摘自msdn)
??????? // 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);
??????? }
??? 方法二:
??????? m_richedit.PostMessage(WM_VSCROLL, SB_BOTTOM, 0);


--------------------------------------------------------------------------------
5.如何限制edit輸入指定字符

?? 可以從CEdit派生一個(gè)類(lèi),添加WM_CHAR消息映射。下面一個(gè)例子實(shí)現(xiàn)了限定輸入16進(jìn)制字符的功能。

?? 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的virtual 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

??? 使用原因:由于RichEdit2.0A自動(dòng)為寬字符(WideChar),所以它可以解決中文亂碼以及一些漢字問(wèn)題

??? 方法一:(msdn上的做法,適用于用VC.NET及以后版本創(chuàng)建的工程)
??????????? 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.
??? 方法二:以對(duì)話框?yàn)槔?br />?????? (1)??? 增加一全局變量 HMODULE hMod;
?????? (2)??? 在CxxxApp::InitInstance()中添加一句hMod = LoadLibrary(_T("riched20.dll"));
????????????? 在CxxxApp::ExitInstance()中添加一句FreeLibrary(hMod);
?????? (3)????? 在對(duì)話框上放一個(gè)richedit,文本方式打開(kāi).rc文件修改該richedit控件的類(lèi)名"RICHEDIT" to? "RichEdit20a".
?????? (4)????? 在對(duì)話框頭文件添加 CRichEditCtrl m_richedit;
????????????? 在OnInitDialog中添加 m_richedit.SubclassDlgItem(IDC_RICHEDIT1, this);


--------------------------------------------------------------------------------
8.改變r(jià)ichedit指定區(qū)域的顏色及字體

??????? 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("隸書(shū)"));//設(shè)置字體
???
??????? m_richedit1.SetSel(1, 5); //設(shè)置處理區(qū)域
??????? m_richedit1.SetSelectionCharFormat(cf);


--------------------------------------------------------------------------------
9.設(shè)置行間距(只適用于richedit2.0)

??????? 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:How 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動(dòng)畫(huà)

http://www.codeproject.com/richedit/AnimatedEmoticon.asp


--------------------------------------------------------------------------------
12.richedit嵌入ole對(duì)象

http://support.microsoft.com/kb/141549/en-us


--------------------------------------------------------------------------------
13.使richedit選中內(nèi)容只讀

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.解決richedit的EN_SETFOCUS和EN_KILLFOCUS無(wú)響應(yīng)的問(wèn)題

http://support.microsoft.com/kb/181664/en-us


--------------------------------------------------------------------------------
17.richedit拼寫(xiě)檢查

http://www.codeproject.com/com/AutoSpellCheck.asp


--------------------------------------------------------------------------------
18.改變edit背景色

Q117778:How to change the background color of an MFC edit control
http://support.microsoft.com/kb/117778/en-us


--------------------------------------------------------------------------------
19.當(dāng)edit控件的父窗口屬性是帶標(biāo)題欄WS_CAPTION和子窗口WS_CHILD時(shí),不能設(shè)置焦點(diǎn)SetFocus

Q230587:PRB: 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. 在Edit中回車(chē)時(shí),會(huì)退出對(duì)話框

選中Edit的風(fēng)格Want Return。

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. 動(dòng)態(tài)創(chuàng)建的edit沒(méi)有邊框的問(wèn)題

??? m_edit.Create(....);
??? m_edit.ModifyStyleEx(0, WS_EX_CLIENTEDGE, SWP_DRAWFRAME);

--------------------------------------------------------------------------------
22. 一個(gè)能顯示RTF,ole(包括gif, wmv,excel ,ppt)的例子

http://www.codeproject.com/richedit/COleRichEditCtrl.asp


本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/qsycn/archive/2009/11/10/4793461.aspx

?

本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/abcpanpeng/archive/2010/04/21/5509680.aspx

posted on 2010-11-03 15:51 我風(fēng) 閱讀(21738) 評(píng)論(0)  編輯 收藏 引用

只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


<2010年11月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(12)

隨筆分類(lèi)

隨筆檔案

文章檔案

相冊(cè)

收藏夾

C++

MyFavorite

搜索

  •  

積分與排名

  • 積分 - 328337
  • 排名 - 75

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            快射av在线播放一区| 欧美日本精品一区二区三区| 欧美日韩在线一二三| 亚洲精品日韩久久| 亚洲第一网站免费视频| 欧美亚洲视频一区二区| 国产在线视频不卡二| 蜜桃av噜噜一区二区三区| 久久亚洲国产成人| 亚洲老板91色精品久久| 亚洲福利视频一区二区| 日韩视频在线播放| 亚洲美女视频在线观看| 国产精品久久久久永久免费观看| 亚洲欧美国产精品桃花| 亚洲欧美日韩精品久久久| 国产日韩欧美日韩大片| 嫩草影视亚洲| 欧美日韩性生活视频| 午夜一级久久| 久久五月天婷婷| 亚洲午夜伦理| 久久久福利视频| 一区二区三区 在线观看视频| 在线视频亚洲一区| 国内精品一区二区三区| 亚洲国产日韩在线一区模特| 国产精品美女xx| 国产精品久久久久久久第一福利 | 一本色道久久综合亚洲精品按摩| 国产精品欧美一区喷水| 蜜臀久久99精品久久久画质超高清 | 一区二区三区日韩欧美| 欧美一区亚洲二区| 99在线精品视频| 欧美一级淫片aaaaaaa视频| 亚洲日本乱码在线观看| 亚洲欧美视频一区二区三区| 91久久精品一区二区三区| 亚洲男人的天堂在线| 亚洲三级性片| 久久本道综合色狠狠五月| 一本色道久久99精品综合| 久久久av毛片精品| 久久xxxx精品视频| 欧美色大人视频| 亚洲电影av在线| 国模精品一区二区三区| 亚洲一区二区三区在线看| 亚洲人成在线观看一区二区 | 母乳一区在线观看| 国产精品私拍pans大尺度在线| 久久综合九色综合久99| 国产精品视频一| 99国产精品99久久久久久粉嫩| 在线播放豆国产99亚洲| 欧美一区二区精品| 午夜精品久久久久影视| 欧美日韩一区二区高清| 亚洲日本理论电影| 亚洲乱码国产乱码精品精天堂 | 一区二区在线看| 一区二区久久| 99re6热只有精品免费观看| 亚洲自拍啪啪| 欧美极品在线观看| 亚洲人成在线观看| 久久深夜福利| 一区二区三区国产在线| 欧美激情精品久久久久久免费印度| 久久影院亚洲| 在线观看国产精品淫| 欧美在线啊v| 久久视频在线看| 极品日韩久久| 美脚丝袜一区二区三区在线观看| 美女视频黄 久久| 亚洲国产欧美在线| 欧美.www| 一本色道久久88综合日韩精品| 亚洲性xxxx| 国产精品美女黄网| 欧美一区精品| 欧美电影电视剧在线观看| 亚洲欧洲精品天堂一级| 欧美日本簧片| 午夜精彩国产免费不卡不顿大片| 久久精品国产亚洲5555| 在线成人国产| 欧美成人免费小视频| 亚洲美女电影在线| 欧美激情一区在线| 99国产精品久久久久久久| 亚洲综合日韩中文字幕v在线| 国产精品久久久久久久久久ktv | 久久成人精品| 激情小说另类小说亚洲欧美| 久久精品成人| 久久国产一二区| 红桃视频一区| 欧美成人伊人久久综合网| 亚洲欧洲精品一区二区三区| 亚洲一区自拍| 曰韩精品一区二区| 欧美三区美女| 久久中文字幕一区| 一区二区三区欧美日韩| 久久久久国产免费免费| 99re66热这里只有精品4| 国产乱理伦片在线观看夜一区| 久久婷婷久久一区二区三区| 在线亚洲欧美视频| 免费亚洲一区二区| 亚洲欧美国产高清| 亚洲国产日本| 国产视频久久| 欧美日韩亚洲一区在线观看| 久久成人精品| 亚洲私人影院在线观看| 亚洲成色777777在线观看影院| 亚洲欧美久久久| 亚洲精品影院在线观看| 国产自产高清不卡| 国产精品久久久久久久久借妻| 免费欧美日韩| 久久精品国产亚洲aⅴ| 一本久道久久综合中文字幕| 欧美成年人在线观看| 久久成人免费日本黄色| 在线亚洲成人| 亚洲精品久久久久中文字幕欢迎你| 国产人成一区二区三区影院| 欧美日韩国产一中文字不卡| 麻豆精品视频在线观看视频| 久久大综合网| 久久激情五月丁香伊人| 久久精品99国产精品酒店日本| 国产精品专区一| 欧美午夜a级限制福利片| 欧美国产视频在线观看| 蜜臀va亚洲va欧美va天堂| 久久精品国产第一区二区三区最新章节 | 欧美日韩精品久久| 欧美国产激情二区三区| 免费观看成人| 免费在线观看日韩欧美| 玖玖综合伊人| 麻豆成人av| 免费成人性网站| 蜜桃av噜噜一区| 欧美成人性生活| 欧美人成在线| 欧美日韩午夜剧场| 欧美日韩中文字幕在线| 国产精品va在线播放| 欧美aaa级| 亚洲福利国产精品| 亚洲日本视频| 亚洲图片激情小说| 亚洲免费一级电影| 欧美在线视频日韩| 久久美女艺术照精彩视频福利播放| 久久精品欧洲| 你懂的国产精品永久在线| 欧美精品激情在线观看| 欧美日韩免费在线观看| 国产精品久久久久影院亚瑟| 国产亚洲精品久| 亚洲丁香婷深爱综合| 99国产欧美久久久精品| 亚洲欧美日韩一区| 久久久人成影片一区二区三区| 你懂的亚洲视频| 亚洲精一区二区三区| 亚洲你懂的在线视频| 久久九九国产| 欧美日韩三级在线| 国产一区二区成人| 亚洲精品一区二区三区在线观看| 一区二区三区国产精华| 久久免费的精品国产v∧| 亚洲日本成人| 欧美亚洲一级| 欧美日韩精品一区二区三区| 国产婷婷97碰碰久久人人蜜臀| 亚洲欧洲一区二区三区在线观看| 在线中文字幕日韩| 狂野欧美一区| 亚洲手机成人高清视频| 免费观看久久久4p| 国产乱子伦一区二区三区国色天香| 在线欧美三区| 欧美一级播放| 亚洲人成亚洲人成在线观看图片| 午夜精品久久久久久99热| 欧美精品在线一区二区| 伊人成人在线视频| 亚洲欧美日韩一区二区| 亚洲精品久久久久久久久久久| 久久大逼视频|