Win32API質問箱 Build91
■ このスレッドは過去ログ倉庫に格納されています
0676670
2010/12/05(日) 22:54:07コントロールAの領域がクリックされる
↓
画像1をBitBltでコントロールAのクライアント領域に描画
↓
コントロールAの領域がクリックされる
↓
画像2をBitBltでコントロールAのクライアント領域に描画
↓
コントロールAの領域がクリックされる
↓
コントロールAの領域に描画されている状態をクリア(消す)
これがやりたいのです。
コントロールAはCreateWindowExで生成しており、
WC_STATICWとWS_CHILD | WS_VISIBLE | SS_BITMAPを指定しています。
上記のハンドルをサブクラス化して「WM_NCHITTEST」のタイミングで
そのコントロールに対してBitBltを行った後、InvalidateRect()を呼び出して
画像を描画しているのですが、画像1と2の切り替えは都度描画されるので
上手くいき、最後の画像を消すという処理がうまくいってない状態にあります。
画像を消す処理は単純にInvalidateRect( hWnd, NULL, TRUE );を行い
WM_PAINTでBeginPaint()を呼べば描画状態が初期化されると思っていたのですが
そうでもないみたいで、手詰まりの状態です・・。
正直こういう描画関連の処理はいままでそれほどやってきたことがないので、
単純に知識不足なのでしょうが、自分が思い浮かんだ解決策として
画像をもう一つ用意してその画像の背景色を透明化(スプライト)させて
BitBltで描画という手法があるにはあるのですが、可能であればそういう事をせずに
解決できればと思っています。何かいい案があれば教えてください。
>>671
教えていただいてありがとうございます。それも一つの案として他にも何かないかもう少し探してみます。
■ このスレッドは過去ログ倉庫に格納されています