アプリ版:「スタンプのみでお礼する」機能のリリースについて

エディットボックスの文字サイズを変更する方法を教えてください。

HFONTを使う方法でやってみたけど、エディットのフォントは
デフォルトのままで、フォントが変更されていないように見えました。

LRESULT CALLBACK WndProc( …

 static HWND hEdit;
 static HFONT hFont;

 switch (msg) {

 case WM_CREATE:
  hEdit = CreateWindow( … );
  hFont = CreateFont( … );
  if(!hFont)エラー処理 …;
  SendMessage(hEdit, WM_SETFONT, (WPARAM)hFont, 0);
  break;

 case WM_DESTROY:
  DeleteObject(hFont);
  PostQuitMessage(0);
  break;

A 回答 (3件)

Visual c++として答えます。


リソースのダイアログを開いて、ダイアログ全体を選択して、右クリック
プロパティを開き、「フォント」ボタンをクリックしてサイズを変更してください。
    • good
    • 0

LPARAMをTRUEにしてもだめですか?



SendMessage(hEdit, WM_SETFONT, (WPARAM)hFont, (LPARAM)TRUE);
    • good
    • 0
この回答へのお礼

ありがとうございます。
LPARAM は再描画フラグだと思います。
WM_CREATEでは、まだhEditが表示されていないから再描画は
関係ないと思うけど、(LPARAM)TRUEをやってみました。
結果は、(LPARAM)0の時と同じでした。

PostMessage()もやってみたけど、結果は変わりませんでした。

お礼日時:2002/10/20 21:34

正しいフォントが作成できていないのでは?



フォント名が間違っているとか。

次の処理でフォントが置き換わることを確認しました。

case WM_CREATE:
hEdit = CreateWindow("EDIT", "Edit", WS_CHILD | WS_VISIBLE, 0,0,200,100, hWnd, (HMENU)1, hInst, NULL );
hFont = CreateFont(
100,0,0,0,0,0,0,0,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_DONTCARE,"MS Pゴシック");
SendMessage( hEdit, WM_SETFONT, (WPARAM)hFont, 0);
break;


"MS"と"P"の間のスペースは半角です。

この回答への補足

実際のソースではエディットのハンドルを、隣のエディットと間違えていたことが分かりました。
それができなかった原因でした。
できました。
ありがとうございました。

補足日時:2002/10/21 00:36
    • good
    • 0
この回答へのお礼

フォントはきちんと作られているみたいです。

 HFONT hFontOld;
 hdc = BeginPaint(hWnd, &ps);
 hFontOld = (HFONT)SelectObject(hdc, hFont);
 TextOut(hdc, 0, 0, "a", 1);
 SelectObject(hdc, hFontOld);
 EndPaint(hWnd, &ps);

ならフォントは変わりました。
それの前後でGetTextExtentPoint32()を使っても、フォントが変わっているのを
確認できたけど、エディットについてはGetTextExtentPoint32()を使っても
フォントの変更はされていないみたいでした。

taka_tetsuさんは

#include <iostream.h>
main(){
char *buf = new char[100];
memset(buf, 0, 100);
delete []buf;
}

がコンパイルできないみたいだから、結果が同じにならないこともあるみたいです。

お礼日時:2002/10/20 23:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A