Примечания: Я пытаюсь РЕШИТЬ ПРОБЛЕМУ МЫШИ, НЕ КЛАВИАТУРА проблема, которая уже решенаElementHost событие блоков мыши
Так я создаю визуальное расширение студии 2015, работая на страницах Options.
Я использую WPF, поэтому я использую ElementHost для размещения UserControl. Сначала он не получал события клавиатуры, поэтому я реализовал решение на:
WPF TextBox not accepting Input when in ElementHost in Window Forms
быстренько решения:
А) на нагруженной событии UserControl, я делать:
var s = HwndSource.FromVisual(this) as HwndSource;
s?.AddHook(ChildHwndSourceHook);
B) В ChildHwndSourceHook(), я что-то вроде:
static IntPtr ChildHwndSourceHook(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
{
if (msg == WM_GETDLGCODE)
{
handled = true;
return new IntPtr(DLGC_WANTCHARS | DLGC_WANTARROWS | DLGC_HASSETSEL | DLGC_WANTTAB);
}
return IntPtr.Zero;
}
ОДНАКО, теперь мышь над событиями, кажется, игнорируется, поскольку курсор не изменяется при перемещении по текстовым полям или разделителям разделов, даже в новых Windows, которые я создаю. Очень часто, однако, события мыши действительно работают и продолжают работать, пока я не перейду на другую страницу или не закрою диалог. Это самая странная часть.
Я пробовал все и ежедневно просматривал Google, но я не понимаю, почему клики работают нормально, но мышь над событиями, похоже, не регистрируется.
Я попытался удалить обработчик сообщения, а затем открыть окно, но, похоже, после добавления обработчика его удаление ничего не исправит.
Кто-нибудь знает, как я могу навести курсор мыши на события, чтобы работать с моими элементами управления? Спасибо!
Кусок кода, который не делает то, что он должен использовать. – JeffRSon