桌面滚动字幕纯WinSDK无窗体

本文介绍了如何使用WinSDK编程在桌面显示滚动字幕,通过创建内存DC,绘制文字并利用Bitblt复制到桌面DC,实现滚动效果。作者遇到内存泄漏问题,尝试使用ReleaseDC未成功,期待解决方案。
摘要由CSDN通过智能技术生成

      不知道为啥,研究完网络编程后,我又对DC感兴趣了,昨天我又迷上了“VC实现滚动字幕”,于是昨晚就在网上找了很多类似的源码,但没有一个是我想要的,我试着直接获取整个桌面的DC,然后直接在这个DC句柄上操作,但是没有成功,一气之下关灯睡觉了。今天早上有课,下午没有,于是我就拿了整整一下午的时间来研究,誓要把它搞定。仔细分析了昨晚下的源码,原来高手们都不是直接在桌面DC上操作,而是先建内存DC,在内存DC上操作,然后再将其转换为内存位图,最后再用Bitblt将其Copy到桌面DC上,接下来就不停用TextOut改变文字位置,不停的Copy,这就达到了滚动的效果,这里我没有用Timer而是用了递归(说实话,Win32中的Timer我实在没搞懂,MFC还好说,直接WM_TIMER),不多说了,看代码吧!

 

BOOL Start(HDC hdc,HDC m_dcmemoryDC,char* szText,int len,LPSIZE s,int width1,LPRECT rect,HBRUSH m_hBrushBackground); //函数声明
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow) //程序入口
{
 int widt

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值