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

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.設置edit只讀屬性

    方法一:
                m_edit1.SetReadOnly(TRUE);
    方法二:
                ::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選中的內容    
            m_edit1.GetWindowText(strTemp);
            strTemp = strTemp.Mid(nStart) - strTemp.Mid(nEnd);
            AfxMessageBox(strTemp);
        }
    注:GetSel后,如果nStart和nEnd,表明光標處于某個位置(直觀來看就是光標在閃動);
             如果nStart和nEnd不相等,表明用戶在edit中選中了一段內容。


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消息映射。下面一個例子實現了限定輸入16進制字符的功能。

   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及以后版本創建的工程)
            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指定區域的顏色及字體

        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.設置行間距(只適用于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選中內容只讀

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無響應的問題

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.當edit控件的父窗口屬性是帶標題欄WS_CAPTION和子窗口WS_CHILD時,不能設置焦點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的風格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. 動態創建的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++技術

評論

# 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]   回復  更多評論   

# 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.  回復  更多評論   

# 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.  回復  更多評論   

# 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   回復  更多評論   

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

導航

統計

常用鏈接

留言簿(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| 国产精品jizz在线观看美国| 亚洲国产免费看| 免费成人高清在线视频| 免费视频一区| 亚洲国产欧美一区二区三区同亚洲| 久久久免费精品视频| 免费不卡在线视频| 亚洲日本精品国产第一区| 日韩午夜激情| 欧美一区二区高清| 噜噜噜久久亚洲精品国产品小说| 欧美黄在线观看| 国产精品亚洲激情| 亚洲福利国产| 亚洲影视中文字幕| 久久综合狠狠综合久久综合88| 欧美成人午夜| 亚洲欧美日韩久久精品 | 亚洲最新视频在线播放| 午夜视频久久久| 欧美激情一区二区三区高清视频 | 欧美高清在线视频| 一个色综合导航| 久久综合99re88久久爱| 国产精品九九| 亚洲美女在线一区| 久热国产精品视频| 亚洲一二三级电影| 欧美激情麻豆| 亚洲欧美视频在线| 欧美韩国一区| 韩国av一区二区三区在线观看| 在线视频一区观看| 欧美超级免费视 在线| 亚洲一区二区动漫| 欧美日产一区二区三区在线观看| 激情婷婷久久| 久久精品视频在线播放| 亚洲视频在线免费观看| 欧美精品午夜| 最新国产成人在线观看| 噜噜噜在线观看免费视频日韩| 正在播放欧美视频| 欧美三区免费完整视频在线观看| 亚洲青色在线| 欧美成人国产va精品日本一级| 欧美亚洲网站| 国产欧美高清| 欧美一区二区在线免费播放| 在线一区观看| 欧美日韩中文字幕| 亚洲婷婷国产精品电影人久久 | 一区二区免费在线视频| 蜜桃久久av| 91久久午夜| 亚洲高清免费视频| 嫩草伊人久久精品少妇av杨幂| 一区精品久久| 欧美+亚洲+精品+三区| 久久gogo国模裸体人体| 国内精品99| 欧美大尺度在线| 麻豆成人综合网| 最新亚洲一区| 日韩视频―中文字幕| 欧美视频中文字幕| 欧美一区二区三区的| 欧美在线看片a免费观看| 狠狠久久亚洲欧美专区| 免费观看成人| 欧美韩日亚洲| 亚洲欧美国产高清va在线播| 在线视频精品一| 国产亚洲免费的视频看| 女同一区二区| 欧美日本一区| 先锋亚洲精品| 久久久91精品| 一本色道久久综合亚洲精品婷婷 | 欧美区在线播放| 亚洲免费人成在线视频观看| 亚洲一区观看| 伊人久久大香线蕉综合热线| 亚洲国产成人午夜在线一区| 欧美日韩高清在线| 亚洲专区一区二区三区| 亚洲每日更新| 宅男噜噜噜66国产日韩在线观看| 国产日韩欧美二区| 欧美激情一区二区三区成人| 国产精品国产三级国产aⅴ无密码| 久久九九99| 欧美绝品在线观看成人午夜影视| 午夜激情综合网| 欧美夫妇交换俱乐部在线观看| 亚洲已满18点击进入久久| 久久精品一区二区| 亚洲欧美成人一区二区在线电影 | 欧美在线亚洲| 中文高清一区| 久久野战av| 午夜精品久久久久久久99水蜜桃| 久久精品日韩一区二区三区| 亚洲私人影院在线观看| 久久婷婷人人澡人人喊人人爽| 亚洲影院污污.| 欧美黄色片免费观看| 久久蜜桃香蕉精品一区二区三区| 欧美精品九九99久久| 麻豆成人在线播放| 国产视频久久网| 在线亚洲电影| 国产精品99久久久久久有的能看| 久久久噜噜噜久久中文字免| 小黄鸭视频精品导航| 欧美日韩免费观看中文| 欧美mv日韩mv国产网站app| 国产日本欧美在线观看| 在线亚洲电影| 一区二区三区四区五区精品| 免费成人高清视频| 欧美h视频在线| 国产亚洲一区在线播放| 亚洲综合色噜噜狠狠| 亚洲在线不卡| 国产精品国产三级国产普通话三级| 欧美顶级艳妇交换群宴| 亚洲第一偷拍| 乱人伦精品视频在线观看| 久久全球大尺度高清视频| 国产日韩欧美中文在线播放| 亚洲影视在线| 久久9热精品视频| 国产精品一区2区| 亚洲永久在线观看| 欧美在线你懂的| 国产亚洲成av人在线观看导航| 中文欧美日韩| 欧美一区二区三区在线观看视频| 国产精品日韩一区二区| 亚洲欧美一级二级三级| 久久久久久伊人| 亚洲电影网站| 欧美精品国产精品日韩精品| 日韩一区二区精品在线观看| 亚洲综合精品自拍| 国产视频一区欧美| 久久久免费av| 亚洲茄子视频| 亚洲欧美综合精品久久成人| 国产日韩精品电影| 国产精品亚洲综合| 欧美大色视频| 亚洲日本成人| 久久久精品国产一区二区三区| 亚洲欧美在线一区二区| 欧美日韩亚洲一区二区三区在线 | 欧美一区二区三区视频| 欧美在线一二三区| 国产亚洲欧美另类一区二区三区| 久久精品视频在线免费观看| 免费日韩视频| 亚洲无限av看| 国内精品久久久久久久影视蜜臀| 狂野欧美性猛交xxxx巴西| 亚洲第一毛片| 一区二区三区www| 国产精品一区毛片| 久久综合婷婷| 国产精品99久久久久久久久久久久| 欧美在线www| 亚洲精品国产精品乱码不99 | 日韩视频一区二区三区在线播放免费观看 | 久久精品亚洲一区二区| 亚洲第一中文字幕| 欧美日韩中文在线观看| 久久免费精品日本久久中文字幕| 91久久精品一区二区别| 欧美一区二区三区在线| 亚洲另类在线一区| 韩国av一区二区三区在线观看| 欧美日本亚洲视频| 久久一区二区三区国产精品 | 久久全球大尺度高清视频| 日韩一级视频免费观看在线| 久久亚洲欧美| 久久er99精品| 在线视频欧美一区| 亚洲成人资源| 国产日韩欧美不卡| 欧美亚一区二区| 欧美夫妇交换俱乐部在线观看| 亚洲欧美国产一区二区三区| 日韩视频国产视频| 亚洲第一精品久久忘忧草社区| 久久久欧美一区二区| 欧美一区二区性| 性做久久久久久免费观看欧美| 一本一本久久a久久精品综合妖精|