WM中怎么画一个空心字

斧头 2007-02-27 12:05:51
在MFC下可以用
pDC->beginpath();
pdc->textout();
ppDC->endpath();
来解决,但是beginpath在WM中不能用,有什么可以实现的方法吗?
...全文
270 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
nihao38 2009-11-20
  • 打赏
  • 举报
回复
kabing 2009-11-19
  • 打赏
  • 举报
回复
mark
Ending 2009-11-19
  • 打赏
  • 举报
回复
看来不错·~收藏了·~试试先·~~
烂番 2009-11-18
  • 打赏
  • 举报
回复
嗯,方法不错
infsafe 2009-11-18
  • 打赏
  • 举报
回复
这么强大?
yangcuncunzhang 2009-11-18
  • 打赏
  • 举报
回复
当然行了,呵呵
看例子的效果!在背景图上写字!
xajhuang 2009-11-17
  • 打赏
  • 举报
回复
哇 高手啊
sevenzhy 2009-11-16
  • 打赏
  • 举报
回复
哇~ 果真行嘛?

收藏先~
yangcuncunzhang 2009-11-15
  • 打赏
  • 举报
回复
1、将字先写到一个内存DC(假定MemDC)中(写字可以用任何颜色)

2、新建一个DC(假定MaskDC),并建立一个单色的位图对象(假定MyBitmap),将MyBitmap选入MaskDC,然后将MemDC中的内容BitBlt到MaskDC中,此时MaskDC中就有一个白底黑字的图像,相当于是Mask. 表示将来要把MemDC中黑色的部分保留下来,其它部分不要,相当与其它部分透明。
(第二步的步骤其实也可愿意直接用白底黑字在MaskDC中写字,写的字和MemDC中相同就好了)

3、设定前景色为白色,背景色黑色,将MemDC和MaskDC进行“与”操作---BitBlt()最后一个参数SRCAND。对字体进行剪切,例如
MemDC.SetBkColor(RGB(0,0,0));
MemDC.SetTextColor(RGB(255,255,255));
MemDC.BitBlt(rcclient.left, rcclient.top, rcclient.Width(), rcclient.Height(), &MaskDC, rcclient.left, rcclient.top, SRCAND);
此时就在MemDC中形成了这样一幅图:除了字笔划的部分之外,都成了黑色。

4、将背景DC(将如BkDC)的前景色设为黑色,背景色设为白色,将BkDC和MaskDC做"与"操作,例如
BkDC.SetBkColor(RGB(255,255,255));
BkDC.SetTextColor(RGB(0,0,0));
BkDC.BitBlt(rcclient.left, rcclient.top, rcclient.Width(), rcclient.Height(), &MaskDC, rcclient.left, rcclient.top, SRCAND);
此时就在背景上按照字型,挖出了黑色窟窿,这个窟窿的形状就是字的笔划轮廓。

5、将挖好的背景和剪切好的字体做或操作,参数SRCPAINT, 就天衣无缝了!
BkDC.BitBlt(rcclient.left, rcclient.top, rcclient.Width(), rcclient.Height(), &MemDC, rcclient.left, rcclient.top,SRCPAINT);

yangcuncunzhang 2009-11-14
  • 打赏
  • 举报
回复
不知道能不能回复!
yangcuncunzhang 2009-11-14
  • 打赏
  • 举报
回复
不知道能不能回复!
斧头 2007-02-27
  • 打赏
  • 举报
回复
什么字体在mobile上能用
jun_01 2007-02-27
  • 打赏
  • 举报
回复
装个空心字体吧........

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧