右クリックでダブルクリック処理をする方法

[戻る]
ペンぐ〜 2001/11/02(金) 20:23:34
お聞きしたいことは、WM_LBUTTONDBLCLKのSendMessageの仕方です。
マウスの右をクリックしたときに、そのエディタのマウスのある位置を
ダブルクリックにしたいのですが、なぜか、エディタの一番左上(0,0)の位置を
ダブルクリックしてしまいます。
ペンぐ〜です。はじめまして。
ちなみに、SendMessage する前の MousePos変数(マウスの座標)はちゃんとした値が入っていました。
どうすれば良いのか教えてください。
MFC&SDK両方使用しています。

<WM_RBUTTONDOWNをフックしたときのソース>

POINT        MousePos; //マウス座標用

EditHwnd = GetActiveWindow();
hWnd = GetFocus();

if( GetCursorPos( &MousePos ) ) //マウスのスクリーン座標取得
{
  if( ScreenToClient( EditHwnd, &MousePos ) ) //マウスのクライアント座標取得
  {
    //ダブルクリックメッセージを送る
    SendMessage( hWnd, WM_LBUTTONDBLCLK, 0, (LPARAM)&MousePos );
  }
}

kazuma 2001/11/02(金) 23:49:42
> SendMessage( hWnd, WM_LBUTTONDBLCLK, 0, (LPARAM)&MousePos );

MSDN をよく読んでください。
lParam に渡すのは POINT へのポインタではありません。
下位ワードにx座標、上位ワードにy座標を入れて渡します。

anon 2001/11/03(土) 15:24:22
その前にマルチポストするなよ。
本気で失礼じゃないか?

ペンぐ〜 2001/11/05(月) 09:27:41
[[解決]]
kazumaさん、レスありがとうございます。
無事解決しました。
anonさん、そのことは本当にすみません。
どうしても、急いで複数の方法を調査して、報告しなければいけなかったために
2箇所にポストしてしまいました。
今後は気をつけます。
ご助言ありがとうございました。

古いスレッドには追加発言できません。