Для других на этой странице, интересующихся, что такое правильный синтаксис (как и я) для явной специализированности шаблонов (или, по крайней мере, в 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>;
Захват мыши. Когда объект захватывает мышь, все связанные с мышью события обрабатываются так, как будто объект с захватом мыши выполняет событие, даже если указатель мыши находится над другим объектом.
Я обычно получаю родительское окно и добавляю обработчик предварительного просмотра, даже если он уже обработан. Иногда, когда MouseCapture недостаточно, эта техника оказывается полезной:
Window.GetWindow(this).AddHandler
(
UIElement.MouseDownEvent,
(MouseButtonEventHandler)TextBox_PreviewMouseDown,
true
);
Я бы подошел к этому по-другому - форма, содержащая элемент управления, удаляет фокус с элемента управления, когда пользователь нажимает на другую часть формы.
Наличие элемента управления на самом деле потеря фокуса намного чище, чем попытка заставить элемент управления «симулировать» потерю фокуса в определенных ситуациях, хотя на самом деле это не так. Имейте в виду, что если элемент управления не потерял фокус, он все равно будет принимать такие вещи, как ввод с клавиатуры.