永发信息网

双缓冲画图的问题

答案:2  悬赏:20  手机版
解决时间 2021-04-06 20:23
  • 提问者网友:了了无期
  • 2021-04-05 22:29
我在内存DC上画图再贴到屏幕DC上。
当我的内存DC的坐标系和屏幕DC的坐标系一样时,没有问题。
可是当我把内存DC的坐标系设成笛卡尔坐标系(原点在屏幕中心),屏幕DC的原点还在左上角时,再把图贴过去。
怎么感觉是,只把内存DC上的那副图的一部分贴了过去然后再放大之后铺满整个客户区窗口呢?
我想可能是BitBlt这个函数我没弄明白。但是不知道该怎么办

我用的MM_ISOTROPIC模式,
最佳答案
  • 五星知识达人网友:独行浪子会拥风
  • 2019-06-14 16:43
你是不是用SetMapMode修改了GDI映射模式。
BITBLT只是位块传送,不执行拉伸,但是如果修改了GDI映射模式,在GDI32.DLL内部就要执行坐标映射转换,一样可以看到拉伸效果。
不建议用非 MM_TEXT 模式,平常玩玩可以,在正式的场合(商用软件)执行效率不见得能提高,且输出效果也很差。即使对于输出效果要求严格的地方,也不见得满意,GDI假定点距是 0.254,而实际上显示器规格不同,点距还是有点差别。
要实现输出,还不如自己即使dpi,自己用映射变换,完了在输出到内存DC。
全部回答
  • 1楼网友:逐風
  • 2021-02-02 05:45
我觉得不应该存在你这样的问题,那不然 我 tab 页面添加了背景图片,难道切换下 背景图片会没了? 这个肯定是你在处理画图中,自己的问题。 表示tab 用过很多了 ,不存在你这样的问题。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯