【MFC】无边框窗体 WS_THICKFRAME

1.没有WS_THICKFRAME,有WS_SYSMENU,就没办法通过相应WM_NCHITTEST,去处理窗口的缩放。
2.没有WS_THICKFRAME,也没有WS_SYSMEN,在xp系统下任务栏就没有右键菜单弹出。

所以呢,没有WS_THICKFRAME会带来一些不必要的麻烦。但是有WS_THICKFRAME无边框又不行了。

那么给出的解决方案是:

响应WM_NCCALCSIZE消息,对消息进行截获处理

LRESULT OnNcCalcSize( UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/ )
{
    NCCALCSIZE_PARAMS* lpncsp = (NCCALCSIZE_PARAMS*)lParam;

    if((BOOL)wParam)
    {
        lpncsp->rgrc[2] = lpncsp->rgrc[1];
        lpncsp->rgrc[1] = lpncsp->rgrc[0];
    }
    return TRUE;
}    

 

posted on 2016-08-15 10:43  梦琪小生  阅读(4358)  评论(0编辑  收藏  举报

导航