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

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)處于某個位置(直觀來看就是光標(biāo)在閃動);
             如果nStart和nEnd不相等,表明用戶在edit中選中了一段內(nèi)容。


3.在edit最后添加字符串

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


4.隨輸入自動滾動到最后一行(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派生一個類,添加WM_CHAR消息映射。下面一個例子實現(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自動為寬字符(WideChar),所以它可以解決中文亂碼以及一些漢字問題

    方法一:(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.
    方法二:以對話框為例:
       (1)    增加一全局變量 HMODULE hMod;
       (2)    在CxxxApp::InitInstance()中添加一句hMod = LoadLibrary(_T("riched20.dll"));
              在CxxxApp::ExitInstance()中添加一句FreeLibrary(hMod);
       (3)      在對話框上放一個richedit,文本方式打開.rc文件修改該richedit控件的類名"RICHEDIT" to  "RichEdit20a".
       (4)      在對話框頭文件添加 CRichEditCtrl m_richedit;
              在OnInitDialog中添加 m_richedit.SubclassDlgItem(IDC_RICHEDIT1, this);


8.改變richedit指定區(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動畫

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


12.richedit嵌入ole對象

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無響應(yīng)的問題

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è)置焦點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中回車時,會退出對話框 

選中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. 動態(tài)創(chuàng)建的edit沒有邊框的問題

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

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

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

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

評論

# 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ù)  更多評論   

# 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ù)  更多評論   

# 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ù)  更多評論   

# 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ù)  更多評論   

<2009年8月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

導(dǎo)航

統(tǒng)計

常用鏈接

留言簿(9)

隨筆分類(67)

隨筆檔案(65)

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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一区二区三区| 精品成人一区二区| 亚洲福利小视频| 一区二区三区视频免费在线观看| 亚洲人成7777| 亚洲视频一区二区在线观看| 亚洲欧美国产高清| 久久久噜久噜久久综合| 欧美国产亚洲另类动漫| 一区二区三区不卡视频在线观看 | 国产欧美日韩三级| 永久555www成人免费| 9久草视频在线视频精品| 欧美一级久久久久久久大片| 蜜臀a∨国产成人精品| 99精品99| 免费久久99精品国产自在现线| 欧美黄色免费网站| 国产日韩欧美亚洲一区| 亚洲精品一区二区三区婷婷月| 亚洲欧美日韩一区二区三区在线| 久久综合九色综合欧美狠狠| 99精品视频免费观看视频| 久久精品理论片| 亚洲欧美日韩国产成人精品影院| 欧美xart系列高清| 日韩一级黄色大片| 夜夜嗨一区二区| 亚洲人体偷拍| 欧美一区二区三区在线观看视频| 久久男人av资源网站| 国产精品你懂的| 99精品黄色片免费大全| 免费短视频成人日韩| 亚洲欧美精品一区| 欧美精品一区三区| 亚洲电影在线免费观看| 欧美中文字幕在线| 亚洲小说春色综合另类电影| 麻豆成人综合网| 激情一区二区三区| 久久国产精品久久w女人spa| 一区二区三区欧美日韩| 男人的天堂亚洲在线| 狠狠久久婷婷| 久久夜精品va视频免费观看| 性色一区二区| 国产综合精品| 久久免费黄色| 欧美专区福利在线| 国产午夜久久| 久久亚洲一区二区三区四区| 亚洲欧美日韩国产| 国产情侣久久| 久久夜色精品国产亚洲aⅴ| 午夜日本精品| 国产亚洲精品激情久久| 久久精品国产久精国产爱| 亚洲小说欧美另类社区| 国产欧美精品久久| 老牛影视一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 在线观看91精品国产入口| 欧美激情一区二区三区不卡| 欧美黑人多人双交| 国产精品99久久不卡二区| 一区二区三区四区精品| 国产精品专区h在线观看| 欧美一区二区三区四区在线观看| 亚洲欧美日韩一区二区三区在线| 国产日韩在线亚洲字幕中文| 蜜桃av一区| 欧美午夜不卡| 久久久久五月天| 欧美aⅴ99久久黑人专区| 亚洲视屏一区| 欧美一区二区福利在线| 亚洲国产精品t66y| 夜夜嗨av一区二区三区| 国产视频在线观看一区二区三区| 久久亚洲精品中文字幕冲田杏梨| 免播放器亚洲一区| 午夜欧美大尺度福利影院在线看| 国产美女扒开尿口久久久| 久久精品国产久精国产思思| 欧美亚洲自偷自偷| 亚洲国产精品成人一区二区| 亚洲人成艺术| 国产日本欧洲亚洲| 欧美激情视频给我| 国产精品黄视频| 免费成人你懂的| 欧美日韩在线播放一区| 久久久久久一区二区三区| 欧美激情bt| 久久精品最新地址| 欧美精品在线视频观看| 欧美一级大片在线免费观看| 免费成人av在线看| 久久精品国产在热久久 | 久久久亚洲精品一区二区三区| 免费日韩av片| 久久国产精品久久w女人spa| 欧美另类极品videosbest最新版本| 亚洲欧洲av一区二区| 欧美1区视频| 另类尿喷潮videofree| 欧美视频在线观看 亚洲欧| 欧美国产高潮xxxx1819| 国产自产精品| 亚洲欧美卡通另类91av| 一本色道久久综合狠狠躁篇的优点 | 欧美伊久线香蕉线新在线| 欧美激情精品久久久久久久变态 | 99国产精品久久| 亚洲国产欧美一区二区三区久久| 亚洲免费在线| 亚洲欧美日韩一区| 欧美视频网站| 日韩视频在线免费观看| 亚洲精品四区| 欧美国产在线观看| 欧美激情亚洲激情| 亚洲高清av在线| 久久免费精品视频| 欧美顶级大胆免费视频| 尤物九九久久国产精品的分类| 亚洲男人的天堂在线| 欧美一级久久| 国产在线视频欧美一区二区三区| 性色av香蕉一区二区| 久久国产成人| 国产手机视频精品| 午夜精品久久久久影视| 性做久久久久久久免费看| 国产精品对白刺激久久久| 99re6这里只有精品| 亚洲欧美成人精品| 国产视频丨精品|在线观看| 性18欧美另类| 久久九九国产精品| 在线观看一区视频| 欧美国产日韩二区| 国产一区二区精品丝袜| 午夜欧美精品| 另类图片综合电影| 亚洲国产一区二区三区高清| 久久综合国产精品| 亚洲精品一区二区三区婷婷月 | 国产性做久久久久久| 欧美亚洲午夜视频在线观看| 久久九九久久九九| 亚洲国产精品999| 欧美日韩免费观看一区=区三区 | 亚洲字幕一区二区| 老巨人导航500精品| 日韩西西人体444www| 国产精品成人一区二区艾草| 性色一区二区三区| 亚洲国产精品第一区二区三区| 亚洲婷婷国产精品电影人久久| 国产精品永久免费在线| 男女av一区三区二区色多| 一本久久综合| 欧美激情一区二区在线| 午夜视频在线观看一区| 亚洲福利视频三区| 国产精品网站视频| 欧美—级在线免费片| 欧美亚洲午夜视频在线观看| 91久久国产综合久久蜜月精品 | 国产欧美日本一区二区三区| 久久精品亚洲精品| 一本色道88久久加勒比精品| 久久精品视频免费| 日韩视频在线你懂得| 国产一区二区精品在线观看| 欧美国产国产综合| 欧美亚洲一区三区| 亚洲精品一区在线| 麻豆av一区二区三区| 亚洲淫片在线视频| 亚洲欧洲综合| 红桃视频一区| 国产欧美日韩免费看aⅴ视频| 欧美va亚洲va香蕉在线| 欧美一区二区久久久| 中日韩在线视频| 亚洲精品久久久蜜桃| 你懂的亚洲视频| 久久人人爽爽爽人久久久| 午夜精品国产更新| 亚洲一区二区三区成人在线视频精品| 在线观看欧美日本| 精品999成人| 狠狠综合久久av一区二区小说| 国产精品尤物福利片在线观看|