现在有一个不规则的对话框窗体,并且也没有resize-border,问如何改变它的大小?
我用setwindowrgn创建的,并且也没有resize-border,我现在想改变的大小,问如何去做?我看过有的软件就是这样。realone等
我找了一些例子,都是自己计算的。我想问问有没有好方法?
我现在是在OnNcHitTest中可以绘制方向鼠标,但是下一步我就不知道如何去做了
非常感谢!!!
UINT CPlayListDlg::OnNcHitTest(CPoint point)
{
//
CRect rtclient;
GetClientRect(&rtclient);
ScreenToClient(&point);
/* 得到边角的8个resize区域 */
CRect lefttop(0, 0, 5, 5);
CRect top(5, 0, rtclient.Width()-5, 5);
CRect righttop(rtclient.Width()-5, 0, rtclient.Width(), 5);
CRect right(rtclient.Width()-5, 5, rtclient.Width(), rtclient.Height()-5);
CRect bottomright(rtclient.Width()-5, rtclient.Height()-5, rtclient.Width(), rtclient.Height());
CRect bottom(5, rtclient.Height()-5, rtclient.Width()-5, rtclient.Height());
CRect bottomleft(0, rtclient.Height()-5, 5, rtclient.Height());
CRect left(0, 5, 5, rtclient.Height()-5);
if (lefttop.PtInRect(point)) {
return HTTOPLEFT;
} else if (top.PtInRect(point)) {
return HTTOP;
} else if (righttop.PtInRect(point)) {
return HTTOPRIGHT;
} else if (right.PtInRect(point)) {
return HTRIGHT;
} else if (bottomright.PtInRect(point)) {
return HTBOTTOMRIGHT;
} else if (bottom.PtInRect(point)) {
return HTBOTTOM;
} else if (bottomleft.PtInRect(point)) {
return HTBOTTOMLEFT;
} else if (left.PtInRect(point)) {
return HTLEFT;
}
return CDialog::OnNcHitTest(point);
}
我找了一些例子,都是自己计算的。我想问问有没有好方法?
我现在是在OnNcHitTest中可以绘制方向鼠标,但是下一步我就不知道如何去做了
非常感谢!!!
UINT CPlayListDlg::OnNcHitTest(CPoint point)
{
//
CRect rtclient;
GetClientRect(&rtclient);
ScreenToClient(&point);
/* 得到边角的8个resize区域 */
CRect lefttop(0, 0, 5, 5);
CRect top(5, 0, rtclient.Width()-5, 5);
CRect righttop(rtclient.Width()-5, 0, rtclient.Width(), 5);
CRect right(rtclient.Width()-5, 5, rtclient.Width(), rtclient.Height()-5);
CRect bottomright(rtclient.Width()-5, rtclient.Height()-5, rtclient.Width(), rtclient.Height());
CRect bottom(5, rtclient.Height()-5, rtclient.Width()-5, rtclient.Height());
CRect bottomleft(0, rtclient.Height()-5, 5, rtclient.Height());
CRect left(0, 5, 5, rtclient.Height()-5);
if (lefttop.PtInRect(point)) {
return HTTOPLEFT;
} else if (top.PtInRect(point)) {
return HTTOP;
} else if (righttop.PtInRect(point)) {
return HTTOPRIGHT;
} else if (right.PtInRect(point)) {
return HTRIGHT;
} else if (bottomright.PtInRect(point)) {
return HTBOTTOMRIGHT;
} else if (bottom.PtInRect(point)) {
return HTBOTTOM;
} else if (bottomleft.PtInRect(point)) {
return HTBOTTOMLEFT;
} else if (left.PtInRect(point)) {
return HTLEFT;
}
return CDialog::OnNcHitTest(point);
}
...全文
相关推荐
python opencv 批量改变图片的尺寸大小的方法
主要介绍了python opencv 批量改变图片的尺寸大小的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
jquery ui resize 中border-box的bug修正
本文给大家分享的是jQuery ui resize中的一个样式的小bug的解决方法,官方并没有修复,这里推荐给大家,有需要的小伙伴可以参考下。
纯CSS实现左右拖拽改变布局大小
利用浏览器非overflow:auto元素设置resize可以拉伸的特性实现无JavaScript的分栏宽度控制。 webkit浏览器下滚动条可以自定义,其中resize区域大小就是scrollbar的大小,于是,我们可以将整个拉伸区域变成和容器一样高。 实现原理 CSS中有一个resize属性,如果一个元素的overflow属性值不是visible,则通过设置resize属性可以拉伸这个元素尺寸。 但是,这种拉伸却有一个问题,那就是拖拽的区域太小了,就右下角那么一丢丢地方: 那有什么办法可以把这个拖拽区域变大呢? 后来经过我的研究发现,resize属性的拖拽bar和滚动条的拖拽bar是一
无边框窗口的resize拖动实现
vs2013 无边框窗口的resize拖动的实现
CSS3的resize属性使用初探
主要介绍了CSS3的resize属性使用,是CSS3入门学习中的基础知识,需要的朋友可以参考下


