質問
デバイスコンテキストの取得はBeginPaint
やGetDC
などがありますが私が以前書いたWinAPI BITMAPを読み込んでBITMAPの描画・UI (正しいかはわかりませんが)のようなWM_PAINT
外部でHDC
をCompatibleさせたいときにはBegonPaint
は使えないだろうとGetDC
をWM_CREATE
で用いて上のスコープでstatic HDCに代入しました.しかしBeginPaint/EndPaint
でDCハンドルはWM_PAINT
内のスコープで完結していますが先ほどのほうだとHDCを長い間保持していることになります.MSDN : GetDC functionのRemarksには
After painting with a common DC, the ReleaseDC function must be called to release the DC.
と書かれています.GetDC
で取得したハンドルはCompatibleさせるときまで生かしておかなければならないですが解放しなくていいのでしょうか?
また先ほどの提示したコードはGetDC
を使いInvalidRect/ValidRect
で領域の有効無効を切り替えているつもりですがファイルドロップで違う画像を読み込んだ時,前の画像が再描画で消えません.BeginPaint
はInvalidRect
で生じた無効領域を塗りなおすと思いますがGetDC
では領域全体の再描画はなされないのでしょうか
補足情報
Windows10 Pro
VisualStudio2019 Community
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/18 05:27
2019/04/18 05:41
2019/04/18 07:05
2019/04/18 08:57 編集