你的位置:pcMing工作室 >> 资讯 >> 编程开发 >> C++编程 >> 详细内容 在线投稿

RichEdit使用大全

排行榜 收藏 打印 发给朋友 举报 来源: 互联网   发布者:未知
热度2853票  浏览675次 【共0条评论】【我要评论 时间:2010年4月08日 20:24
pcMing工作室#Yn |7} me[6B9l eA0P]

pcMing工作室a4[`;q&e ]t+f2P

S1P H$kNA(f8j0二.函数应用pcMing工作室KTb` a
pcMing工作室%c(Z_|`p }B-i
a.设置字体(主要是通过SetSelectionCharFormat)
4l\4w9t&n;g@%vY0CHARFORMAT cf;pcMing工作室f1Z~:d2Z9y M
ZeroMemory(&cf, sizeof(CHARFORMAT));pcMing工作室%irpdIw6p-U
cf.cbSize = sizeof(CHARFORMAT);
aQa!t.[5a0cf.dwMask|=CFM_BOLD;
I+iz1Z,Ygej$_0cf.dwEffects|=CFE_BOLD;//设置粗体,取消用cf.dwEffects&=~CFE_BOLD;pcMing工作室 JS)rwKX
cf.dwMask|=CFM_ITALIC;
d-F3f#r U"I[:d%q D0cf.dwEffects|=CFE_ITALIC;//设置斜体,取消用cf.dwEffects&=~CFE_ITALIC;
#j`H/f4Pv7l&N*qz0cf.dwMask|=CFM_UNDERLINE;
q BQ$w8DV$j:l0cf.dwEffects|=CFE_UNDERLINE;//设置斜体,取消用cf.dwEffects&=~CFE_UNDERLINE;
E9c1[#@ G3[Of0cf.dwMask|=CFM_COLOR;
Uv1c!` VR(hjwd B_0cf.crTextColor = RGB(255,0,0);//设置颜色pcMing工作室&gnLznnW
cf.dwMask|=CFM_SIZE;pcMing工作室6M&t3y\*L5l6K.t'e
cf.yHeight =200;//设置高度
Dry9T0K:UV0cf.dwMask|=CFM_FACE;
-{]z:^E'fj0strcpy(cf.szFaceName ,_T("隶书"));//设置字体
Sl9??j0rich.SetSelectionCharFormat(cf);
"O,iv[FUW#e3g3c5y0
\K]/Dti*l1ED vp0b.设置字体的行间距
0sa'e-i ^9[0要用richedit2.0以上
Rk)vD @#j$iL,Y0试试
G-tZ[c#s+n}0PARAFORMAT2 pf;pcMing工作室1e&DwCY
pf.cbSize = sizeof(PARAFORMAT2);pcMing工作室-y z%U!a3p3ZZ5M7j
pf.dwMask = PFM_NUMBERING | PFM_OFFSET;
X#p-L9cE,_W `0pf.wNumbering = PFN_BULLET;//注意PFM_NUMBERINGpcMing工作室*n#j*\"e F#}*z
pf.dxOffset = 10;
o G(vXUU4f8I [0VERIFY(SetParaFormat(pf));pcMing工作室%}9XE0s{
常用的dwMask有pcMing工作室Lco'r+l
PFM_NUMBERING 成员 wNumbering 才起作用,项目符号,默认用PFN_BULLET
8kL5VoH(R02 使用阿拉伯数字 (1, 2, 3, ...).  
5Mu@{{#Nc"{:J ?|03 使用小写字母 (a, b, c, ...).  
q0HE0cg U,u(K#P04 使用大写字母 (A, B, C, ...).  
])Itwag05 使用小写罗马数字 (i, ii, iii, ...).  
:b_)q}1J Z Bu06 使用大写罗马数字 (I, II, III, ...).  pcMing工作室 DzP-o5i,~b?Az
7 自定义,字符见成员 wNumberingStart.  
RZB(PBV0pcMing工作室:H)KJ P C7j'fu"})`
PFM_OFFSET 成员 dxOffset 才起作用,缩进,单位twips
;emd;q$o0PFM_STARTINDENT 成员 dxStartIndent 才起作用,首行缩进pcMing工作室M;a"s4oufl
PFM_SPACEAFTER 成员 dySpaceAfter 才起作用,段间距pcMing工作室V9D]:H2ScG'e
PFM_LINESPACING 成员 dyLineSpacing 才起作用,行间距
oQ3q1Z"c2y(d0pcMing工作室;HCmvR.pz6R&z
c.设置CRichEditCtrl(2.0)背景透明pcMing工作室"[ Ue o'G ojA
long style = ::GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE);
.P%d)X-^p%XHma SJ0style &= WS_EX_TRANSPARENT;
'|A\#d h ^0::SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE, style);
A1JD*n&r K.zA"S0或 CreateEx,然后把WS_EX_TRANSPARENT样式加上 e.得到内容有三种
'H fV?6c0
E~_$Ut/Ys01)GetWindowTextpcMing工作室,{.Q&L,}v W"m v!i

w/T2Zo7{02)使用EM_GETTEXTEX
'v;Ht VH;A0GETTEXTEX gt;pcMing工作室X?V#rT4\
gt.cb = 200;
j UX!WjU0gt.flags = GT_DEFAULT;
3Qi\4X$|qZx0gt.codepage = CP_ACP ;
]yV s;[ B2OFH0gt.lpDefaultChar = NULL;
J+U+e Ip{c ~0gt.lpUsedDefChar = NULL;
yb wC @1t8`0SendMessage(EM_GETTEXTEX,(WPARAM)>,(LPARAM)text);pcMing工作室O!`M3A%Z2G(g
pcMing工作室}].X[CO8t
3)StreamOut(主要用于RTF等格式输出)
*wr o*Od f&~0static DWORD CALLBACKpcMing工作室*t(d#e6U.g
MyStreamOutCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
;t]aw``1i0{
y6U s0D?va0CFile* pFile = (CFile*) dwCookie; pFile->Write(pbBuff, cb);pcMing工作室-cN8a(To"[[
*pcb = cb; return 0;pcMing工作室b"zH9l7[7m;M#Co
}
5`3g.]1cXN*pl9y0CFile cFile(TEXT("myfile.rtf"), CFile::modeCreate|CFile::modeWrite);pcMing工作室 M1r k'u2j,a,qZI v
EDITSTREAM es;pcMing工作室FyM:d*hr cr
es.dwCookie = (DWORD) &cFile;//设置用例参数,以便回调函数调用
YC5A^@G q:].B0es.pfnCallback = MyStreamOutCallback;
.Q Ssm1I0pmyRichEditCtrl->StreamOut(SF_RTF, es);pcMing工作室 ZZ x/] uXPLu/D`
读入可以此类推,SetWindowText,EM_SETTEXTEX,StreamIn f.查找字符串pcMing工作室6oXC.T I'i
FINDTEXTEX ft;
I;}L$V.wq8ah}.K3s0ft.chrg.cpMin = 0;
*^x1R3G I0\r0ft.chrg.cpMax = -1;
|p1BFcA0ft.lpstrText = "|";pcMing工作室/g$fj B d
long lPos = FindText(0, &ft); 如果要继续查找,修改cpMin,如
/W6R!v C0L*E#u$A:~%`li0int nCount = 0;
CLO&L&t0dopcMing工作室$wV_3i0Fr%Z%ScC
{
.x"aR${;D sk0long lPos = GetRichEditCtrl().FindText(0, &ft);
(W.j3Xf I0K/S]P/Ds0if( -1 == lPos) break;
Vza(w:?q$V E8w0ft.chrg.cpMin = lPos + strlen(ft.lpstrText);
)U\P*MThw0++nCount;
Su0G2x#P;BEg{Y0}while(TRUE); g.以Html格式保存
$sWS|"U7AL0目前做法可先转为RTF格式,再通过RTF-to-HTML ConverterpcMing工作室)z'M@w*V2m s5?o
http://www.codeguru.com/Cpp/controls/richedit/conversions/article.php/c5377/pcMing工作室|5G2g.~&fKgw
pcMing工作室!e \:O4J1{#A'b.R3Xz
h.重载OnProtected函数得到对应的消息,如粘贴等
3E@1dI"u jM6H$y/ru0void CMYichEditorView::OnProtected(NMHDR* pNMHDR, LRESULT* pResult)
1K_zHK!k0{
lpU'V6J&o0ENPROTECTED* pEP = (ENPROTECTED*)pNMHDR;   switch (pEP->msg) {pcMing工作室 X^\tD Ry \y
case WM_KEYDOWN://按键,判断pEP->wParampcMing工作室 mc`*s9k7L
case WM_PASTE://粘贴pcMing工作室Cy N$n^Q` v w&f
case WM_CUT://剪切pcMing工作室2XH3q6oeM uA
case EM_SETCHARFORMAT:
q7Kw)i@!W/^ |/Dm0default:
{{bLT9O@3H2} C0   break;pcMing工作室2qYs8mm
};
1C1@ y1I+xD+Zq Lk0pcMing工作室#nu(C*NH#]h
*pResult = FALSE;
X a9L;lYMcs0}pcMing工作室gJn aL `9t[!` {:g
pcMing工作室$Dt"n L^%cZXT-g

顶:148 踩:150
对本文中的事件或人物打分:
当前平均分:-0.41 (869次打分)
对本篇资讯内容的质量打分:
当前平均分:-0.55 (880次打分)
【已经有806人表态】
104票
感动
112票
路过
100票
高兴
91票
难过
92票
搞笑
95票
愤怒
102票
无聊
110票
同情
上一篇 下一篇
发表评论
换一张

网友评论仅供网友表达个人看法,并不表明本网同意其观点或证实其描述。

查看全部回复【已有0位网友发表了看法】

网络资源