从新桌面获取DC&RC

我使用CreateDesktop创build新的桌面,并希望获得它的DC和RC。

RECT deskRC; HDC deskDC; HDESK hNewDesktop = CreateDesktop(...); GetWindowRect(hNewDesktop, &deskRC); deskDC = GetDC(hNewDesktop); 

这只返回0。 有什么问题? 或者,也许还有另一种获得这些价值的方法。

PS:桌面正常创build。

还有一个问题:

谢谢。 我遇到了另一个问题,这次是DC。

  HDESK hNewDesktop = CreateDesktop("text_here", NULL, NULL, 0, GENERIC_ALL, NULL); SetThreadDesktop(hNewDesktop); SwitchDesktop(hNewDesktop); HWND deskHW = GetDesktopWindow(); GetWindowRect(deskHW, &deskRC); deskDC = GetWindowDC(deskHW); 

deskDC是不正确的:((用原来的testing,这是好的,我用它来绘制的东西)

不知道这次有什么错。

GetWindowRect和GetDC与Windows一起工作; 桌面不是一个窗口。 您可以尝试通过SwitchDesktop切换到桌面,然后通过GetDesktopWindow获取窗口; 不要忘记切换回到以前的桌面。