質問

Windows MobileカスタムSIPを作成しています。ユーザーがを押すか「ホバー」を押すと、キーボードのボタンの上に、:: GetDC(NULL)を使用して、対応する選択画像(iPhone風)を画面のDCに描画します。 Win32 C ++で開発されています。

私の問題は、スクリーンに自分自身を再描画させることができず、以前に描画したキーを消去できないことです。 NULLまたはHWNDとしてのGet..Window関数のいずれかを使用するすべての異なるパラメーターのコンボ、およびフラグのすべてのコンボ(INVALIDATE | UPDATENOW | ERASENOW | ALLCHILDRENなど)。また、:: GetActiveWindowおよび:: GetForegroundWindowを使用して、基になるアプリを強制的に再描画し、再描画を強制しようとしました。:: GetDesktopWindowを使用したバリエーションなど、本質的にアイデアが足りず、最後に我慢できませんでしたWindows Mobileデバイスで使用します。誰にもアイデアはありますか?どんな助けも大歓迎です。

ジレンマを説明するためのスクリーンショットをいくつか添付しました。

スクリーンショットの前
スクリーンショットの後

http://img13.imageshack.us/img13/9861/cezoom1の前。 png http://img3.imageshack.us/img3/7481/の後cezoom2.png

事前に感謝します!

役に立ちましたか?

解決

DCの背景に描画するのではなく、一時ウィンドウを作成して描画しませんか?ウィンドウを破棄すると、背景が自動的に再描画されます。

Windows Mobileを知らないため、推測しているだけですが、DCに最後に描画されたものをWindowsがキャッシュし、ウィンドウを無効にするたびに再描画している可能性があります。

他のヒント

hWnd画面でInvalidateRectを試しましたか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top