フォントの指定 猫でもわかるwindowsプログラミングより
猫でもわかるwindowsプログラミングの本で勉強している学生なんですが、第2章の2.4フォントの指定のところでプログラムを打ち込んでコンパイルしたのですがなぜか識別子が見つかりませんというエラーがでてコンパイルできません。どなたかわかる方お願いします。
一応プログラム(CALLBACK関数と論理フォント作成の関数のみ)↓
//ウィンドウプロシージャ
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp){
static HFONT hFont1, hFont2, hFont3;
PAINTSTRUCT ps;
HDC hdc;
char *szName1 = "○○";
char *szName2 = "▲▲";
switch (msg) {
case WM_CREATE:
hFont1 = MyCreateFont(40, SHIFTJIS_CHARSET, "HG行書体");
hFont2 = MyCreateFont(40, ANSI_CHARSET, "Fraktur JS");
hFont3 = MyCreateFont(40, SHIFTJIS_CHARSET, "MS 明朝");
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
SelectObject(hdc, hFont1);
TextOut(hdc, 0, 0, (LPCTSTR)szName1,
(int)strlen(szName1));
SelectObject(hdc, hFont2);
TextOut(hdc, 0, 60, (LPCTSTR)szName2,
(int)strlen(szName2));
SelectObject(hdc, hFont3);
TextOut(hdc, 0, 120, (LPCTSTR)szName1,
(int)strlen(szName1));
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
DeleteObject(hFont1);
DeleteObject(hFont2);
DeleteObject(hFont3);
PostQuitMessage(0);
break;
default:
return (DefWindowProc(hWnd, msg, wp, lp));
}
return 0;
}
//論理フォントの作成
HFONT MyCreateFont(int nHeight, DWORD dwCharSet, LPCTSTR lpName){
return(CreateFont(nHeight, 0, 0, 0,
FW_DONTCARE.
FALSE,
FALSE,
FALSE,
dwCharSet,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH | FF_DONTCARE,
lpName));
}
エラー内容↓
MyCreateFontの識別子が見つかりません。
論理フォントの関数のFALSEの値が構文エラーで参照できない。
お礼
何が何だかわからないのですが、 以下のソースで、できました。 お手数掛けました。また、よろしくお願いします。 ありがとうございました。 //ウインドウプロシージャ LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam) { POINT pt; char s; HDC hdc; //メッセージの種類に応じて処理を分岐する。 switch (message) { case WM_CHAR: GetCaretPos(&pt); s=LOWORD(wParam); hdc=GetDC(hWnd); HideCaret(hWnd); TextOut(hdc,pt.x,pt.y,&s,1); SetCaretPos(pt.x+13,pt.y); ShowCaret(hWnd); ReleaseDC(hWnd,hdc); return 0; case WM_CREATE: CreateCaret(hWnd,NULL,3,20); ShowCaret(hWnd); return 0; case WM_DESTROY:/*ウインドウが破棄されたときの処理*/ PostQuitMessage(0); return 0; default:/*デフォルトの処理*/ return DefWindowProc(hWnd,message,wParam,lParam); } }