リストコントロール上でマウスの位置取得 – プログラミング – Home

リストコントロール上でマウスの位置取得
 
通知
すべてクリア

[解決済] リストコントロール上でマウスの位置取得


takety
 takety
(@takety)
ゲスト
結合: 23年前
投稿: 18
Topic starter  

初めて書き込みます。VCは独学で勉強中で初心者です。

<やりたい事>
リストコントロール(レポート)のアイテム上で右クリックした時に
マウスカーソル位置にポップアップメニューを表示したい。

<不具合現象>
マウスカーソル位置でなく、アイテムの左端位置に表示されてしまう

<現状のプログラム>
void CLIST2Dlg::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
int selectItem;
POSITION po;
POINT point;
CMenu menu;

// 選択しているアイテムのインデックスの取得
po = m_List.GetFirstSelectedItemPosition();
selectItem = m_List.GetNextSelectedItem(po);

m_List.GetItemPosition(selectItem,&point);
ClientToScreen(&point); /* クライアント座標をスクリーン座標に変換 */

menu.LoadMenu(IDR_MENU1); /* IDR_MENU1はResourceViewで追加したメニュー */
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x,
point.y, this);

*pResult = 0;
}

<悪いところの予測>
右クリックした時のイベントからマウスカーソルの座標を取得して
TrackPopupMenu()の引数に渡す必要がある?と思っていますが、
マウスカーソル位置の取得方法がよくわかりません。
ヘルプ等参照していますが、特にNMHDRの辺りがよくわかりません。
どなたか分かりやすい解説等が書いてあるHP等ご教示頂けないでしょうか?

<環境>
WinXP,VC++6.0,MFC(Dailogベース)

宜しくお願いします。


引用未解決
トピックタグ
西風
 西風
(@西風)
ゲスト
結合: 23年前
投稿: 14
 

GetCursorPos はどうでしょ。


返信引用
NEG(ねぐ)
 NEG(ねぐ)
(@NEG(ねぐ))
ゲスト
結合: 23年前
投稿: 178
 

 クリックした時の位置情報が、、、
http://www24.cds.ne.jp/~neg/pro/piyo1/clc/rclick.html


返信引用
takety
 takety
(@takety)
ゲスト
結合: 23年前
投稿: 18
Topic starter  

西風さん、NEG(ねぐ)さん有難うございました。

教えてもらったURLには、やりたい事ズバリそのものが
載っていましたね。

LPNMLISTVIEW lpnmlv=(LPNMLISTVIEW)pNMHDR;
POINT pt=lpnmlv->ptAction;

この辺りが勉強不足であまり理解できていませんが、
とりあえずやりたい事はできたので、後々勉強していく
ことにします。

有難うございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました