|
|
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <commdlg.h.>
int main(int argc, char* argv[])
{
CHOOSEFONT cf;
LOGFONT lf;
ZeroMemory( &cf, sizeof( cf ) );
cf.lStructSize = sizeof(CHOOSEFONT);
cf.hwndOwner = NULL;
cf.lpLogFont = &lf;
// システムがサポートするスクリーンフォントが対象
cf.Flags = CF_SCREENFONTS;
ChooseFont( &cf );
printf( "フォントの高さ : %d\n", lf.lfHeight );
printf( "フォントの文字の平均幅 : %d\n", lf.lfWidth );
printf( "各テキスト行の角度 : %d\n", lf.lfEscapement );
printf( "ベースラインの角度 : %d\n", lf.lfOrientation );
printf( "フォントの太さ : %d\n", lf.lfWeight );
printf( "斜体フォント : %d\n", lf.lfItalic );
printf( "下線付きフォント : %d\n", lf.lfUnderline );
printf( "打ち消し線付きフォント : %d\n", lf.lfStrikeOut );
printf( "文字セット : %d\n", lf.lfCharSet );
printf( "フォントの出力精度 : %d\n", lf.lfOutPrecision );
printf( "クリッピング精度 : %d\n", lf.lfClipPrecision );
printf( "フォントの出力品質 : %d\n", lf.lfQuality );
printf( "フォントのピッチとファミリ : %d\n", lf.lfPitchAndFamily );
printf( "フォントの書体名 : %s\n", lf.lfFaceName );
return 0;
}
| |
|
(例) MS ゴシック の サイズ 12 を選択した場合
(例) MS ゴシック の サイズ 10 を選択した場合
|
|
|
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <commdlg.h.>
int main(int argc, char* argv[])
{
CHOOSEFONT cf;
LOGFONT lf;
ZeroMemory( &cf, sizeof( cf ) );
cf.lStructSize = sizeof(CHOOSEFONT);
cf.hwndOwner = NULL;
cf.lpLogFont = &lf;
// システムがサポートするスクリーンフォントが対象
cf.Flags = CF_SCREENFONTS;
ChooseFont( &cf );
printf( "%s\n", "LOGFONT lfbase = {" );
printf( "%d // フォントの高さ\n", lf.lfHeight );
printf( ",%d // フォントの文字の平均幅\n", lf.lfWidth );
printf( ",%d // 各テキスト行の角度\n", lf.lfEscapement );
printf( ",%d // ベースラインの角度\n", lf.lfOrientation );
printf( ",%d // フォントの太さ\n", lf.lfWeight );
printf( ",(BYTE)%d // 斜体フォント\n", lf.lfItalic );
printf( ",(BYTE)%d // 下線付きフォント\n", lf.lfUnderline );
printf( ",(BYTE)%d // 打ち消し線付きフォント\n", lf.lfStrikeOut );
printf( ",(BYTE)%d // 文字セット\n", lf.lfCharSet );
printf( ",(BYTE)%d // フォントの出力精度\n", lf.lfOutPrecision );
printf( ",(BYTE)%d // クリッピング精度\n", lf.lfClipPrecision );
printf( ",(BYTE)%d // フォントの出力品質\n", lf.lfQuality );
printf( ",(BYTE)%d // フォントのピッチとファミリ\n", lf.lfPitchAndFamily );
printf( ",\"%s\" // フォントの書体名\n", lf.lfFaceName );
printf( "%s\n", "};" );
return 0;
}
| |
|
以下は、実行結果をコピーしたものです
|
LOGFONT lfbase = {
-16 // フォントの高さ
,0 // フォントの文字の平均幅
,0 // 各テキスト行の角度
,0 // ベースラインの角度
,400 // フォントの太さ
,(BYTE)0 // 斜体フォント
,(BYTE)0 // 下線付きフォント
,(BYTE)0 // 打ち消し線付きフォント
,(BYTE)128 // 文字セット
,(BYTE)3 // フォントの出力精度
,(BYTE)2 // クリッピング精度
,(BYTE)1 // フォントの出力品質
,(BYTE)49 // フォントのピッチとファミリ
,"MS ゴシック" // フォントの書体名
};
| |
|
|
|
|
// バージョン情報ボックス用メッセージ ハンドラ
HFONT hFont;
LOGFONT lfbase = {
-16 // フォントの高さ
,0 // フォントの文字の平均幅
,0 // 各テキスト行の角度
,0 // ベースラインの角度
,400 // フォントの太さ
,(BYTE)0 // 斜体フォント
,(BYTE)0 // 下線付きフォント
,(BYTE)0 // 打ち消し線付きフォント
,(BYTE)128 // 文字セット
,(BYTE)3 // フォントの出力精度
,(BYTE)2 // クリッピング精度
,(BYTE)1 // フォントの出力品質
,(BYTE)49 // フォントのピッチとファミリ
,"MS ゴシック" // フォントの書体名
};
LRESULT CALLBACK About( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam )
{
switch( message ) {
case WM_INITDIALOG:
hFont = CreateFontIndirect( &lfbase );
SendMessage(
GetDlgItem( hDlg, IDC_LIST1 ),
WM_SETFONT,
(WPARAM)hFont,
MAKELPARAM(true, 0)
);
return TRUE;
case WM_COMMAND:
if( LOWORD(wParam) == IDOK ||
LOWORD(wParam) == IDCANCEL ) {
DeleteObject( hFont );
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
if( LOWORD(wParam) == IDC_BUTTON1 ) {
char szBuffer[128];
GetDlgItemText( hDlg, IDC_EDIT1, szBuffer, 128 );
SendMessage(
GetDlgItem( hDlg, IDC_LIST1),
LB_ADDSTRING,
0L,
(LPARAM)(LPCTSTR)szBuffer
);
}
break;
}
return FALSE;
}
| |
|
|
|