Как элемент управления может обрабатывать щелчок мыши вне этого элемента управления?

Для других на этой странице, интересующихся, что такое правильный синтаксис (как и я) для явной специализированности шаблонов (или, по крайней мере, в VS2008), его следующее ...

В вашем .h-файле. ..

template<typename T>
class foo
{
public:
    void bar(const T &t);
};

И в вашем .cpp файле

template <class T>
void foo<T>::bar(const T &t)
{ }

// Explicit template instantiation
template class foo<int>;
24
задан Justin 20 July 2011 в 12:23
поделиться

3 ответа

Захват мыши. Когда объект захватывает мышь, все связанные с мышью события обрабатываются так, как будто объект с захватом мыши выполняет событие, даже если указатель мыши находится над другим объектом.

13
ответ дан Dmytro Laptin 20 July 2011 в 12:23
поделиться

Я обычно получаю родительское окно и добавляю обработчик предварительного просмотра, даже если он уже обработан. Иногда, когда MouseCapture недостаточно, эта техника оказывается полезной:

Window.GetWindow(this).AddHandler
(
    UIElement.MouseDownEvent,
    (MouseButtonEventHandler)TextBox_PreviewMouseDown,
    true
);
1
ответ дан Mauro Sampietro 20 July 2011 в 12:23
поделиться

Я бы подошел к этому по-другому - форма, содержащая элемент управления, удаляет фокус с элемента управления, когда пользователь нажимает на другую часть формы.

Наличие элемента управления на самом деле потеря фокуса намного чище, чем попытка заставить элемент управления «симулировать» потерю фокуса в определенных ситуациях, хотя на самом деле это не так. Имейте в виду, что если элемент управления не потерял фокус, он все равно будет принимать такие вещи, как ввод с клавиатуры.

0
ответ дан Justin 20 July 2011 в 12:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: