关于VS2013非客户区问题
如图,到底哪儿才是非客户区的边界,还有在使用WM_NCCALCSIZE这个消息来改变边框大小的时候到底改变的是哪个边框编程是我的最爱 白色以外是非客户区 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;
但是添加了这段代码后边框没有了,而且窗口的大小也不能拖动了,这是怎么回事啊,求解
你可以使用Dwm系列函数来修改边框大小 编程是我的最爱 好难哦,佩服!
页:
[1]