VC 无标题栏对话框移动(在OnLButtonDown里再次发送消息)

操作系统:Windows 7
软件环境:Visual C++ 2008 SP1
本次目的:实现无框移动

所谓的无标题栏对话框,是基于对话框的工程,对话框属性Border设置为None,对话框如下所示:

为对话框添加左键点击事件,代码如下:

[cpp] view plain copy

  1. void CPlayerDlg::OnLButtonDown(UINT nFlags, CPoint point)
  2. {
  3. // TODO: 在此添加消息处理程序代码和/或调用默认值
  4. SendMessage(WM_SYSCOMMAND,0xF012,0);
  5. CDialog::OnLButtonDown(nFlags, point);
  6. }

完成后,就可以拉动对话框移动。

http://blog.csdn.net/akof1314/article/details/4887773

时间: 2024-10-24 03:29:41

VC 无标题栏对话框移动(在OnLButtonDown里再次发送消息)的相关文章

MFC无标题栏对话框移动的处理方法

很多时候,为了界面的美观,我们会隐藏标题栏,而在客户区通过自绘模拟标题栏.但是这样处理,会导致窗体无法移动.下面提供几种移动方法: 1.采用欺骗的方式.即当鼠标点击客户区的时候,我们欺骗windows,让windows认为我们点击在了标题栏,这样,拖动过程就通过windows进行处理了.因此可以大大减少我们的代码量.具体方法如下: 响应鼠标左键按下消息WM_LBUTTONDOWN,相应函数中,直接发送欺骗消息: PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, M

MFC小知识一:将对话框设置为无边框无标题栏初始最大化样式

今天公司新开始的一个项目.界面模式为无边框无标题栏初始最大化样式.其实本来可以直接在属性里面将默认的Resizing换成none就可以了,那么我想如何用代码来实现呢?于是就百度了一下.找到了两种方式,但其实两种方式思想是一样的.即修改样式--ModifyStyle.直接将以下代码加在OnInitDialog()即可实现. 第一种: 1 // 去掉标题栏 2 ModifyStyle(WS_CAPTION, 0); 3 // 去掉边框 4 ModifyStyleEx(WS_EX_DLGMODALFR

MFC中无标题栏窗口的移动

原文链接: http://blog.sina.com.cn/s/blog_6288219501015dwa.html 移动标准窗口是通过用鼠标单击窗口标题条来实现的,但对于没有标题条的窗口,就需要用鼠标单击窗口标题条以外区域来移动窗口.有两种方法可以达到这一目标. 方法一:当窗口确定鼠标位置时,Windows向窗口发送WM_NCHITTEST消息,可以处理该消息,使得只要鼠标在窗口内,Windows便认为鼠标在标题条上.这需要重载CWnd类处理WM_NCHITTEST消息的OnNcHitTest

关于无标题栏窗口拖动的问题

要使无标题栏窗口实现拖动效果,除了处理OnNCHitTest()函数外:就是在OnLButtonDown()函数中发送虚假消息了. 但是,这儿得注意一下,在OnLButtonDown()函数中如果使用SetCapture()函数后再::SendMessage(m_hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0);是不会成功的!必须去掉或在之后使用. void XWindow::OnLButtonDown(UINT nFlags, CPoint point) { XCon

ARM Linux Qt 5.x.x 无标题栏

/********************************************************************************* * ARM Linux Qt 5.x.x 无标题栏 * 说明: * 以前Qt 4.x.x版本是直接有标题栏,但现在的Qt 5.x.x没有了标题栏,从参考文章里 * 可以看出,是需要另外移植窗口管理器的. * * 2017-1-6 深圳 南山平山村 曾剑锋 ***************************************

Android实现无标题栏全屏的三种方法

一.通过Java代码 在setContentView之前执行: requestWindowFeature(Window.FEATURE_NO_TITLE);//隐藏标题栏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//隐藏状态栏 二.调用Android自带的Theme 直接在AndroidManifest.xml中需要全屏显

C#实现无标题栏窗体点击任务栏图标正常最小化或还原的解决方法

对于无标题栏窗体,也就是FormBorderStyle等于System.Windows.Forms.FormBorderStyle.None的窗体,点击任务栏图标的时候,是不能象标准窗体那样最小化或还原的.把下面的代码加到你的Form实现类中,即可实现点击任务栏图标正常最小化或还原窗体. [c-sharp] view plain copy protected override CreateParams CreateParams { get { const int WS_MINIMIZEBOX =

vc中改变对话框的背景色

---- 笔者曾在<软件报>2000年第5期中讨论过如何改变控件的颜色,但还有相当一部分的读者来信提问:一个基于对话框的MFC AppWizard应用程序中,如何改变对话框的背景颜色呢?对于这个问题,其实可以由几种不同的方法来实现,具体如下(粗斜体代码为增添的): ---- 方法一:调用CWinApp类的成员函数SetDialogBkColor来实现. ---- 其中函数的第一个参数指定了背景颜色,第二个参数指定了文本颜色.下面的例子是将应用程序对话框设置为蓝色背景和红色文本,步骤如下: --

无边框对话框拖动改变大小的实现总结

相同是项目遇到的问题,要求是无边框的对话框要实现鼠标的拖动改变大小.无边框对话框跟有边框的实现肯定不一样喽. 我上网搜到一种方法是: 须要处理下面这三个消息: WM_NCHITTEST  WM_SETCURSOR  WM_NCLBUTTONDOWN  消息处理函数: UINT CXXXDlg::OnNcHitTest(UINT nHitTest, CPoint point) { CRect rect; GetWindowRect(&rect); if(point.x <= rect.left