お聞きしたいことは、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 );
}
}
> SendMessage( hWnd, WM_LBUTTONDBLCLK, 0, (LPARAM)&MousePos );
MSDN をよく読んでください。
lParam に渡すのは POINT へのポインタではありません。
下位ワードにx座標、上位ワードにy座標を入れて渡します。
その前にマルチポストするなよ。
本気で失礼じゃないか?
kazumaさん、レスありがとうございます。
無事解決しました。
anonさん、そのことは本当にすみません。
どうしても、急いで複数の方法を調査して、報告しなければいけなかったために
2箇所にポストしてしまいました。
今後は気をつけます。
ご助言ありがとうございました。