フォントの指定(CreateFontIndirect)

解説

 フォント名やサイズの指定はMFCのCFontなどを利用しても結構面倒で思ったように実現 できない(ことがある)。フォントの指定はAPIのCreateFontIndirect関数を利用するのが 無難かもしれない。



使用例


		HFONT	hFont;
		HFONT	hFontOld;
		HDC		hDC;

		hDC = ::GetDC(m_hWnd);

		hFont = CreateFont(hDC,_T("MS ゴシック"),6);
		hFontOld = (HFONT)::SelectObject(hDC,hFont);

		(描画処理)

		::SelectObject(hDC,hFontOld);
		::DeleteObject(hFont);
		::ReleaseDC(hDC);



フォント指定関数


	HFONT	CreateFont(HDC hDC,LPCTSTR pszFontName,int nFontSize)
	{
		LOGFONT	logfont;

		ZeroMemory(&logfont,sizeof(LOGFONT));
		logfont.lfHeight		= -1 * nFontSize * ::GetDeviceCaps(hDC, LOGPIXELSY) / 72;
		logfont.lfWeight		= FW_NORMAL;
		logfont.lfPitchAndFamily= FIXED_PITCH;
		logfont.lfCharSet		= SHIFTJIS_CHARSET;
		logfont.lfQuality		= DEFAULT_QUALITY;
		logfont.lfOutPrecision	= OUT_DEFAULT_PRECIS;
		logfont.lfClipPrecision	= CLIP_DEFAULT_PRECIS;
		strcpy_s(logfont.lfFaceName,32,pszFontName);

		return	::CreateFontIndirect(&logfont);
	}


カテゴリー「VC++ TIPS」 のエントリー