掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ツリーコントロールでフォーカスのあるアイテムを取得するには? (ID:54306)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
MapWindowPoints を使って、2つの座標を変換できます。 GetCursorPos はスクリーン座標なので、これを m_tree のクライアント座標に変換するには POINT pt; ::GetCursorPos( &pt ); ::MapWindowPoints( HWND_DESKTOP, m_tree.m_hWnd, &pt, 1 ); とします。 注意すべきは、CWnd のメンバではない、グローバルな MapWindowPoints を使うこと。 そうでないと、本来はスクリーン座標である pt を、親ウィンドウのクライアント座標と解釈されてしまいます。 これで、多少はエレガントになるかもしれませんが、いかがでしょうか? ツリーコントロールのクライアント座標を一発で、かつ簡単に取得する方法は、たぶんありません。 ツリーコントロールをサブクラス化して WM_RBUTTONDOWN を捕まえればできるかもしれませんが、現行の引き算の方がまだ簡単かと思います。 #NM_RCLICK がクライアント座標を提供してくれればいいのに、と思う昨今。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.