今度はボタンを選択状態にして (マウスでクリックして)、 ClassWizard をたちあげて、メッセージマップを見る。
Button1をクリックすると,メンバ関数の追加のダイアログがでるので,OKボタンをクリックすると,次のようなOnButton1()イベントハンドラが表示されるので,の中に以下のようなコードを記述する。
=======================================================
void CDialog1Dlg::OnButton1()
{
CWnd h = GetDlgItem(IDC_PICTURE);
CDC pDC=h-GetDC();
CPen p(PS_SOLID, 1, RGB(0,0,255));
CPen oldp=pDC-SelectObject(&p);
pDC-MoveTo(10,10); // 座標(10,10)に移動
pDC-LineTo(200,200); // 座標(200,200)まで線を引く
CFont font;
font.CreateFont(30,0,0,0,FW_HEAVY,FALSE,FALSE,FALSE,
SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,
DRAFT_QUALITY,DEFAULT_PITCH,"MS Pゴシック");
CFont oldfont=pDC-SelectObject(&font);
pDC-SetTextColor(RGB(255,0,0));
pDC-TextOut(100,100,"直線");
// ペンを戻す
pDC-SelectObject(oldp); // ペンを戻す
pDC-SelectObject(font); // フォントを戻す
h-ReleaseDC(pDC);
}
=======================================================
Button2をクリックすると,メンバ関数の追加のダイアログがでるので,OKボタンをクリックすると,次のようなOnButton2()イベントハンドラが表示されるので,の中に以下のようなコードを記述する。
=======================================================
void CDialog1Dlg::OnButton2()
{
CWnd h = GetDlgItem(IDC_PICTURE);
h-Invalidate();
}
=======================================================
CWnd h = GetDlgItem(IDC_PICTURE); |
CDC pDC=h-GetDC(); |
h-ReleaseDC(pDC); |
CWnd myPICT = GetDlgItem(IDC_PICTURE); |
CDC pDC = new CClientDC(myPICT); |
CPen p(PS_SOLID, 1, RGB(0,0,255)); |
CPen oldp=pDC-SelectObject(&p); |
pDC-SelectObject(oldp); // ペンを戻す |
CPen myPen = new CPen;// myPenはCPenクラスのオブジェクト |
myPen-CreatePen(PS_SOLID,1,RGB(0,0,255); //myPenを赤の実線を引くペンに設定 |
pDC-SelectObject(myPen); // myPenを選ぶ |
delete myPen; // myPenを消去 |