![]()
![]()
| 1,BitMap |
| 2,Font |
ここでは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を関連させます。

ここでは、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に戻る