MSN / QQ 中的CRichEditCtrl (一) —— 字体改变

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

首先对标题说明一下,在MSN中,聊天的窗口可能是一个自定义的类。大家用Spy ++可以看看。

对与自定义窗口,可以使用CreateWindow, SetWindowLong或者是SubclassWindow实现,不过这不

是我现在讨论的话题。

好, 先看看效果再说:

我实现的主要就是:(一)字体格式; (二)超链接;(三)背景图片;(四)动画表情

好,开始咯。

字体的实现是很简单的,我没有使用rtf,觉得太烦琐了,我也不需要那么复杂的控制。

仅仅是一个结构CHARFORMAT:

typedef struct _charformat

{

UINT cbSize;

_WPAD _wPad1;

DWORD dwMask;

DWORD dwEffects;

LONG yHeight;

LONG yOffset;

COLORREF crTextColor;

BYTE bCharSet;

BYTE bPitchAndFamily;

char szFaceName[LF_FACESIZE];

_WPAD _wPad2;

} CHARFORMATA;

相当的明白了,我就不用多说了;对于CRichEditCtrl,它提供的关于格式的接口有:

SetDefaultCharFormat(CHARFORMAT &cf);

SetSel(CHARFORMAT &cf);

大家都是明白人,一看便知,也不多说了,那么如何使用CFontDialog选择字体呢?

呵呵,其实很简单咯,因为有这个东西 => CFontDialog::GetCharFormat(CHARFORMAT &cf);

所以,总的实现可能就是这么简单的几句代码:

CFontDialog fontdlg;

int ret = fontdlg.DoModal();

if(IDOK == ret)

{

CHARFORMAT cf;

fontdlg.GetCharFormat(cf);

m_SendMsg.SetDefaultCharFormat(cf);

}

这个本身很简单,那就只写这么多了,一会儿写下一篇。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航