ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月28日(木) 17:48

全ての表示時間は UTC+09:00 です




返信する
ユーザー名:
件名:
メッセージ本文:
メッセージを入力してください。60000 字まで入力できます。 

フォントサイズ:
フォントカラー
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF
BBCode を無効にする
URL を自動的にパースしない
クイズ
お手数ですがカタカナで「エービー」と4文字を入力してください。:
答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。
   

トピックのレビュー - メニューの破棄
作成者 メッセージ
  記事の件名:  メニューの破棄5  引用付きで返信する
rikaeigoさん、ありがとう。

 カスタマイズする以外にRemoveMenu関数の使用する場面は無いのでしょうか?

宜しくお願いします。
投稿記事 Posted: 2014年8月06日(水) 09:20
  記事の件名:  Re: メニューの破棄  引用付きで返信する
ブラウザのお気に入りをいじってみてください。ドラッグしたりできますよね。そういうふうに使います。
投稿記事 Posted: 2014年8月01日(金) 11:17
  記事の件名:  メニューの破棄 4  引用付きで返信する
たかせさん、ありがとう。

 DeleteMenu関数は、賢いですね。

 RemoveMenu関数は、もう一つ解らなく、「メニュー項目を復活させる」と言うのは、
どういった場面で使用するのでしょうか?

宜しくお願いします。
投稿記事 Posted: 2014年8月01日(金) 10:31
  記事の件名:  Re: メニューの破棄 3  引用付きで返信する
①DeleteMenu関数でCaption1を削除した場合、Item1 や Item1_1 のハンドルは自動的に破棄されます。
②RemoveMenu関数でCaption1を削除した場合、Item1 や Item1_1 のハンドル破棄されません。
したがって削除したメニュー項目を復活させる必要があるときはRemoveMenu関数を使用します。
よろしくお願いします。
投稿記事 Posted: 2014年7月30日(水) 22:31
  記事の件名:  メニューの破棄 3  引用付きで返信する
たかせさん、rikaeigoさん、ありがとう。

 具体的で解りやすい説明で大分理解出来ました。

 DestroyMenu関数は、メニューハンドルの破棄で、DeleteMenu関数は、項目の破棄と理解しているのですが、
DeleteMenu関数で Caption1 を削除した場合、Item1 や Item1_1 のハンドルは、どうなるのでしょう?
自動的に破棄されるのですか? その辺が解りません。

Caption1
  Item1
   Item1_1
    Item1_1_1
  Item2
   Item2_1
    Item2_1_1

又、RemoveMenu関数は、どういった時に使用するのでしょうか?

宜しくお願いします。
投稿記事 Posted: 2014年7月30日(水) 10:05
  記事の件名:  Re: メニューの破棄  引用付きで返信する
こういうイメージなんです。
変数=箱
構造体=複数の箱がくっついているモノ
ウインドウも複数の箱がくっついているモノです。メニューなどと書かれた箱があります。
メニューは木のようなものです。枝分かれしたりして、葉にメニュー項目が書いてあります。
メニューハンドルは、この木の幹に付いている取っ手だと思ってください。

DestroyMenuは木全体を破棄します。取っ手を持って簡単に取れるのです。
枝や葉を切って捨てるのがDeleteMenuです。
RemoveMenuを使うと、もう一度再生可能な状態で切ることが出来ます。

現在では、破棄についてあまり神経質になる必要は無いそうです。
投稿記事 Posted: 2014年7月29日(火) 11:21
  記事の件名:  Re: メニューの破棄  引用付きで返信する
>RADツールで作成したメニューは、自動的に破棄されるのと言う事ですね。
RADツールで作成したメニューがあればCallback関数(CallBack.wbp)のウインドウ破棄イベント該当部分に
DestroyMenu関数がメニューごとに組み込まれます。結果的には自動的に破棄されることになります。

>そして、SetMenu関数で生成したハンドルは、DestroyMenu関数で破棄してやると言う事ですね。
>また、CreateMenu関数やCreatePopupMenu関数で生成したハンドルも同様、破棄してやると言う事ですね。
はいそのとおりです。

>Caption1 をDeleteMenu関数で削除したい場合、先に Item1_1 や Item1 及び Item2_1 や Item2 を
>先に DestroyMenu関数で破棄しなければいけないのでしょうか?
メニュー項目を削除するときは特にDestroyMenu関数で破棄しなくてもよいと思います。

よろしくお願いします。
投稿記事 Posted: 2014年7月28日(月) 21:07
  記事の件名:  メニューの破棄 2  引用付きで返信する
rikaeigoさん、ありがとう。

 質問の順番が前後しますが、

> DestroyMenu関数のトピックスの解説では、「ウィンドウにセットされている
>メニューは自動的に破棄されるので、この命令語を使う必要はありません。」と
>在りますが、「ウィンドウにセットされているメニュー・・・」とは、どう言うことですか?

RADツールで作成したメニューは、自動的に破棄されるのと言う事ですね。
そして、SetMenu関数で生成したハンドルは、DestroyMenu関数で破棄してやると言う事ですね。
また、CreateMenu関数やCreatePopupMenu関数で生成したハンドルも同様、破棄してやると言う事ですね。
--------------------------------------------------------------------------------------------------------------

Caption1
  Item1
   Item1_1
    Item1_1_1
  Item2
   Item2_1
    Item2_1_1
caption2
  Item3

 Caption1 をDeleteMenu関数で削除したい場合、先に Item1_1 や Item1 及び Item2_1 や Item2 を
先に DestroyMenu関数で破棄しなければいけないのでしょうか?

宜しくお願いします。
投稿記事 Posted: 2014年7月28日(月) 09:58
  記事の件名:  Re: メニューの破棄  引用付きで返信する
前半の意味がわかりませんが、少しでも参考になればと思い、書きます。
まず、本当はウィンドウを作るときはAPI関数のCreateWindowExなどを使って自分で作成するのです。

しかし、ABにはRADツールがあるので、CreateWindowEx関数をその手間はABの開発者様がやってくださっているのです。
プロジェクトのフォルダにあるMakeWindow.wbpというファイルが自動で生成されて、その中に自動でCreateWindowEx関数が書き込まれているのです。
そのCreateWindowEx関数の引数のひとつにメニューがあります。hMenu As HMENU というやつです。
それがウィンドウに関連付けられているメニューです。
そしてそのメニューはSetMenu関数で別のメニューにすりかえることができます。

しかし、ABのRADではウィンドウプロパティのメニューのところで簡単に関連付けることが出来ます。

ウィンドウを破棄するときはその関連付けられているメニューが破棄されます。
それ以外のSetMenuなどですりかえられたときの古いほうのメニューは破棄されません。
そういう孤独なメニューはDestroyMenu関数で破棄してやるのです。
投稿記事 Posted: 2014年7月27日(日) 22:24
  記事の件名:  メニューの破棄  引用付きで返信する
 メニューの破棄について、いくつか質問させて頂きます、宜しくお願いします。

Caption1
Item1
Item1_1
Item1_1_1
Item2
Item2_1
Item2_1_1
caption2
Item3

 Caption1 を削除したい場合、先に Item1_1 や Item1 を DestroyMenu関数で破棄
しなければいけないのでしょうか?

 DestroyMenu関数のトピックスの解説では、「ウィンドウにセットされている
メニューは自動的に破棄されるので、この命令語を使う必要はありません。」と
在りますが、「ウィンドウにセットされているメニュー・・・」とは、どう言うことですか?
投稿記事 Posted: 2014年7月18日(金) 11:36

全ての表示時間は UTC+09:00 です


ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean