いま、タイトルのようにグローバルのHDCを使って描画をしようと思っているんですが、
HDC hdc;
hdc = GetDC(hwnd);
g_hdc = CreateCompatibleDC(hdc);
g_hdc_mask = CreateCompatibleDC(hdc);
ReleaseDC(hwnd, hdc);
というかんじなんですが CreateCompatibleDC() の説明に、「現在のhdcと互換性のある
メモリデバイスを作る」とありました。
これってhdcが消えると作ったやつも消えるということでしょうか?
あと、作ったHDCって終了時にDeleteDC()すれば問題ないですよね?
そこらへんがよくわからないのでお願いします。
> これってhdcが消えると作ったやつも消えるということでしょうか?
消えません。
> あと、作ったHDCって終了時にDeleteDC()すれば問題ないですよね?
問題ないです。
というか,必要なくなったら削除しましょう。
http://msdn.microsoft.com/library/en-us/gdi/devcons_499f.asp
>これってhdcが消えると作ったやつも消えるということでしょうか?
消えもしないし問題ないです。
>あと、作ったHDCって終了時にDeleteDC()すれば問題ないですよね?
g_hdcやg_hdc_mask等もグローバルであれば終了時でいいと思いますが、
正確にはそれらの生存期間終了前かと思います。
{
...
g_hdc = CreateCompatibleDC(hdc);
...
DeleteDC(g_hdc);
}
YuOさんとかぶってしまいました。。。
申し訳ないです。
YuOさん、DDさん、回答ありがとうございます。|(_ _)|
互換性で消えることは無いってことですね。
ありがとうございました!
ツイート | ![]() |