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
すみません ソースコードが違ってました。
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
よろしくお願いします。
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は不要かも
あれっ、ダイアログの方にも描画されるな
よく分からないけど、そんなもんなんでしょう
Kuさんありがとうございました。
すぐに実験してみましたら、あっさりと解決できました。
たすかりました。
AKIRA