MFC on WinCE

1.WinCE为了节省资源,不支持透明窗体,只能手工实现(GetPixel + SetPixel,但速度可想而知)因此,要想实现一个类似电视那种的悬空控制界面只能考虑得到桌面的DC,然后绘制图像。擦除图像只要刷新桌面即可,但是我无论如何也无法实现WinCE桌面的刷新,PostMessage 调用DC成员函数都不行....还不知道怎么办

2. 今天倒是解决了一个比较常见的问题:CButton上显示BMP图片。EVC下的CButton无法设置为BITMAP和ICON属性,所以SetBitmap和SetIcon都不行。一种解决方案是使用CBitmapButton,但是这个东西也不好用,要配置n多东西,很麻烦。另一种方法就是重载CButton。我用了这个方案。我从CButton继承了一个CztButton,重载了CButton的DrawItem方法(注意,重载CButton的OnPaint方法是不行的)。在这个方法里加入常规的BMP显示即可。为了加入Button的按下效果,还要根据参数LPDRAWITEMSTRUCT的itemState参数,当其为ODS_SELECTED时,即按钮被按下时,后面的图像显示要向左下分别移1位,显示大小都减2,这样就模拟了图像的“按入”效果。另,再加一个表示BMP图像的UINT参数,就可以了。最后的效果相当好,没的说。更重要的是CztButton可扩展性非常强。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值