// あまり意味はないのですが、
//CDCのオブジェクトを宣言して、
//そこへ図形を描画して、
//クライエント領域にBitBltするときは、
//どうすればいいですか?
//CreateCompatibleDCが関係していると思っています。
//ですが、上手く描画できません。
//教えてください、
//お願いします。
void CProject1View::OnDraw(CDC* pDC)
{
CProject1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
//////////////////////////////////////////////////////
CDC imageDC;
CPen pen,*oldpen;
pen.CreatePen(PS_SOLID,3,RGB(255,0,0));
imageDC.CreateCompatibleDC(pDC);
for(int i=0;i<100;i++)
{
for(int j=0;j<100;j++)
{
imageDC.SetPixel(i,j,RGB(128,0,0));
}
}
oldpen=imageDC.SelectObject(&pen);
imageDC.Rectangle(50,50,400,300);
pDC->BitBlt(0,0,600,600,&imageDC,0,0,SRCCOPY);
imageDC.SelectObject(oldpen);
//////////////////////////////////////////////////////
}
No.1ベストアンサー
- 回答日時:
こちらを参照
http://www.expertmg.co.jp/html/cti/vctips/others …仮想画面で高速描画
参考URL:http://www.expertmg.co.jp/html/cti/vctips/others …仮想画面で高速描画
回答ありがとうございました。
一応以下のようにする事で出来ました。
void CProject1View::OnDraw(CDC* pDC)
{
CProject1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
//////////////////////////////////////////////////////
CDC imageDC;
CPen pen,*oldpen;
pen.CreatePen(PS_SOLID,3,RGB(255,0,0));
imageDC.CreateCompatibleDC(pDC);
CBitmap bmp;
bmp.CreateCompatibleBitmap(pDC,600,600);
imageDC.SelectObject(&bmp);
for(int i=0;i<100;i++)
{
for(int j=0;j<100;j++)
{
imageDC.SetPixel(i,j,RGB(0,0,255));
}
}
oldpen=imageDC.SelectObject(&pen);
imageDC.Rectangle(50,50,400,300);
imageDC.Ellipse(100,100,600,600);
pDC->TransparentBlt(0,0,600,600,&imageDC,0,0,600,600,RGB(0,0,0));
imageDC.SelectObject(oldpen);
//////////////////////////////////////////////////////
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
NVIDIAのシェーダーキャッシュ
-
[VB.net] DataGridViewの列ヘッ...
-
FlexGridの一部のみ表示を更新...
-
InvalidateRectの使い方について
-
VB6,リストボックスの特定行の...
-
GDI+で高速な描画
-
UpdateData( FALSE); による文...
-
C++にて、塗りつぶされた円を描...
-
エクセルでガンチャートを作成...
-
ちらつきを何とかしたい
-
CStaticコントロールの静的イメ...
-
画面全体を再描画させたい
-
MFCでOnPaintのタイミング
-
MFC ビットマップ描画で残像が残る
-
ワードの図形で重なり部分の色...
-
Wave波形の描画について
-
TextBoxに文字を書いても表示さ...
-
OneNote 2010 文字と描画がずれる
-
陰関数のグラフを表示させるには
-
コンボボックスの高さを変えたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
NVIDIAのシェーダーキャッシュ
-
VB6,リストボックスの特定行の...
-
[VB.net] DataGridViewの列ヘッ...
-
word
-
UpdateData( FALSE); による文...
-
TextBoxに文字を書いても表示さ...
-
VC++プログラムをつかったBMP画...
-
MFCでOnPaintのタイミング
-
エクセルでガンチャートを作成...
-
InvalidateRectの使い方について
-
FlexGridの一部のみ表示を更新...
-
VB.NETでPictureBoxへの描画に...
-
MFCのタイマーのつかい方を教え...
-
CStaticコントロールの静的イメ...
-
VBAにGDI+を参照させる方法
-
画面全体を再描画させたい
-
Labelの文字をスクロールする際...
-
Form1 Load で実行されない。
-
panelのスクロール表示について
-
CScrollViewの使用方法について
おすすめ情報