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に戻る