1

デスクトップにアニメーションを描画しようとしています (極時計が最終目標です) が、デスクトップに描画することができないようです。

次のコードを使用して、ウィンドウのハンドルと DC を取得できます。

HWND progMan  = FindWindow("progMan", NULL); 
HWND shellDLL = FindWindowEx(progMan, NULL, "SHELLDLL_DefView", NULL);
HWND sysList  = FindWindowEx(shellDLL, NULL, "SysListView32", NULL);
HDC hdc = GetDC(progMan);

このコードを使用してテキストを記述できます。これは、他のウィンドウまたはコントロールを取得するときに機能します。

while(true) TextOut(hdc, 50, 50, "Hello World!", 13);

しかし、それを SysListView32 コントロールで動作させることができないようです。

これは Windows 7 の癖ですか、それとも私のコードにバグがあるだけですか?

編集:これを機能させたいのですが、最悪の場合、アイコンの背後にあるデスクトップに描画する他の方法はありますか?

4

2 に答える 2

1

Progman を WorkerW に置き換えると、ほとんどの場合に機能するはずです。しかし、それだけではありませんので、詳細については Web を検索してください。

于 2011-10-06T20:07:41.900 に答える
0

Spy を試して、 Windows の正しい順序を取得してください。このコードは以前に書いたことがありますが、今持っているかどうかはわかりません。しかし、スパイは私を大いに助けてくれました。このリンクはデスクトップとは何の関係もありませんが ( http://blogs.msdn.com/b/oldnewthing/archive/2004/07/20/188696.aspx )、このリンクからも助けが得られる場合があります。

于 2011-04-14T06:46:38.510 に答える