ポップアップメニューにアイコンを表示するには?


。。A  2005-06-23 02:29:09  No: 122908

エクスプローラの「送る」メニューを自アプリに組み込みたいと思っています。
メニューエディタで
送る[mnuSendTo]
・・・なし[mnuSendToProg(0)]
を作成しておき、プログラム起動時にSendToフォルダのファイル一覧を取得し、
そのファイル数分  Load mnuSendToProg(i)  でサブメニューを登録。
ImageList1にそのアイコンを登録。

右クリックメニューにきちんと「送る」コマンドが追加され、
ImageList1に登録したアイコンはデバック用としてListViewに表示できました。

しかし、「送る」メニューに追加したアイテムにアイコンを表示する方法が分かりません。
メニューにアイコンを表示する方法はいくつか検索できたのですが、その方法だとメニューが非表示になっている場合、
アイコンが設定できないようなのです。(右クリックメニューのみ使用したいため非表示になっています。)

説明が上手く伝わっているか分かりませんが、宜しくお願いします。
<環境>
VB6.0


ねろ  2005-06-23 05:31:06  No: 122909

。。A さんに一言、言いたいことが、
『こんな難しいこと、初心者掲示板で聞かないで!  回答者が恥ずかしいから。』(^^;
で相談なんですが、アイコンのセットはSetMenuItemBitmapsでやってますよね。
非表示のメニューを一番右端に置いといて、PopupMenuを呼ぶ出す前にメニューを
Visuible = Trueにして、SetMenuItemBitmapsでビットマップをセットして、
PouupMenuを呼び出し、PopupMenuの終了時に、再びメニューをVisible = Falseにしておく。
この位で許してもらえないかと、だめかな。。。。。


mnu  2005-06-23 19:41:38  No: 122910

> エクスプローラの「送る」メニューを自アプリに組み込みたいと
できれば、IContextMenuがいいと思いますが...

> その方法だとメニューが非表示になっている場合、
> アイコンが設定できないようなのです。

メニューエディタじゃなく、APIで作ればいいのでは?


。。A  2005-06-24 02:01:31  No: 122911

http://www1.harenet.ne.jp/cgi-bin/cgiwrap/unaap/chtml/chtml.cgi?key=iconmenu
このサンプルソースを参考にしてみたのですが、1つ分からないことがあります。

このサンプルで使われているImageList1のバージョンは5.0なのですが、
バージョン6.0のImageList2を使い、

.MenuDefaultImage = ImageList2

にして実行すると、実行時エラー「型が一致しません」と出ます。
ImageList2には適当にピクチャを登録し、キーをメニューと同じ名前を付けているのですが、なぜなのでしょうか?


。。A  2005-06-24 02:03:18  No: 122912

追記

実行時エラーは

>.MenuDefaultImage = ImageList2

の部分で出ます。


。。A  2005-06-24 04:37:14  No: 122913

いろいろ試してみた結果、バージョンが違うと型も違う扱いになるようでした。

作成中のプログラムに組み込んでみると、別の処理でImageList(バージョン6.0)を使ってるせいなのか
サンプルで使われているImageListで実行時エラー「型が一致しません」が出たので、バージョン6.0のImageListを使ってみたら

アイコンが表示されませんでした。
バージョンが変わったので、処理も変えないといけないのでしょうか?


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加