ビットマップデータ上に線を描画する方法について – プログラミング – Home

ビットマップデータ上に線を描画する方法...
 
通知
すべてクリア

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


AKIRA
 AKIRA
(@AKIRA)
ゲスト
結合: 23年前
投稿: 3
Topic starter  

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
 AKIRA
(@AKIRA)
ゲスト
結合: 23年前
投稿: 3
Topic starter  

すみません ソースコードが違ってました。

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
 ku
(@ku)
ゲスト
結合: 24年前
投稿: 312
 

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
 AKIRA
(@AKIRA)
ゲスト
結合: 23年前
投稿: 3
Topic starter  

Kuさんありがとうございました。
すぐに実験してみましたら、あっさりと解決できました。
たすかりました。

AKIRA


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました