游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1246|回复: 1

Vista中的GetDC函数(急)

[复制链接]

1

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2010-12-7 18:50:00 | 显示全部楼层 |阅读模式
使用GetDC()函数,返回的HDC,将其中50*50的像素打印出来
HDC dc = GetDC(handleValue);

for (int i = 0; i < 50; i++)
{
     for (int j = 0; j< 50; j++)
    {
        COLORREF colour = GetPixel(dc, i, j);
        Log(_T("--screen-shot black-- pos(%d,%d), RGB(%d, %d, %d)"), i, j, GetRValue(colour), GetGValue(colour), GetBValue(colour));
        }
}
在XP系统中结果正确,可打印出正确的RGB值。
但是在VISTA系统中,打印出的rgb值全都是0,为何,同样的代码不同平台就悲剧了,而且只有vista出问题,其他都没事。

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2010-12-8 01:00:00 | 显示全部楼层

Re:Vista中的GetDC函数(急)

仔细看文档!SetPixel函数并不是支持所有DC的,可靠的方法是BitBlt屏幕到内存DC上,然后取出Bitmap的Bits,或着用GetPixel取出颜色。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-5-30 11:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表