VC++6.0 SDKでLISTVIEWでNM_CLICKを受け取った時のINDEXを取得したいのですがどうしたらよいのでしょう?
以下現在のソースです、インデントが無効になってしまい、見にくくてすみません。
case WM_NOTIFY:
if((int)wp == IDLV_OPT_YAMAHA){
lvinfo = (LV_DISPINFO *)lp;
switch (lvinfo->hdr.code){
case NM_CLICK:
//click位置の名前とcheck
GetCursorPos(&pt);
//hittest.pt = pt;
iIndex = LBItemFromPt(GetDlgItem(ghWnd, IDLV_OPT_YAMAHA), pt, FALSE);
if(iIndex != -1){
ListView_GetItemText(GetDlgItem(ghWnd, IDLV_OPT_YAMAHA), iIndex, 0, szMcn, sizeof(szMcn));
fState = ListView_GetCheckState(GetDlgItem(ghWnd, IDLV_OPT_YAMAHA), iIndex);
if(fState){
WritePrivateProfileString("CONNECT", szMcn, "1", PATH_INI);
sprintf(gszDebug, "%s 1", szMcn);
MessageBox(NULL, gszDebug, "error", MB_OK);
}else {
WritePrivateProfileString("CONNECT", szMcn, "0", PATH_INI);
sprintf(gszDebug, "%s 0", szMcn);
MessageBox(NULL, gszDebug, "error", MB_OK);
}
}
break;
}
}
break;
No.4ベストアンサー
- 回答日時:
>Spy++試してみます。
>なんかおもしろそうなソフトですけど、よく使われるものなんでしょうか?
ウィンドウの情報を得るんでしたら必須ですね。ぜひ使いこなしてください。
これを使えば表示、非表示にかかわらずすべての起動中のウィンドウに対して調査を行うことが出来ます。
よく使うところですとウィンドウメッセージの受信内容の取得やウィンドウクラス名の取得、ダイアログのコントロールIDの確認なんかですかね。
取得可能な情報はこれだけじゃなく、ウィンドウに関する情報はほぼ全部取れます。
No.3
- 回答日時:
>LVN_COLUMNCLICKもLVN系全てメッセージを捕まえれません。
>DialogBox関数で指定したプロシージャでなく更にサブクラス化しなければいけないのでしょうか?
そういう時は、Spy++で確認しましょう。
No.2
- 回答日時:
>
http://home.a03.itscom.net/tsuzu/programing/tips …>を参考にして
参考にしたところが間違ってますね。
ドラッグリスト用のAPIです。
http://www.kumei.ne.jp/c_lang/sdk3/sdk_215.htm
#"LB"なんですから。"LV"じゃないですよね?
>その時のソースから流用したためNM_CLICKになっているのだと思います。
ということでしたら、この際LVN_COLUMNCLICKにしちゃいましょう。何も問題なくカラム情報を取得できます。
この回答への補足
LVN_COLUMNCLICKもLVN系全てメッセージを捕まえれません。
DialogBox関数で指定したプロシージャでなく更にサブクラス化しなければいけないのでしょうか?
ありがとうございます、試しに親プロシージャでWM_NOTIFYを引っ掛けてみます。
No.1
- 回答日時:
LVN_COLUMNCLICKではなく、なぜNM_CLICKを使用するのでしょうか?
特別な理由があるのでしたらしょうがないですけど。
あと、LBItemFromPtってリストボックスのAPIじゃなくて?
この回答への補足
http://home.a03.itscom.net/tsuzu/programing/tips …
を参考にして
LBItemFromPt
ListView_HitTest
を試しましたがreturnは-1になってしまいます。
以前に一度自分で質問の内容と同じものを作ったことがあり、
その時のソースから流用したためNM_CLICKになっているのだと思います。
うろ覚えですがそのときにListViewからComboBoxの項目を選択状態にするという仕様と
ComboBoxからListViewを選択状態にしたうえでさらにクリックするというのを作りました。
他にもいろいろ仕様がありそうしました。
結局動作が鈍くその部分のソースは書き捨ててしまいました。
ただ今回はDialogBoxマクロのプロシージャ内でやってるのが関係しているのかできないです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- JavaScript jQueryでのレスポンシブが綺麗に動かない 3 2022/06/21 11:08
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- PHP php エラー 2 2022/10/23 16:43
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
このQ&Aを見た人はこんなQ&Aも見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
リストビューの選択状態を取得するメッセージはありますか?
C言語・C++・C#
-
VC++でコントロールの境界線を描画する方法
C言語・C++・C#
-
リストコントロールの列幅を固定にする
C言語・C++・C#
-
-
4
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
5
画面を強制的に再描画させる方法
C言語・C++・C#
-
6
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
7
FindFirstFileとFindNextFileで検索される順番
C言語・C++・C#
-
8
イベントハンドラが取得できない VC++ MFC
C言語・C++・C#
-
9
CFileDialogで保存したい
C言語・C++・C#
-
10
コンボボックスでデフォルト値の設定
C言語・C++・C#
-
11
CStringの文字列検索&抜き出しについて
C言語・C++・C#
-
12
フォーカスについてお教えください
C言語・C++・C#
-
13
CFileDialogの最初のディレクトリ設定
C言語・C++・C#
-
14
コンボボックスの高さを変更したい。
C言語・C++・C#
-
15
MFCのCListCtrlでスクロールを検出
C言語・C++・C#
-
16
リストコントロールのデータの変更を検知したい
C言語・C++・C#
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
検索の画面がでなくなってしま...
-
作成したウインドウのサイズを...
-
VBで外部プログラムを位置のみ...
-
ゲームでは結局どっちが良いの?
-
Excelの上下を固定したい
-
VBA .Value=.Value ?
-
ダイアログをスクロールさせるには
-
アクティブウインドウのIME...
-
勝手にウィンドウが開いて止ま...
-
【VB2008】 マウス操作の一時的...
-
最大化と最小化ボタン
-
他のアプリケーションの終了処理
-
c++/cli .NET Formアプリケー...
-
ラジオボタンの初期指定
-
ExcelのBOOKが消えた!
-
リモートデスクトップの中のウ...
-
VBA SendMessage 無限ループに...
-
メッセージをスルー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
検索の画面がでなくなってしま...
-
勝手にウィンドウが開いて止ま...
-
ゲームでは結局どっちが良いの?
-
ラジオボタンの初期指定
-
VBA .Value=.Value ?
-
Excelの上下を固定したい
-
ExcelのBOOKが消えた!
-
他のアプリケーションの終了処理
-
Vba LongPtrについて教えてくだ...
-
作成したウインドウのサイズを...
-
UWSCで特定のChromeのタブをア...
-
[VBA] UserForm を Excel の W...
-
MFC ダイアログ上のID取得につ...
-
Alt+P,Alt+NをPostmessageで送...
-
「&HFFFF」「&H1A」とは?
-
ExcelVBAでAPIを使って外部ウイ...
-
親ウインドウにあるOKボタンを...
-
EnumChildWindowsの使い方(VBA)
おすすめ情報