Окно Win32 хоста WPF заморожено из-за нескольких WM_NCHITTEST при наведении мыши на правый нижний угол

У меня есть окно WPF, в котором размещается окно Win32, у меня есть класс, унаследованный от HwndHost.

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

Я использовал Spy++, чтобы увидеть, что происходит. Оказывается, что окно WPF получает несколько сообщений WM_WINDOWPOSCHANGING каждые 2-3 секунды, а окно Win32 постоянно получает много WM_NCHITTEST.

Как я могу решить эту проблему? Спасибо.

1 ответ

Я нашел решение, установив размер окна Win32 на 1 пиксель (и ширину, и высоту) меньше, чем окно хоста WPF, проблема исчезла.

Я думаю, это связано с тем, что окна Win32 и WPF совместно использовали одну и ту же не-клиентскую область и сообщения зацикливались.

Другие вопросы по тегам