【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;
}    

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM