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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
リストビューの選択状態を取得するメッセージはありますか?
C言語・C++・C#
-
リストコントロールの列幅を固定にする
C言語・C++・C#
-
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
-
4
CString から LPCTSTRの型に変換
C言語・C++・C#
-
5
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
6
FindFirstFileとFindNextFileで検索される順番
C言語・C++・C#
-
7
リストビューで選択行の背景を変える
C言語・C++・C#
-
8
Enterキーを押されたら次の処理に移るという事をしたい。
C言語・C++・C#
-
9
リストコントロールのデータの変更を検知したい
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
ゲームでは結局どっちが良いの?
-
[VBA] UserForm を Excel の W...
-
ExcelのBOOKが消えた!
-
VBA .Value=.Value ?
-
Console.WriteLine で表示されない
-
MFC ダイアログ上のID取得につ...
-
OutlookでRSSフィードやメモの...
-
Alt+P,Alt+NをPostmessageで送...
-
VB2005のイミディエイト ウィン...
-
検索の画面がでなくなってしま...
-
親ウインドウにあるOKボタンを...
-
最大化と最小化ボタン
-
Vba LongPtrについて教えてくだ...
-
VC++2010でアイコンを付ける方法
-
ラジオボタンの初期指定
-
特定プロセスの権限情報を取得...
-
ダイアログでのDragDropでマウ...
-
勝手にウィンドウが開いて止ま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
ExcelのBOOKが消えた!
-
検索の画面がでなくなってしま...
-
ゲームでは結局どっちが良いの?
-
ラジオボタンの初期指定
-
勝手にウィンドウが開いて止ま...
-
VBA .Value=.Value ?
-
Vba LongPtrについて教えてくだ...
-
Excelの上下を固定したい
-
Alt+P,Alt+NをPostmessageで送...
-
作成したウインドウのサイズを...
-
[VBA] UserForm を Excel の W...
-
「&HFFFF」「&H1A」とは?
-
MFC ダイアログ上のID取得につ...
-
親ウインドウにあるOKボタンを...
-
ダイアログをスクロールさせるには
-
【VB2008】 マウス操作の一時的...
-
EnumChildWindowsの使い方(VBA)
-
名前を付けて保存のウィンドウ...
おすすめ情報