FC2ブログ
再描画への定石(?)
さて、お次は クリックされたら 画像(さきまでの四角形の色とか)が更新されて 再描画といった感じにしたいのだが。

http://www.geocities.co.jp/SiliconValley-Bay/4543/Osero/Osero/Osero-7.html
http://www.geocities.co.jp/SiliconValley-Bay/4543/Osero/InterFace/InterFace-4.html



Kirikaさんのコメント、

GetDC()とかでデバイスコンテキストさえ捕まえれば、ダイアログでもCViewでもなんでも描画できますよ。

この知識を使わしてもらうと、結果はこうだ!!!(一般的なのか~?)


void CDfdsfadfaView::OnDraw(CDC* pDC)
{
CDfdsfadfaDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: この場所にネイティブ データ用の描画コードを追加します。
NakanishiDraw(pDC);
}



今までの描画処理をやっていたところを

void NakanishiDraw(CDC* pDC){ } という自作メンバー関数に任せることにした。

ということでCDfdsfadfaViewクラスに 右クリックで

void NakanishiDraw(CDC* pDC)

メンバー関数追加!!

実行できたぜーーー


void CDfdsfadfaView::NakanishiDraw(CDC *pDC)
{
int tate=50,yoko=50;
int y=5,x=5;
int i,j;
int k=0;

CString str;
CRect masu;
CBrush *oldBrush, masuBrush;
COLORREF masuColor[4];

masu.left = x;
masu.top = y;
masu.right = x+yoko;
masu.bottom = y+tate;
pDC->Rectangle(&masu);
// 赤、緑、青、黄色を設定
masuColor[0] = RGB(255, 0, 0);
masuColor[1] = RGB(0, 255, 0);
masuColor[2] = RGB(0, 0, 255);
masuColor[3] = RGB(255, 255, 0);

//描画処理
for(i=0; i<4; i++){
for (j = 0; j < 4; j++)
{
masuBrush.CreateSolidBrush(masuColor[j]);
oldBrush = pDC->SelectObject(&masuBrush);
// 四角形を描画する。
pDC->Rectangle(&masu);
k++;
str.Format("%d",k);
pDC->DrawText(str, -1, &masu,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);

// もとのブラシに戻す。
pDC->SelectObject(oldBrush);
masuBrush.DeleteObject();
masu.left += yoko;
masu.right += yoko;
}
//次の行へ座標更新
masu.left = x;
masu.top += tate;
masu.right = x + yoko;
masu.bottom += tate;
}
}


sikaku_mfc3.jpg


ちなみに 数字は
DrawText(str, -1, &masu, NULL)
のところを
DrawText(str, -1, &masu, DT_SINGLELINE | DT_CENTER | DT_VCENTER)
にしたら、中央によった。

フォントの設定は
CFontクラスが管理しているようだが、
今回 真ん中によったのでそれでよし パスすると思われる。
スポンサーサイト



コメントを投稿する
Name:
URL:
Comment:

秘密:管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL
この記事にトラックバックする(FC2ブログユーザー)
ブログ検索

プロフィール

ビンゴ中西
Perlが好きである。
プログラミング言語のほとんどは独学。独学の過程で多くのプログラム仲間にも色々教わりました。

FC2カウンター

カレンダー

03 | 2021/04 | 05
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -

ブロとも申請フォーム

この人とブロともになる

| ホーム |