HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0920
とあるプログラマHSP製のコントロールがWM_SETFONTを受け付けない3解決


とあるプログラマ

リンク

2020/9/20(Sun) 20:45:21|NO.91408

HSP側の命令(button, listbox, mesbox等)で作成したコントロールにWM_SETFONTでフォントを変更するようにしても受け付けてくれません。

fontとobjmodeを使えば変更できることは知っているのですが、CreateFontで作成したフォントを使いたいので、フォントハンドルを指定してHSP命令で作成したコントロールのフォントを変更する方法が知りたいです。


#include "user32.as" #include "gdi32.as" #define global NULL $00000000 #define global TRUE $00000001 #define global FALSE $00000000 #define global WS_CHILD $40000000 #define global WS_VISIBLE $10000000 #define global WM_SETFONT $00000030 #define global FW_BOLD $000002BC #define global DEFAULT_CHARSET $00000001 #define global OUT_DEFAULT_PRECIS $00000000 #define global CLIP_DEFAULT_PRECIS $00000000 #define global DEFAULT_QUALITY $00000000 #define global DEFAULT_PITCH $00000000 #define global FF_DONTCARE $00000000 screen 0 onexit goto *exit // HSPのボタン objsize 100, 25 button gosub "Button", *btn hBtnHSP = objinfo_hwnd(stat) // WinObjのボタン winobj "BUTTON", "Button", 0, WS_CHILD | WS_VISIBLE, 100, 25, NULL, NULL hBtnWin = objinfo_hwnd(stat) hFont = CreateFont(16, 0, 0, 0, FW_BOLD, FALSE, TRUE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Meiryo UI") SendMessage hBtnHSP, WM_SETFONT, hFont, TRUE SendMessage hBtnWin, WM_SETFONT, hFont, TRUE stop *btn return *exit if (hFont) : DeleteObject hFont end



この記事に返信する


X

リンク

2020/9/20(Sun) 21:43:30|NO.91409




TOMATO

リンク

2020/9/20(Sun) 21:59:28|NO.91410

>fontとobjmodeを使えば変更できることは知っているのですが


objmode 0
であれば、HSPのボタンコントロールでもWM_SETFONTは反応していませんか?



とあるプログラマ

リンク

2020/9/20(Sun) 23:46:18|NO.91411

>>Xささん

こちらのモジュールはwinobjでボタンを作成してるので、HSP側の命令(Button)で作成できるものとは違いますね…

>>TOMATO
試してみたところ正常にWM_SETFONTを処理してくれました。

なぜobjmode 0で反応してくれるのか… (1や2じゃ反応しない)
内部的にどのような処理をしているのか分からないですが、こういった裏技(?)があるのですね。

無事 目的の動作になりました。ありがとうございます。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.91408への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

ONION software Copyright 1997-2018(c) All rights reserved.