掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MDIの子ウインドウに描画するには? (ID:55447)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>> クライアントウインドウの処理 MDI子ウィンドウじゃないの? >> 独立したデータを保持ということを調べていたのですが、 >> 参考になりそうなものが見つからなかったため再度よろしくお願いします。 case WM_PAINT: hChild = (HWND)SendMessage(hClient, WM_MDIGETACTIVE , 0 , 0); GetClientRect(hChild,&win); hdc = BeginPaint(hChild,&ps); BitBlt(hdc,0,0,win.right,win.bottom,hBuffer,0,0,SRCCOPY); EndPaint(hChild,&ps); break; 問題はこれですね。 子ウィンドウ1と子ウィンドウ2で同じ描画データ hBuffer を 共有しているように見えますね。 case WM_COMMAND: switch(LOWORD(wParam)) { case ID_MNU_new: hChild = CreateMDIWindow(MDI_CHILD , szFile , 0 , CW_USEDEFAULT , CW_USEDEFAULT , CW_USEDEFAULT , CW_USEDEFAULT , hClient , hIns , 0 ); GetClientRect(hChild,&win); hdc = GetDC(hChild); hBitmap = CreateCompatibleBitmap(hdc,win.right,win.bottom); hBuffer = CreateCompatibleDC(hdc); SelectObject(hBuffer,hBitmap); PatBlt(hBuffer , 0 , 0 ,win.right,win.bottom, WHITENESS); ReleaseDC(hChild,hdc); break; } 2つめの子ウィンドウを作成したときには 2つめの hBitmap, hBuffer も作成しなければなりませんね。 で、それは出来ているようです。 しかし、そのハンドルは子ウィンドウ1のハンドルに上書き しているみたいですよ。 独立していない、とはそういうことです。 ではどのようにして、いくつ生成されるか分からない子ウィンドウと そのデータを管理するか。 C++ ですからね。ここはちょっと考えてください。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.