VB6.0でListViewコントロールを使用したプログラムを作成しているのですが、
ListViewにヘッダを表示したとき、右クリックイベントの拾い方が分かりません。
APIを使えばいいと思うのですが、ネットで検索してもそれらしいものは見つけられませんでした。
ご存知の方がいらっしゃいましたら、ぜひ教えてください。
>APIを使えばいいと思うのですが
そぉ?MouseDown と ColumnClick イベントを組み合わせたりしてもできなかった?
普通に頭を使えば通常のコーディングでできる事も多いと思うけど、API を使うべき
だという根拠は?何を試して、どんなアイデアを出して、どういう結果が得られたから
API を使えばいいと思ったの?
>ネットで検索してもそれらしいものは見つけられませんでした。
…みんなそーゆーんだけど…どんな検索キーワードを試したのか教えて貰いたい。
特攻隊長まるるうさんご意見ありがとう御座います。
>MouseDown と ColumnClick イベントを組み合わせたりしてもできなかった?
どちらのイベントもヘッダの右クリックは拾えません。。
何か方法があるのでしょうか?
>API を使うべきだという根拠は?何を試して、どんなアイデアを出して、どういう結果が得られたから
>API を使えばいいと思ったの?
ListViewのMouseMove、ColumnClick、MouseDownのイベントで試しましたが、
ヘッダ上の右クリックが取得できなかったのでAPIの使用を考えました。
>…みんなそーゆーんだけど…どんな検索キーワードを試したのか教えて貰いたい。
・VB リスト タイトル 右クリック
・リスト ヘッダ 右クリック
・VB ListView 右クリック
・ListView sendmessage
・LVM ヘッダ ハンドル
・LVM_ 右クリック
・LVM_GETHEADER 右クリック
・VB リストビュー 右クリック
などなどです。。。
いい答えです!!(>▽<)
なるほどなるほど。[VB6.0]のカラムの右クリックって反応しないのね。
そこの現象を回答者の常識と判断されて省略されると、回答者は、一度
その現象を再現するためにサンプルプログラムを作って1から検証しない
といけません。面倒に思うかもしれませんが、自分がもっている情報は
できるだけ書き込んで下さい。
で、そうなると、『フック』とか『サブクラス化』という路線を検討する必要が
あるかもしれません。Windowsアプリケーションの『メッセージ』について
はどの程度の知識をお持ちですか?『フック』については?過去ログでも
出てきてると思います。どの程度理解できますか?。
>面倒に思うかもしれませんが、自分がもっている情報は
>できるだけ書き込んで下さい。
すみません。。気をつけます。
APIについては、サンプルソースを見つけてきて自分のプログラムに組み込む
という感じなので、処理は実際に動かして確認しています^^;
質問された答えになっていないかもしれませんが、フック・サブクラス化というのは使ったことがないと思います。(APIとは違うのですか?)
・・・とほとんど知識がないのですが、宜しくお願いします。
先ずは関連する情報を片っ端から読んで、何者なのかを自分で理解して下さい。
理解しないまま上記の方法を実装するのは非常に危険です。
色々なサイトがあって
APIの説明は単語帳みたいなのを調べれば分かるね。(VBのヘルプにも載ってるよ?)
http://e-words.jp/w/API.html
http://www.microsoft.com/japan/Terminology/query.asp?id=28&q=API&kbid=&key=a&ui=L&dev=
サブクラス化に関しては…↓ここも分かりやすいかな?
http://homepage1.nifty.com/rucio/main/tyukyu/tyukyu9.htm
かな?0123さんご指摘の通り、サブクラス化はシステムに影響を与えるため、十分な
知識を必要とする操作です。ただし、このことはAPIを使う時点で認識しておかな
ければならない事なのです。まずはお勉強して下さい。
それから余談だけど、検索キーワード
>リスト ヘッダ 右クリック
VBではリストビューの見出しはカラム(column)と呼びます。オブジェクト名にも
こちらが付けられていると思います。単語の選択ミスです。
>ListView sendmessage
基本的にAPIはVBの特定のコントロールに対して有効なわけではなく、色々な
コントロールに対して使えます。自分の目的通りのコントロールを使ったサンプルが
引っ掛かる確立は極端に低くなると予想できます。単語の組み合わせミスです。
検索キーワードはただ組み合わせれば良い訳ではありません。その単語の意味を
理解してないと、目的の情報には辿り着きません。
ボクが調べるなら…
http://www.google.com/search?hl=ja&q=API+%E5%8F%B3%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF+VB&lr=
あたりで『フック』という言葉を知らなくてもすぐに辿り着けます。
ツイート | ![]() |