# メニューの作成

一般的な Windows アプリケーションには、必ず、メニューがついています。もちろん！ひまわりでも、メニューを作成できます（＾ｖ＾Y

## メニューの作り方

> 一般的な、GUI部品は、「作成」命令で作成できましたが、メニューだけは、作成が使えません。
> その代わりに、「メニュー作成」「メニュー追加」命令で、メニューを作成します。
> （※ただし、『作る』命令で、『○○メニューを、作る』という書き方はできます。）

> | メニューの仕組みは、 [親メニュー] ┝━[子メニュー] ┝━[子メニュー] ┝━[子メニュー] ┝━[子メニュー] ┝━[子メニュー] ・・・ と、階層構造になっています。

> 親メニューを作るには、

> (メニューの名前)を、メニュー作成。 | もしくは | ○○メニューを、作る

> と、書きます。
> そして、子メニューを作るには、

> (親メニューの名前)に、(子メニューの名前)を、メニュー追加。
> もしくは
> (子メニューの名前)を、メニュー追加。

> と、書きます。（親メニューを省略すると、一番最後に作った親メニューが補完されます。）
> 簡単なメニューを作ってみます。

> `'親メニューの作成 親メニューを、メニュー作成。 '子メニューの作成 子１メニューを、メニュー追加。 子２メニューを、メニュー追加。`

> ただ、メニューが出来ただけでは、意味がありませんね。
> そこで、メニューにイベントを追加します。

> `｛メニューにイベントを追加｝ '親メニューの作成 親メニューを、メニュー作成。 '子メニューの作成 親メニューに、子メニューを、メニュー追加。 子メニューの、イベントを、子メニューイベントに、設定。'イベント設定 待機。 ＊子メニューイベント 「子メニューのイベントです」と、言う。 待機。`

> こうしてみると、作成だけは「メニュー作成」命令を使わなければならないものの、ボタンや、エディタなどの、一般的なGUIオブジェクトと、同等に設定が使えることが分かってもらえると思います。

> `｛メニューの設定項目を変えてみる｝ 親メニューを、メニュー作成。 親メニューの、テキストを、「ぜんぜん違うテキスト」に、設定。 親メニューの、イベントを、親メニューイベントに、設定。 待機。 ＊親メニューイベント 「親メニューのイベント」と、言う。`

## メニューの名前

> メニューの名前は、『○○メニュー』のようにつけると良いです。なぜかというと、例えば、「ファイルメニュー」という名前のメニューを作ると、そのメニューのテキストには、「ファイル」と、表示されます。

> メニュー作成 | メニューのテキスト設定の省略
> ファイルメニューを、メニュー作成。 その、テキストは、「ファイル」 | ファイルメニューを、メニュー作成。

> ↑の、２つには、同じテキストが表示されます。

## メニュー雛型

> Windowsのメニューは、ソフトが違ってもだいたい同じような名前のメニューが並んでいます。これは、ユーザーが新しいソフトの使い方を覚える手間を大幅に緩和するのに役立っています。ひまわりを使ってソフトを作る場合も、メニューは出来るだけ、身の回りにあるソフトのメニューを真似て作ると良いと思います。
> そういうわけで、ここに、メニューの雛型を用意しておきますので、参考にしてください。

> ファイルメニューを、メニュー作成。 その、テキストは、「ファイル(&F)」 ファイルメニューに、新規メニューを、メニュー追加。 その、テキストは、「新規(&N)」 その、イベントは、( {イベントの内容} )。 ファイルメニューに、区切り線1メニューを、メニュー追加。 その、テキストは、「-」 ファイルメニューに、開くメニューを、メニュー追加。 その、テキストは、「開く(&O)」 その、イベントは、( {イベントの内容} )。 ファイルメニューに、区切り線2メニューを、メニュー追加。 その、テキストは、「-」 ファイルメニューに、保存メニューを、メニュー追加。 その、テキストは、「保存(&S)」 その、イベントは、( {イベントの内容} )。 ファイルメニューに、名前をつけて保存メニューを、メニュー追加。 その、テキストは、「名前をつけて保存(&A)」 その、イベントは、( {イベントの内容} )。 ファイルメニューに、区切り線3メニューを、メニュー追加。 その、テキストは、「-」 ファイルメニューに、閉じるメニューを、メニュー追加。 その、テキストは、「閉じる(&C)」 その、イベントは、おわり。

## メニューにショートカットキーを設定

> メニューには、ショートカットキーを割り当てることが出来ます。
> ショートカットキーを設定するには、設定項目の、ショートカットキーを、設定します。

> （メニューの名前）の、ショートカットキーを、「ショートカットキー文字列」に、設定。

> （設定の例）

> `｛ショートカットキーの設定｝ 親メニューを、メニュー作成。 親メニューに、子メニュー1を、メニュー追加。 子メニュー1の、ショートカットキーを、「Ctrl+C」に、設定。 子メニュー1の、イベントを、子メニューイベントに、設定。 待機。 ＊子メニューイベント 「子メニューのイベント」と、言う。 待機。`

> ショートカットキー文字列の例：

> 文字列 | 割り当てたきー
> Ctrl+C | [Ctrl]+[C]
> F1 | ファンクションキーの[F1]
> Ctrl+Shift+W | [Ctrl]+[Shift]+[W]
> Shift+F1 | [Shift]+ファンクションキーの[F1]

## メニューのチェックのオン／オフ

> メニューのチェックをオン／オフするには、

> 子メニュの、値を、オンに、設定。 子メニュの、値を、オフに、設定。

> と、書きます。

## メニューに画像を描画する

> メニューに画像を描画するには、

> 子メニュの、画像を、「ファイル名」に、設定。

> と、書きます。
> メニューに画像を描画することで、オシャレなメニューが作れますね。

## 区切り線を入れる

> 区切り線を入れるには、テキストを、「-」(ハイフン)にします。すると、そのメニューが区切り線になります。

戻る