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

CEdit & CRichEdit 使用技巧

http://blog.csdn.net/lixiaosan/

【原】CEdit & CRichEdit 使用技巧

作者:lixiaosan
日期:04/07/2006

注:
        m_edit1代表ID為IDC_EDIT1的CEdit控件的control類型的變量
        m_richedit1代表ID為IDC_RICHEDIT1的CRichEditCtrl控件的control類型的變量


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不相等,表明用戶在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è)類,添加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,文本方式打開.rc文件修改該richedit控件的類名"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è)置字體
    
        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)畫

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拼寫檢查

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中回車時(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

posted on 2007-04-29 20:59 PeakGao 閱讀(3106) 評(píng)論(4)  編輯 收藏 引用 所屬分類: C++技術(shù)

評(píng)論

# xdywdnja 2008-04-06 08:43 xdywdnja

gjwgdmpd http://hxurfwxp.com rygvtudv dhhasnbc <a href="http://ntwzxwoj.com">bwacmbwp</a> [URL=http://awjxkjqo.com]sxebiyww[/URL]   回復(fù)  更多評(píng)論   

# secretogogue 2009-08-14 17:03 secretogogue

One of the lessons of history is that nothing is often a good thing to do and always a clever thing to say.  回復(fù)  更多評(píng)論   

# senega 2009-08-16 21:04 senega

Always be nice to those younger than you, because they are the ones who will be writing about you.  回復(fù)  更多評(píng)論   

# xsbctqbb 2009-08-28 04:09 xsbctqbb

<a href="http://qzbihykk.com">axgxiflo</a> [URL=http://gjogvkkg.com]zxtqqjmz[/URL] gnvkcuff http://etuvuoes.com lauaozas pujjfuur   回復(fù)  更多評(píng)論   

<2007年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(9)

隨筆分類(67)

隨筆檔案(65)

搜索

最新評(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>
            久久se精品一区二区| 欧美电影打屁股sp| 国产主播一区| 国产精品免费久久久久久| 欧美国产一区二区| 欧美日产国产成人免费图片| 久久九九免费| 久久综合给合久久狠狠狠97色69| 欧美不卡视频| 欧美一区国产二区| 欧美在线观看视频一区二区三区| 欧美在线欧美在线| 欧美一区二区三区在线看| 午夜精品成人在线| 麻豆91精品91久久久的内涵| 久久这里只有| 91久久久精品| 亚洲三级免费观看| 亚洲综合国产精品| 久久综合伊人77777| 欧美激情中文不卡| 国产精品一级二级三级| 亚洲国产日韩一区二区| 亚洲欧美在线视频观看| 欧美成人小视频| 亚洲一区免费视频| 久久综合色播五月| 午夜精品影院| 夜夜嗨av一区二区三区四区| 国产综合色一区二区三区| 亚洲黄色av一区| 在线综合欧美| 久久一区激情| 国产精品成人免费精品自在线观看| 亚洲精品国产视频| 亚洲一区二区在线观看视频| 免费不卡在线视频| 国产亚洲欧美一区二区三区| 国产精品99久久久久久www| 性欧美xxxx大乳国产app| 亚洲欧洲另类国产综合| 久久久精品视频成人| 国产精品日韩精品| 在线亚洲激情| 蜜臀久久久99精品久久久久久| 久久大逼视频| 亚洲精品国产无天堂网2021| 久久精视频免费在线久久完整在线看| 一区二区三区色| 蜜桃av噜噜一区二区三区| 国产一区日韩一区| 欧美一站二站| 一区二区三区欧美在线| 欧美日本在线观看| 亚洲狠狠丁香婷婷综合久久久| 欧美一级大片在线观看| 亚洲看片网站| 欧美日韩国产一区精品一区 | 欧美福利网址| 国产精品视频福利| 亚洲一区二区在线观看视频| 亚洲第一区在线观看| 久热综合在线亚洲精品| 亚洲第一黄色| 亚洲第一黄色| 欧美激情在线播放| 亚洲最快最全在线视频| 国产精品综合色区在线观看| 欧美一区二区三区电影在线观看| 午夜精品亚洲| 亚洲视频在线视频| 国产欧美一二三区| 久久久久久亚洲精品中文字幕| 美女视频黄 久久| 久久国产精品一区二区| 国产有码一区二区| 毛片一区二区| 欧美高清视频一区| 亚洲天堂久久| 午夜一区不卡| 亚洲三级影院| 久久全国免费视频| 亚洲国产婷婷| 欧美日韩视频在线一区二区 | 亚洲国产小视频在线观看| 久久久久中文| 亚洲精品一区在线| 99国产精品久久久久老师| 久久嫩草精品久久久久| 久久精品国内一区二区三区| 韩国成人福利片在线播放| 欧美国产日韩一二三区| 欧美日韩在线高清| 欧美有码在线视频| 欧美黑人多人双交| 销魂美女一区二区三区视频在线| 欧美黄网免费在线观看| 欧美日韩不卡在线| 久久丁香综合五月国产三级网站| 亚洲成色精品| 国产精品久久久久久久久搜平片 | 亚洲毛片在线看| 国产精品国产三级国产aⅴ浪潮| 国产主播精品| 日韩视频一区二区三区| 国产精品家教| 葵司免费一区二区三区四区五区| 亚洲一区二区三区激情| 国产一区二区成人| 日韩视频在线观看| 伊人天天综合| 亚洲一二三级电影| 日韩一区二区精品在线观看| 久久aⅴ乱码一区二区三区| 亚洲一区二区三区免费在线观看| 亚洲精选在线| 国自产拍偷拍福利精品免费一| 先锋影院在线亚洲| 蜜桃av久久久亚洲精品| 久久―日本道色综合久久| 国产精品理论片在线观看| 欧美好吊妞视频| 精品福利免费观看| 欧美一区亚洲一区| 性做久久久久久久久| 性久久久久久久久久久久| 噜噜噜久久亚洲精品国产品小说| 国产日产欧产精品推荐色| 亚洲毛片一区| 亚洲美女黄网| 老巨人导航500精品| 久久亚洲免费| 极品尤物av久久免费看| 久久国产精彩视频| 欧美在线观看视频| 国产日韩一区二区| 久久av老司机精品网站导航| 狂野欧美激情性xxxx| 99精品久久久| 欧美精品在线视频| 亚洲韩国青草视频| 亚洲精品免费在线观看| 久久在线视频在线| 欧美黄污视频| 一本色道久久综合亚洲精品不卡| 亚洲人成在线观看一区二区| 亚洲精品免费在线播放| 欧美日本国产一区| 夜夜夜久久久| 欧美尤物巨大精品爽| 国内精品国产成人| 久久婷婷av| 亚洲国产精品电影在线观看| 亚洲精品视频在线观看网站 | 欧美亚洲一区二区三区| 欧美午夜精品久久久久久久| 99视频热这里只有精品免费| 亚洲午夜成aⅴ人片| 国产色视频一区| 免费在线亚洲欧美| 亚洲免费观看高清在线观看| 亚洲一区二区精品在线| 国产女主播一区| 免费不卡在线视频| 中文在线不卡视频| 久久精品人人爽| 亚洲电影观看| 欧美体内she精视频在线观看| 伊人久久亚洲美女图片| 久久综合久久88| 一区二区电影免费在线观看| 亚洲欧美日韩在线观看a三区 | av不卡在线观看| 麻豆精品在线视频| 欧美激情第10页| 亚洲一区精品在线| 极品少妇一区二区三区| 欧美日韩在线观看一区二区三区| 一级成人国产| 国产视频欧美视频| 美女脱光内衣内裤视频久久影院 | 欧美自拍偷拍| 亚洲国产高清一区二区三区| 性欧美1819sex性高清| 亚洲激情在线| 国产一级揄自揄精品视频| 免费不卡视频| 亚洲欧美在线视频观看| 亚洲激情网站| 久久一区欧美| 欧美亚洲一区| 99视频一区二区三区| **欧美日韩vr在线| 国产精品香蕉在线观看| 欧美日本中文字幕| 欧美第一黄色网| 久热成人在线视频| 欧美一区国产一区| 亚洲在线不卡| 一区二区不卡在线视频 午夜欧美不卡在 |