在打开扩展桌面的时用DirectX9截取的桌面HDC上DrawIcon\DrawIconEx失效
gaowu 2012-02-07 06:41:49 使用DirectX9做桌面截图相关的应用。碰到一个蛮奇怪的问题
1、使用扩展桌面模式,调用DrawIcon\DrawIconEx 函数返回值成功,但是没有图标被画在HDC上
2、使用主桌面模式,与步骤1同样的代码,图标能被画在HDC上
3、使用两种桌面显示模式的时候,TextOut/DrawText都能够成功被画在HDC上
相关代码:
HDC dc;// dc = IDirect3DSurface9::GetDC();
CURSORINFO ci = { sizeof(ci) };
if (!GetCursorInfo(&ci))
return;
ICONINFO icon;
if (!GetIconInfo(ci.hCursor, &icon))
return;
BOOL res = DrawIcon(dc, x, y, ci.hCursor);
res = DrawIconEx(dc, x, y+30, ci.hCursor, 0, 0, 0, NULL, DI_NORMAL);
res = TextOut(dc, x, y+50, _T("<this is a Test >"),25);
CRect rect(x, y+70, x+100, y+140);
res = DrawText(dc, _T("DrawText"), 8, &rect, DT_LEFT |DT_WORDBREAK);
// Save HDC to bmp
不知道大家在使用DirectX的时候有没遇到过这种问题。不胜感激!