デスクトップの背景(壁紙)を置き換えるように、Windowsデスクトップにカスタム図面を作成したいと思います。私は、その後のNativeWindowを作成し、デスクトップにネイティブウィンドウのハンドルを割り当てることにより、WM_PAINT
メッセージをキャプチャし、私自身の描画を実行しようとしましたデスクトップの壁紙を置き換える/デスクトップに描画する
IntPtr desktopDC = GetWindowDC(desktopListView);
Graphics g = Graphics.FromHwnd(desktopDC); //<-- fails on out of memory error
、しかし:私の最初の試みはdesktopListView
のためにDCを取得し、それを描くことでしたデスクトップにメッセージが表示されませんでした。
理想的には、私はWPFではこれを行いたいが、Windowsフォームではしたくない。 WPFウィンドウをどのように作成するかは、デスクトップアイコンの下にありますが、マウスのメッセージは無視されデスクトップは正常に動作します。
ありがとうございます。子供を既存のウィンドウに追加する方を教えてください。私はこれを行うための明白なAPI関数が表示されません。 –
それはすべてのピンボケのものです - 私はこれをしてから数年が経ちましたが、私はあなたがsethwndparentまたはsetwindowを探したいと思うと思います。 –
フォームを作成し、デスクトップのリストビューの子として追加することは、ほとんど機能しているようです。このフォームは他のすべてのウィンドウの下にありますが、アイコンの上にあります。どのようにして本当にバックグラウンド/壁紙を元に戻すことができますか? –