2010-10-17 97 views
1

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

鉴于在该选项卡中的子窗口的每个区域似乎被认为是客户区,处理WM_LBUTTONDOWN而看上去产生预期的效果(见下文):

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

哪里mainWnd.hWnd是父窗口句柄(hWnd是设计的窗口属性帮助类的成员)

尽管这会产生所需的效果,更合适的解决方案?

回答

1

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

WS_EX_TRANSPARENT与窗口如何绘制afaik有关。