テキストボックスからWM_MOUSELEAVE
メッセージを取り消す方法はありますか?テキストボックスからMouseLeaveメッセージを取り消す
私はそれの上に別のコントロールを直接持っています(私はWindows描画の境界線を取得しようとしています)。私は手動でそのコントロールのMouseMove
イベントでWM_MOUSEMOVE
を呼び出して、テキストボックスの周りにエアロブルーの境界線が点灯するようにしています。 Spy ++を使用すると、私はまだその境界にいるにもかかわらず、その発砲WM_MOUSELEAVE
を見る。そのため、青い枠線がちらつきで消える/再表示されます。
編集私は@ジェローンの答えを試してみましたが、ちらつきを軽減しましたが、まだ輝きを保つことができない、または長すぎます。
if (m.Msg == (int)Win32Api.WindowsMessages.MouseLeave)
{
var mousePosition = PointToClient(MousePosition);
if (mousePosition.X < 0 || mousePosition.X > Width ||
mousePosition.Y < 0 || mousePosition.Y > Height)
base.WndProc(ref m);
return;
}
base.WndProc(ref m);
あなたはmessageloop(WndProc)にフックしましたか? – Jeroen
コントロールのフォーカスを設定しても同じ効果が得られますか? – Mehran
@Mehran - 私はすでに焦点を設定しました。これは、ユーザーがテキストボックスの上を移動しても、フォーカスを合わせないときです。 –