这就是我目前正在做的事情:
- 通过获取窗口 DC
GetWindowDC
- 创建一个兼容的 DC
CreateCompatibleDC
- 打电话
GetPixel
给我兼容的 DC
不幸的是,我所有的 GetPixel 调用都返回了CLR_INVALID
. 这是我的代码。
bool Gameboard::Refresh()
{
bool ret = false;
HDC context, localContext;
context = GetWindowDC(m_window);
if (context != NULL)
{
localContext = CreateCompatibleDC(context);
if (localContext != NULL)
{
if (BitBlt(localContext, 0, 0, GameboardInfo::BoardWidth, GameboardInfo::BoardHeight,
context, GameboardInfo::TopLeft.x, GameboardInfo::TopLeft.y, SRCCOPY))
{
ret = true;
// several calls to GetPixel which all return CLR_INVALID
}
DeleteDC(localContext);
}
ReleaseDC(m_window, context);
}
return ret;
}
有任何想法吗?