gpt4 book ai didi

C++ WINAPI : Client area parent dragging with obscuring child tab windows

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

尝试通过在 WM_NCHITTEST 下返回 HTCAPTION 来模拟基于客户区的窗口拖动(不包括 HTCLIENT 和适当的区域)在与父窗口一起使用时完美地工作 - 但是存在子窗口,例如选项卡占位符窗口,即使设置为扩展样式 WS_EX_TRANSPARENT,导致单击无法将 WM_NCHITTEST 消息传递到父窗口(并尝试以类似的方式处理本地 WM_NCHITEST 消息会产生将子窗口拖动到父窗口周围而不是父窗口本身的预期效果)。

鉴于该选项卡子窗口中的每个区域似乎都被视为客户区,处理 WM_LBUTTONDOWN 似乎产生了预期的效果(见下文):

    case WM_LBUTTONDOWN: {
SendMessage(mainWnd.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, lParam);
break;
}

其中mainWnd.hWnd是父窗口句柄(hWnd是设计好的窗口属性助手类的成员)

虽然这产生了预期的效果,但我对 WS_EX_TRANSPARENT 是否真的意味着允许点击传递到底层窗口以及是否有更合适的解决方案感到困惑?

最佳答案

您是否尝试过从选项卡控件的 WM_NCHITTEST 返回 HTTRANSPARENT?我认为应该将消息传播到父窗口。

WS_EX_TRANSPARENT 与窗口的绘制方式有关。

关于C++ WINAPI : Client area parent dragging with obscuring child tab windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3953243/

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