Last Update : 2008/06/xx
XREA.COMのs206サーバー内のサイトは、Yahoo!検索からペナルティを受け、検索結果で常に下位にランク付けされてしまうので、Yahoo!経由向けに用意したHSPミニ講座内のページです。このページは「http://lhsp.s206.xrea.com/hsp_object.html」の昔のものです。
HSP3(HSP 3.x)で設置できる「オブジェクト」をベースに、Windows API(Win32 API関数)を駆使した発展的なサンプルコードやらモジュールを掲載。加えて、HSP3のwinobj命令やsendmsg命令を使って標準命令にはないオブジェクト(Windowsのコントロール)の設置や、ちょっと高度な処理を実現します。
| HSP3 命令 | おもな内容 |
| ボタン (button) チェックボックス (chkbox) |
ウィンドウスタイルの変更 ├文字列の表示位置変更 └複数行テキスト チェックボックスの監視 3ステートチェックボックスの設置 ラジオボタンの設置 トグルボタンの設置 |
| 入力ボックス (input) メッセージボックス (mesbox) |
ウィンドウスタイルの変更 ├数値のみ入力可能 └入力文字の大文字・小文字変換 文字の表示色や背景色の変更 編集不可入力ボックスの切り替え 境界線枠のない入力ボックスの設置 |
| スタティックテキスト (旧mesbox) | スタティックテキストの表示 ハイパーリンクテキストの表示 アイコン表示オブジェクトの設置 セパレータライン(区切り線)の表示 |
| リストボックス (listbox)> | 項目の追加・挿入・削除・前後入れ替え 項目の文字列取得 文字の表示色の変更 項目選択の監視 (ダブルクリック) 複数項目選択可能なリストボックスの設置 ソート機能付きリストボックスの設置 ドラッグリストボックスの設置 |
| コンボボックス (combox) | 項目の追加・挿入・削除 項目の文字列取得 文字の表示色の変更 項目選択の監視 |
| その他 (winobj命令 利用) |
リストビュー+カスタムドロー チェックボックス付リストボックス ツールチップ |
| アップダウンコントロール トラックバーコントロール トラックバー+カスタムドロー |
|
| ステータスバー アニメーションコントロール プログレスバーコントロール |
|
| 月間カレンダーコントロール 日時指定コントロール |
HSP3にはオブジェクトを設置する標準命令(全6種)以外に、下のような関連する命令が用意されてます。
| HSP3 命令 | 処理内容 | |
| pos | 設 置 前 |
表示位置の指定 |
| objsize | 表示サイズの指定 | |
| font / sysfont (+objmode) | フォントの指定 | |
| objprm | 設 置 後 |
文字列/内容の変更 (button, input, mesbox, listbox, combox) |
| 状態の変更 (chkbox) | ||
| [HSP 3.2〜] 文字列の変更 (chkbox) | ||
| 項目の選択 (listbox, combox) | ||
| sendmsg (HSP2 : objsend) |
[HSP 3.0/3.1] 文字列の変更 (chkbox) | |
| 文字列の取得 | ||
| objsel | フォーカスの移動 | |
| clrobj | 削除・撤去 | |
| getobjsize (obj.as) | 表示位置・表示サイズの取得 | |
| resizeobj (obj.as) | 表示位置・表示サイズの変更 | |
| objgray (obj.as) | 使用不可 (灰色グレー表示) | |
HSP3本体のcommonフォルダにある「obj.as」ファイルには、HSP3標準命令にはないモジュール命令が用意されてます。これはWin32 API関数をモジュール内で呼び出してます。利用するには「obj.as」ファイルをインクルードしてください。
あと、HSP3本体のcommonフォルダにある「hsp3util.as」ファイルには、スタティックテキスト、スクロールバー、プログレスバーというような標準命令にはないオブジェクトを設置する簡易のモジュール命令も用意されてます。これはモジュール内でwinobj命令を呼び出してます。利用するには「hsp3util.as」ファイルをインクルードしてください。
この2つのモジュールファイルのサンプルは、HSP3本体以下の「sample\new\winobj.hsp」に用意されてます。
◇ color命令でオブジェクトの色が変わらない。
⇒ 一切変わりらないです。color命令はmes命令、boxf命令、line命令などの描画処理でのみ効果があります。
◇ オブジェクトのウィンドウハンドルとは?
⇒ HSPのオブジェクトIDを指定して、オブジェクトのウィンドウハンドル値を取得するobjinfo関数を参照してください。HSP3から導入された新規関数です。
◇ winobj命令で設置したオブジェクトの表示フォントがfont命令やsysfont命令で反映されない。
⇒ font命令やsysfont命令を単純に呼んだだけではダメです。objmode命令も効果がありません。sendmsg命令を利用してフォントハンドルを指定したWM_SETFONTメッセージをオブジェクトに対して送信してやる必要があります。(→
参照、スタティックコントロールを例にしたフォント指定)