2008/08/xxXREA.COMのs206サーバー内のサイトは、Yahoo!検索からペナルティを受け、検索結果で常に下位にランク付けされてしまうので、Yahoo!経由向けに用意したHSPミニ講座内のページです。このページは「http://lhsp.s206.xrea.com/hsp_menu.html」の昔のものです。HSPその他メニューバーの表示ウィンドウの上側、タイトルバーの真下に付いているメニューバー。一般的なアプリケーションに[ファイル]、[編集]、[表示]というような項目がよく用意されていると思います。これをHSP3でこしらえるサンプルスクリプトです。用モジュールを利用するのが一般的でしたが、HSP3では拡張プラグインなぞもはや不要です。API)関数を直で呼び出せばOK。returnend^右クリックメニューの表示ウィンドウ上でマウスを右クリックすると、右クリックメニュー(ポップアップメニュー、ショートカットメニュー)を表示させるサンプルスクリプトです。エディタの[HSP]メニュー→[HSP拡張マクロを使用する]を要有効。1";第2パラを$800にするとセパレータ(区切り線)になる。2";第2パラメータを$10にするとサブメニューへ。;第3パラにサブメニューのハンドルを入れる。右クリックされた時;ポップアップメニューを開く。第1パラに開くポップアップ;メニューのハンドルを指定してやる。選択じゃ"}return*exit;このようなどこのウィンドウにも張り付いていないメニューの;場合は、終了時に明示的に破棄する必要があるとのこと。上の「右クリックメニューの表示」ではマウスの右クリックでメニューが表示されますが、ボタン(button命令)を押した時に、オブジェクト脇にポップアップメニュー表示させるサンプルスクリプトです。(ドロップダウンメニュー「風」?GetWindowRect関数でボタンの表示されている座標位置を取得し、それをポップアップメニューの表示位置として反映してやればOK。(ボタンオブジェクトのハンドル取得はobjinfo関数を利用。ボタンのハンドルを取得。(RECT);ボタンの右側にメニュー表示;第3、第4パラにボタンの右上XY座標を指定;(RECT.0、RECT.3を指定すると、ボタンの真下にメニューが表示されます。*exitstop*exit;このようなどこのウィンドウにも張り付いていないメニューの;場合は、終了時に明示的に破棄する必要があるとのこと。hMenu.0end^システムメニューに新たな項目追加システムメニューというのは、ウィンドウのタイトルバー上で右クリックした時とか、そのバーにあるアイコンをクリックした時に表示されるメニューです。[元のサイズに戻す]、[移動]、[サイズ変更]・・・、[閉じる]というような感じの項目が用意されていると思います。そこに自前のメニュー項目を用意してやるサンプルスクリプトです。メニュー項目IDが返ります。(移動できないウィンドウ)システムメニューにあらかじめ用意されているメニュー項目を削除することで、たとえばタイトルバーをドラッグしてもウィンドウ位置を変更させることをできなくなります。ちなみに、[閉じる]項目を削除してしまうと、普通のプログラム終了ができなくなってしまうので注意。(hwnd);メニュー項目削除。$F010^システムメニューの監視システムメニュー内の項目を監視する。HSP3から登場のoncmd命令でチェック。