dycaly 发表于 2015-4-25 18:20:28

关于VS2013非客户区问题

如图,到底哪儿才是非客户区的边界,还有在使用WM_NCCALCSIZE这个消息来改变边框大小的时候到底改变的是哪个边框

myqicq 发表于 2015-4-25 22:29:30

编程是我的最爱

likeangel 发表于 2015-4-26 02:46:26

freeparty 发表于 2015-4-26 08:35:37

白色以外是非客户区

dycaly 发表于 2015-4-26 14:52:40

freeparty 发表于 2015-4-26 08:35
白色以外是非客户区

那我在用CreateWindowEX创建窗口不加case WM_NCCALCSIZE:
的时候的窗口是
而如果我就加一个case WM_NCCALCSIZE: break;什么也不做,为什么窗口就变成了
其实我是想改变一下边框大小的
case WM_NCCALCSIZE:
                int nCxSizeFrame, nCySizeFrame;
                nCxSizeFrame = GetSystemMetrics(SM_CXSIZEFRAME);
                nCySizeFrame = GetSystemMetrics(SM_CYSIZEFRAME);
                ((LPNCCALCSIZE_PARAMS)lParam)->rgrc.left -= nCxSizeFrame;
                ((LPNCCALCSIZE_PARAMS)lParam)->rgrc.right += nCxSizeFrame;
                ((LPNCCALCSIZE_PARAMS)lParam)->rgrc.top -= nCySizeFrame;
                ((LPNCCALCSIZE_PARAMS)lParam)->rgrc.bottom += nCySizeFrame;
                ((LPNCCALCSIZE_PARAMS)lParam)->rgrc.left += 3;
                ((LPNCCALCSIZE_PARAMS)lParam)->rgrc.right -= 3;
                ((LPNCCALCSIZE_PARAMS)lParam)->rgrc.top += 3;
                ((LPNCCALCSIZE_PARAMS)lParam)->rgrc.bottom -=3;
但是添加了这段代码后边框没有了,而且窗口的大小也不能拖动了,这是怎么回事啊,求解
               

freeparty 发表于 2015-4-26 16:02:29

你可以使用Dwm系列函数来修改边框大小

myqicq 发表于 2015-4-26 22:12:36

编程是我的最爱

myqicq 发表于 2015-4-27 00:02:29

好难哦,佩服!

likeangel 发表于 2015-4-27 02:36:05

页: [1]
查看完整版本: 关于VS2013非客户区问题