No.1ベストアンサー
- 回答日時:
数多くの引数を持つか、巨大な構造体を引数に持つかの違いですよね。
好みでいいんじゃないんですか?
個人的にはCreateFontIndirectを使ってますが、CreateFontを使うときもありますし。
GetObjectでフォント情報を取得したときはCreateFontIndirectになりますけど。
#ちなみに、削除の順番は、
1.Create
2.WM_SETFONT
3.前回コールされたときのフォントを削除
ですよ。セットしたばかりのフォントを削除するのではありません。
ありがとうございます。
前回の件で1つのフォントハンドルですまそうとするとどうしてもクリエイト前にデリートして瞬間的にフォントが設定されていない状態がでてきました。
2つの変数を使って以下のようにすべきですね。
1つの変数では扱いが難しいですね?
#include <windows.h>
HWNDhB;
LONG WINAPI WinProcedure(HWND hW,UINT wM,UINT wP,LONG lP)
{
RECTrt;
intW,H;
HFONThFx;
staticHFONThF;
switch(wM)
{
case WM_COMMAND:
SetFocus(hW);return 0;
case WM_SIZE:
GetClientRect(hW,&rt);
W=rt.right-rt.left;H=rt.bottom-rt.top;
hFx=CreateFont(H/4,W/4,0,0,FW_NORMAL,FALSE,FALSE,FALSE,SHIFTJIS_CHARSET,OUT_TT_ONLY_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FIXED_PITCH|FF_MODERN,"MS Pゴシック");
SendMessage(hB,WM_SETFONT,(WPARAM)hFx,1);
if(hF!=0)DeleteObject(hF);
hF=hFx;
MoveWindow(hB,W/4,H/4,W/2,H/2,1);
return 0;
case WM_DESTROY:
DeleteObject(hF);
PostQuitMessage(0);
return 0;
default:return(DefWindowProc(hW,wM,wP,lP));
}
}
WINAPI WinMain(HINSTANCE hI,HINSTANCE,LPSTR,int)
{
WNDCLASSwc;
HWNDhW;
MSGms;
wc.lpszClassName="I";
wc.lpfnWndProc=(WNDPROC)WinProcedure;
wc.hInstance=hI;
wc.style=CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hIcon=0;
wc.hCursor=LoadCursor(0,IDC_ARROW);
wc.hbrBackground=HBRUSH(COLOR_WINDOW+1);
wc.lpszMenuName=0;
RegisterClass(&wc);
hW=CreateWindow("I","親",WS_OVERLAPPEDWINDOW,0,0,99,99,0,0,hI,0);
hB=CreateWindow("BUTTON","子",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,0,0,0,0,hW,0,hI,0);
ShowWindow(hW,SW_SHOW);
UpdateWindow(hW);
while(GetMessage(&ms,0,0,0))
{
TranslateMessage(&ms);
DispatchMessage(&ms);
}
return (ms.wParam);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 モデルのパラメータの定義がいまいちわかりません。 3 2022/10/11 15:16
- Ruby 初心者プログラミング 3 2022/10/12 11:31
- 統計学 ARMAモデルが適用できる状態について 1 2022/12/30 05:58
- 数学 【数学ⅲ】三角関数と合成関数の微分について 4 2022/07/07 21:44
- CAD・DTP vectorworks、winとmacでデータを共有する場合 1 2023/02/20 16:41
- クレジットカード 楽天カードのリボ払いについて 7 2022/06/14 23:59
- 英語 総称的意味の「the+過去分詞」が無冠詞複数形で置き換えることができない理由について 5 2022/08/04 10:14
- 数学 x^4-2x^2+16x-15=0 という因数分解の答えが、 (X-1)(X+3)(X^2-2X+5 4 2022/05/15 16:20
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- 物理学 大学物理に詳しい方に質問です。 ラザフォードたちが実験で知りたかったことは衝突パラメータbと原子核の 1 2023/03/16 03:39
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
16x16のスプライトフォント
-
マイクロ(μ)の文字を半角で出...
-
outlook 文字を揃えたい。tab...
-
教えてください。
-
「MS Pゴシック」と同じ幅の...
-
似ているフォント(Win⇔Mac)
-
メールで、榊の文字を木辺に神...
-
ワードでゴシックの文字を太く...
-
画面キャプチャ印刷
-
縦書きテキストボックスの表示"...
-
font-family の記載方法
-
フォントダイアログを開くいた...
-
CreateFontIndirectとは?
-
英語版OSでの遊明朝、游ゴシック
-
TTFファイル(TTCやOTFでもよい...
-
Eclipseで文字がずれます。
-
PreRenderイベントの実装方法に...
-
MsgBoxについて
-
C# Font GdiCharSet
-
WebサイトのMacとWindowsのでの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
outlook 文字を揃えたい。tab...
-
マイクロ(μ)の文字を半角で出...
-
教えてください。
-
Excel:一部のフォントでセルの...
-
MsgBoxについて
-
似ているフォント(Win⇔Mac)
-
「MS Pゴシック」と同じ幅の...
-
font-family の記載方法
-
英語版OSでの遊明朝、游ゴシック
-
縦書きテキストボックスの表示"...
-
C# Font GdiCharSet
-
エクセルVBAが中国のPCでは動か...
-
printf("文字列\\n")が円マーク...
-
メールで、榊の文字を木辺に神...
-
ワードでゴシックの文字を太く...
-
ホームページをTeraPadで日本語...
-
フォントファイル(.ttf , .otf)...
-
WORD全角入力しても半角に...
-
TTFファイル(TTCやOTFでもよい...
-
Visual C++ 6.0 行番号の表示
おすすめ情報