Описанная установка со вторым монитором слева от первичной причины заставляет WM_NCHITTEST отправлять отрицательные значения, которые явно не поддерживаются согласно этой записи.
У меня есть пользовательский элемент управления, написанный на win32, который похож на групповой элемент управления. У него небольшая кликабельная область. События MOUSE не приходят к моему элементу управления, когда окно, содержащее пользовательский элемент управления, находится на втором мониторе слева от основного монитора. SPY ++ показывает сообщения WM_NCHITTEST, но не сообщения мыши. Когда окно перемещается на основной монитор или вспомогательный монитор располагается справа от основного (все точки положительные), тогда все работает нормально. Ниже описано, как обрабатывается WM_NCHITTEST в моем пользовательском элементе управления. В общем, мне нужно вернуть HTTRANSPARENT, чтобы не затемнять другие элементы управления, размещенные внутри него. У кого-нибудь есть какие-либо предложения о том, что мне нужно сделать прикольный перевод координат и что вернуть в ответ на WM_NCHITTEST, чтобы сообщения мыши были переведены и отправлены моему контролю в случае, если он находится на втором мониторе, расположенном слева от основного монитора?
case WM_NCHITTEST:
{
POINT Pt = {LOWORD(lP), HIWORD(lP)};
int i;
ScreenToClient (hWnd, &Pt);
if (PtInRect (&rClickableArea, Pt))
{
return(DefWindowProc( hWnd, Msg, wP, lP ));
}
}
lReturn = HTTRANSPARENT;
break;