在上一篇文章中,我们讲述了如何进行无边框窗口的缩放与拖动,而在一些情况下,我们的窗口只需要进行拖动也不需要改变其大小,比如:QQ的登录窗口。本来在上一篇文章中已经讲述了如何进行窗口的拖动,但是却与窗口的缩放相关的程序放在一起,下面专门单独分离出来。
窗口的拖放只涉及到鼠标事件:按下操作、释放操作和移动操作,因此只需要重写这三个函数。由于程序比较简单,并且注释也比较详细,就不作...
分类:
其他好文 时间:
2014-08-25 11:56:24
阅读次数:
175
在现在,绝大多数软件都向着简洁,时尚发展。就拿有道的单词本和我做的单词本来说,绝大多数用户肯定喜欢我说做的单词本(关于颜色搭配,大家就不要在意了)。
有道的单词本:
我所做的单词本:
很明显,两者的主要区别就是周围的边框问题。你可以对比QQ以前的版本和这几年的版本,就会发现都倾向于下面这种窗口模式。下面我们就说说如何用
Qt实现无边框窗口的缩...
分类:
其他好文 时间:
2014-08-22 16:17:39
阅读次数:
308
目标实现像迅雷那样炫酷的悬浮窗。计划&方案首先第一步要实现一个悬浮窗,窗体无边框,能够随意拖动。对于一个窗体来说,只有我们把鼠标放到标题栏中才进入到拖拽模式。由于是无边框的窗体,默认是不能够移动的。我们尝试用两种办法使其跟随鼠标移动。一个是用OnNcHitTest函数,另一个是在OnLButtonDown时发消息。实践一、 OnNcHitTest方案这个CWnd类的一个方法,我们可以捕捉鼠标点...
分类:
编程语言 时间:
2014-08-21 15:02:44
阅读次数:
270
同样是项目遇到的问题,要求是无边框的对话框要实现鼠标的拖动改变大小。无边框对话框跟有边框的实现肯定不一样喽。
我上网搜到一种方法是:
需要处理以下这三个消息:
WM_NCHITTEST WM_SETCURSOR WM_NCLBUTTONDOWN
消息处理函数:
UINT CXXXDlg::OnNcHitTest(UINT...
分类:
其他好文 时间:
2014-08-21 09:51:52
阅读次数:
236
int cx; int cy; private void btnClose_Click(object sender, EventArgs e) { this.Close(); } private void btnClose_MouseLeave(object sender, EventAr...
分类:
移动开发 时间:
2014-08-20 16:04:02
阅读次数:
222
这个版本的qt在这里有点bug。。设置ApplicationWindow的flags属性为Qt.FramelessWindowHint的确可以使程序无边框,但是同时程序在任务栏的图标也没了。看文档发现ApplicationWindow 是由 QQuickWindow 实现的,QQuickWindow...
分类:
移动开发 时间:
2014-08-06 22:27:42
阅读次数:
899
经常遇到这种情况、窗体的边框去掉了、然后种种问题就出来了:不能拖动、不能改变窗体大小、不能......当然、肯定有解决方案滴*^_^*今天的目标就是:可以直接拖动没有边框的窗体、可以直接拉拽窗体改变其大小、制作步骤如下:新建WinForm程序、添加一个启动的窗体、将其边框设置为None、进入代码编辑...
AllowsTransparency帮助实现非矩形窗口的创建,以下可以实现完全无边框WindowStyle="None" AllowsTransparency="True" Background="Transparent"
分类:
其他好文 时间:
2014-07-14 14:36:57
阅读次数:
185
1.设置对话框为无边框方法
ModifyStyle(WS_CAPTION | WS_THICKFRAME, 0, SWP_FRAMECHANGED);
2.设置控件灰色与不灰色
void CMthread1Dlg::OnStop()
{
// TODO: Add your control notification handler code here
m_bRun = FA...
方法一:通过重载消息处理实现。鼠标的拖动只对窗体本身有效,不能在窗体上的控件区域点击拖动/// /// 通过重载消息处理实现。重写窗口过程(WndProc),处理一些非客户区消息(WM_NCxxxx), /// C#中重写窗口过程不用再调用SetWindowLong A...