Crichedit改变字体的问题

CHARFORMATcf;ZeroMemory(&cf,sizeof(CHARFORMAT));cf.cbSize=sizeof(CHARFORMAT);cf.dwMas... 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_richedit.SetSel(1, 5); //设置处理区域
m_richedit.SetSelectionCharFormat(cf);

这在Unicode下出错
error C2664: 'strcpy' : cannot convert parameter 2 from 'unsigned short [3]' to 'const char *'
请问要如何解决,谢谢
展开
 我来答
silvergingko
2009-03-03 · TA获得超过5945个赞
知道小有建树答主
回答量:688
采纳率:0%
帮助的人:868万
展开全部
strcpy(cf.szFaceName ,_T("隶书"));//设置字体 //错了
用lstrcpy(cf.szFaceName ,_T("隶书"));

但CHARFORMAT是不支持Unicode的,因此要用CHARFORMAT2这个版本。
不知道你是不是新学了一个结构会去注意下它结构中各种数据的排列顺序?
一般象cbSize都是放在第一个的,这个是有窍门的。如:
CHARFORMAT cf = { sizeof(CHARFORMAT); }
这个就是初始化了。

同你写的比较一下:
CHARFORMAT cf;
ZeroMemory(&cf, sizeof(CHARFORMAT));
cf.cbSize = sizeof(CHARFORMAT);

是不是有不同的体会呢?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式