1


0

新しいデスクトップからDCとRCを入手

CreateDesktopで新しいデスクトップを作成し、DCとRCを取得したいです。

   RECT deskRC;
   HDC deskDC;
   HDESK hNewDesktop = CreateDesktop(...);

   GetWindowRect(hNewDesktop, &deskRC);
   deskDC = GetDC(hNewDesktop);

これは0のみを返します。 どうしたの? または、これらの値を取得する別の方法があるかもしれません。

追伸:デスクトップは正常に作成されます。

さらに別の問題:

ありがとう。 今回、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が正しくありません:((元のものでテストし、OKでした;描画に使用します)

今回は何が悪いのかわかりません。

1 回答


1


GetWindowRectとGetDCはウィンドウで動作します。デスクトップはウィンドウではありません。 SwitchDesktopを使用してデスクトップに切り替えてから、GetDesktopWindowを使用してウィンドウを取得してみてください。以前のデスクトップに戻すことを忘れないでください。