注册 登录
编程论坛 VB6论坛

用 GetPixel 后台取色,怎么取不到窗口左上角 1,1 的颜色

Ez330阿牛 发布于 2014-09-05 11:36, 754 次点击
程序代码:
nDc = GetDC(hWndTarget) *得到指定窗口句柄DC
mDc = CreateCompatibleDC(nDc) *创建内存DC
mBmp = CreateCompatibleBitmap(nDc, w, h) *该函数创建与指定的设备环境相关的设备兼容的位图。
*mBmp = CreateDIBSection(nDc, bi24BitInfo, DIB_RGB_COLORS, ByVal 0&, ByVal 0&, ByVal 0&)
oldBmp = SelectObject(mDc, mBmp) *把窗口位图选入内存DC
PrintWindow hWndTarget, mDc, 0 *把窗口截取保存到内存DC中,
Color = GetPixel(mDc, X, Y) *得到指定点颜色
1 回复
#2
茅十八2014-09-09 18:35
mBmp = CreateCompatibleBitmap(nDc, w, h) *该函数创建与指定的设备环境相关的设备兼容的位图。
你确定你设定兼容位图的大小正确吗?
位图大小的设定 影响到 “目标图像”的“拉伸”,说白了就把图像损坏失真
1