gpt4 book ai didi

c++ - WM_NCHITTEST 和主监视器左侧的辅助监视器

转载 作者:太空宇宙 更新时间:2023-11-04 12:25:26 25 4
gpt4 key购买 nike

所描述的第 2 个显示器位于主显示器左侧的设置导致 WM_NCHITTEST 发送负值,根据 this 显然不支持该负值发布。

我有一个用 win32 编写的自定义控件,它类似于组控件。它有一个小的可点击区域。当包含自定义控件的窗口位于主监视器左侧的第二个监视器上时,我的控件没有鼠标事件。 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;

最佳答案

您必须使用 GET_X_LPARAM和 GET_Y_LPARAM 宏来提取鼠标坐标。与 LOWORD 等人不同,它们将正确返回负值。返回无符号值。

POINT Pt = { GET_X_LPARAM(lP), GET_Y_LPARAM(lP) };

其余的代码应该没问题。

关于c++ - WM_NCHITTEST 和主监视器左侧的辅助监视器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2782311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com