ビットマップデータ上に線を描画する方法について

[戻る]
AKIRA [E-Mail] 2001/10/20(土) 13:50:15
MFC AppWizard(exe) で、のダイアログベースで作成したウィンドウ(ダイアログボックス)に
ピクチャーボックスを貼り付け、そこにビットマップデータを挿入しました。
このビットマップデータ上に、線を描画する方法を、どなたか教えて下さい。


以下の記述を実行すると、線は描画できるのですが、ビットマップデータが消えてします。


void TestDlg::OnPaint() 
{
 ・
 ・
 CPaintDC dc(this); // 描画用のデバイス コンテキスト

  CPaintDC dc(GetDlgItem(IDC_MAPDATA));     // IDC_MAPDATAは、ピクチャーボックスIDです。
 dc.MoveTo(10,10);
 dc.LineTo(500,10);

  CDialog::OnPaint();


}

宜しく、お願いします。

AKIRA

AKIRA [E-Mail] 2001/10/20(土) 14:12:34
すみません ソースコードが違ってました。

void TestDlg::OnPaint() 
{
 ・
 ・
 CPaintDC dc(this); // 描画用のデバイス コンテキスト

  CPaintDC dc2(GetDlgItem(IDC_MAPDATA));     // IDC_MAPDATAは、ピクチャーボックスIDです。
 dc2.MoveTo(10,10);
 dc2.LineTo(500,10);

  CDialog::OnPaint();

}

AKIRA
よろしくお願いします。

ku 2001/10/20(土) 22:01:01
CDialog::OnPaint();
GetDlgItem(IDC_MAPDATA)->InvalidateRect(NULL);
GetDlgItem(IDC_MAPDATA)->UpdateWindow();
CDC* pDC = GetDlgItem(IDC_STATICX)->GetDC();
pDC->MoveTo(10, 10);
pDC->LineTo(500, 10);
ReleaseDC(pDC);

こんな感じにしてみたらどうですか?
InvalidateRectは不要かも

あれっ、ダイアログの方にも描画されるな
よく分からないけど、そんなもんなんでしょう

AKIRA [E-Mail] 2001/10/22(月) 11:23:50
[[解決]]
 Kuさんありがとうございました。
すぐに実験してみましたら、あっさりと解決できました。
たすかりました。

AKIRA

古いスレッドには追加発言できません。