したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

リストボックス内で右クリック

1akira:2003/11/16(日) 10:40
いつもお世話になっています。
質問ばかりなんですが、リストボックス内で選択して
右ボタンでメニューを選択するような処理がしたいんですが
マニュアルで調べるとリストボックスには右ボタンのイベント
がありません。フォームには有るので、それを使ってみたんで
すがしっくりしません。
なにか良い方法があれば教えてください。
よろしくお願いします!

2F橋:2003/11/17(月) 19:47
私も分かりませんのでスレッドを上げるご協力のみとさせて頂きたく…

ご存じの方。よろしくお願いします

3TOKO:2003/11/18(火) 04:43
リストボックス内に表示された項目のうち必要な項目上で右クリックし『ぶら下がりメニュー』
を表示させたいと理解していいのでしょうか?
結論から言うと私の技量ではどうにもなりませんでした。
APIのマウス関係、右クリック等を探してみたのですが右クリックは見つけられませんでした。
以下、超初心者向けに色々試してみた顛末記を・・
ベテランの方は声を出さずに笑ってやってください!?(^^;)・・・
リストボックス上では、マウス関数で位置の取得はできないようですので(?)、しょうがないから
右クリックの代わりにダブルクリックを使おう・・・
フォームは『ピクセルモード』、メインのリストボックスをLIST1、『ぶら下がりメニュー』は
LIST2を右側に『可視なし』で配置して代用しよう・・・

sub LIST1_CLICK()'(イ)
index1 = LIST1.GETCURSEL + 1
通常の処理
LIST2.SHOWWINDOW 0
end sub

sub LIST1_DBLCLICK()'(ロ)
LIST2.SHOWWINDOW -1
end sub

sub LIST2_CLICK()'(ハ)
index2 = LIST2.GETCURSEL + 1
メニュー処理
LIST2.SHOWWINDOW 0
end sub

ここまで来て、まてよ『ぶら下がりメニュー』は凸だけどLIST2を3D表示した場合凹でチョット〜?
というわけで、LIST2をPICTURE1に変更。『ピクセルモード』『境界線なし』『可視なし』『背景色
灰色』で・・・

(ロ)をピクチャボックスに変更
メニューの高さはフォントサイズ14Pで改行幅は18ドットとすると7項目×18=126+2(上下枠1ドッ
トずつ)
sub LIST1_DBLCLICK()
  '(ニ)
PICTURE1.line(0,0)-(PICWIDTH-1,0),,15'PICWIDTH : LIST2の幅
PICTURE1.line(0,0)-(0,PICHEIGHT-1),,15'PICHEIGHT: LIST2の高さ
PICTURE1.line(0,PICHEIGHT-1)-(PICWIDTH-1,PICHEIGHT-1),,0
PICTURE1.line(PICWIDTH-1,0)-(PICWIDTH-1,PICHEIGHT-1),,0
PICTURE1.SYMBOL(6,1),"qqqqqq",1,1,0'メニュー項目
PICTURE1.SYMBOL(6,19),"wwwww",1,1,0
PICTURE1.SYMBOL(6,37),"eeeee",1,1,0
PICTURE1.SYMBOL(6,55),"rrrrr",1,1,0
PICTURE1.SYMBOL(6,73),"ttttt",1,1,0
PICTURE1.SYMBOL(6,91),"yyyyy",1,1,0
PICTURE1.SYMBOL(6,109),"uuuuu",1,1,0

  'LIST1クリック行とLIST2のTOPを合わせる
PICTURE1.MOVEWINDOW (LIST1の右端+4),(INDEX1-1)*14+(LIST1のTOP)
PICTURE1.SHOWWINDOW -1'↑フォントサイズ14P(ピクセルモードなので14ドット高で移動)
end sub

(ハ)の部分はピクチャボックスをクリックに変更
ピクチャボックス上のマウスクリック位置からクリック行を取得
sub PICTURE1_CLICK()
MX = PICTURE1.mouse(0)
MY = PICTURE1.mouse(1)
INDEX2 = MY \ 18+1
メニュー処理
PICTURE1.SHOWWINDOW 0
end sub

うーん・・メニューの色が違うなぁ〜(XPの場合)・・・
で、(ニ)に下記コードを追加
PICTURE1.SETFILLCOLOR RGB(214,210,201)
PICTURE1.line(0,0)-(PICWIDTH,PICHEIGHT),,,bf

本当の色は知らない。ペイントショップで近似色を作り数値を確認しただけ・・
というわけで朝になってしまいました。オワリ

4akira:2003/11/18(火) 13:40
TOKOさん、わざわざLISTまで載せていただいて
本当にありがとうございます。
自分も、ダブルクリックで代用する事にします!
また、困ったときはよろしくお願い致します。

5F橋:2003/11/19(水) 23:43
>>3
TOKOさん>
F-BASICユーザーに役に立ちそうなサンプルプログラム掲載をありがとうございました

>>4
毎度毎度私が答えられず申し訳ないです…
無知な私に懲りずまたご参加下さい
ありがとうございました

6TOKO:2003/11/20(木) 00:02
続)・・・
あれっ!リストボックスに表示される行数以上の項目をクリックした場合『ぶら下がりメニュー』
の位置がずれたり表示されなかったりするよっ!
ピクチャボックスのTOPはLIST1クリック行の項目ではなく位置だからね。スクロールのこと考えて
なかった!!ツッコミ防止策^^;
(ニ)の
PICTURE1.MOVEWINDOW (LIST1の右端+4),(INDEX1-1)*14+(LIST1のTOP)

PICTURE1.MOVEWINDOW (LIST1の右端+4),(INDEX1-LIST1.GETTOPINDEX-1)*14+(LIST1のTOP)

7ニャン子:2003/11/20(木) 02:23
ニャン子です。
文章が長くなったのでこちらに書きます。

http://www2.realint.com/cgi-bin/tarticles.cgi?efubasi+1130

8F橋:2003/11/24(月) 12:24
ニャン子さん>
了解しました。案内ありがとうございます


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板