タイトル

BitMap・Font

タイトル

1,BitMap
2,Font

1,BitMap

ここではBitMapファイルを画面に表示するプログラムをつくります。
まず、表示するBMPファイルをIDで指定します。
このIDというのはWindowsがリソース(メニュー,ダイアログ,アイコン)やメッセージを
認識するのに用います。
やり方ですが、「挿入」−「リソース」で「Bitmap」を選択して
「インポート」を押します。そこで表示したいBMPファイルを選択します。

リソース

この画像は、Microsoft Visual C++ Ver 4.0のものです。

すると、リソースにIDが「IDB_BITMAP1」が追加されます。ここで、「プロパティ」で
名称を「IDB_BITMAP1」から「IDB_C」に変更しておきます。(この辺は個人の自由です。)
これで準備OKです。


void CNamaeView::OnDraw(CDC* pDC)
{
	CNamaeDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	CDC pM;
	CBitmap pB,*pOld;

	pB.LoadBitmap(IDB_C);
	pM.CreateCompatibleDC(pDC);
	pOld=pM.SelectObject(&pB);

	pDC->BitBlt(20,50,32,32,&pM,0,0,SRCCOPY);

	pM.SelectObject(pOld);
}

ここでは、pBオブジェクトにBMPデータを転送します。
次に、pMにpDCと同じ機能を持たせます。
pOld=pM.SelectObject(&pB);
で、pMにpBを関連させ、元のデータをpOldに入れます。
BitBltでpMのデータがpDCに転送されます。
pM.SelectObject(pOld);
で、pMに元のpOldを関連させます。

実行結果

上上へ


2,Font

ここでは、Fontを調整して様々な種類の文字を表示してみます。


void CNamaeView::OnDraw(CDC* pDC)
{
	CNamaeDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	CFont newf;
	CFont* oldf;
	int p=20;

	for (int i=8; i<=24; i+=2){
		newf.CreateFont(i,0,0,0,FW_NORMAL,FALSE,FALSE,0,ANSI_CHARSET,
			OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,
			DEFAULT_QUALITY,DEFAULT_PITCH|FF_SWISS,"MSゴシック");
		oldf=(CFont*)pDC->SelectObject(&newf);
		pDC->TextOut(20,p,"Font Test!");
		p=p+i;
		newf.DeleteObject();
	}
}

これも、PenやBrushの設定に似ています。ただ、Fontの設定がやたら長くなります。
Fontですが、最初にフォントの高さを入力します。
次が横幅で、0だと自動的に最適なサイズになります。
最後のところにFont体を入力します。

newfやoldfは以前のPenやBrushと同じなので省略します。
これを実行すると以下のようになります。

実行結果

上上へ


戻るC++のPageに戻る