C# 无窗体的窗口移动

using System.Runtime.InteropServices;

       public frmMain()
        {
            InitializeComponent();
            this.MouseDown += frmMain_MouseDown;
          //this.ListBox.MouseDown += frmMain_MouseDown;
        }

        //常量
        public const int WM_SYSCOMMAND = 0x0112;

        //窗体移动
        public const int SC_MOVE = 0xF010;
        public const int HTCAPTION = 0x0002;

        //改变窗体大小
        public const int WMSZ_LEFT = 0xF001;
        public const int WMSZ_RIGHT = 0xF002;
        public const int WMSZ_TOP = 0xF003;
        public const int WMSZ_TOPLEFT = 0xF004;
        public const int WMSZ_TOPRIGHT = 0xF005;
        public const int WMSZ_BOTTOM = 0xF006;
        public const int WMSZ_BOTTOMLEFT = 0xF007;
        public const int WMSZ_BOTTOMRIGHT = 0xF008;

        [DllImport("user32.dll")]
        public static extern bool ReleaseCapture();

        [DllImport("user32.dll")]
        public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);

        private void frmMain_MouseDown(object sender, MouseEventArgs e)
        {
            ReleaseCapture();
            SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
        }
时间: 2024-08-04 18:00:11

C# 无窗体的窗口移动的相关文章

c# 鼠标在控件上拖动 移动窗体 移动窗口

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 #region 移动窗体 移动窗口 private Point _mousePoint; private int topA(Control cc) {     if (cc == null || cc == this) return 0;     if (cc.Parent == null ||

关于创建无窗体程序的一点心得

这2天在写一个工作统计的小东西, 设计思路是创建一个只有托盘图标的程序, 无主窗体, 唯一查看窗体都是动态创建关闭销毁的 使用Delphi自带的TrayIcon控件在DataModule里创建托盘, 由于没有主窗体, 所以设置Application.MainFormOnTaskbar := False; 在查看窗体显示后, 无论点关闭还是最小化都要求关闭窗体, 点击任务栏按钮也一样 但是运行后检查实际效果发现, 任务栏按钮没有反应, 而显示出的窗体在点击最小化以后是缩小到桌面左下角 经过一系列跟

HTML,CSS 无边框桌面窗口

1. [图片] htmlui.jpg ?2. [代码]下面源码复制到快手(WWW.AAU.CN)中运行即可     import win.ui;/*DSG{{*/var winform = ..win.form( bottom=399;text="HTMLayout - 无边框窗口";border="none";right=599 )winform.add(  )/*}}*/ import win.util.round;win.util.round(winform,

WPF:鼠标长时间无操作,窗口隐藏

//设置鼠标长时间无操作计时器 private System.Timers.Timer MouseTimerTick = new System.Timers.Timer(10000); private void Window_Activated(object sender, EventArgs e) { this.Dispatcher.Invoke(new Action(() => { //显示 })); MouseTimerTick.Stop(); } private void Window_

C#创建无窗体的应用程序

示例程序 这是初学C#时困惑了很久才解决的问题,突然想起来拿出来和大家分享. 当初我是这样做的: 1.      在窗体初始化时(构造函数里面),添加一句This.Visible = false; 2.      窗体初始大小设定为非常小,并且放到屏幕一个不起眼的角落 然而这样并没有解决问题.因为程序启动时总会闪出一现窗体.于是去Program.cs里面改Main函数(C#工程首先进行的static Main函数在工程属性->Application->Startup object里面可以设定,

无Border可移动窗体

1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 10 namespace NoBoarder 11 { 12 public partial cl

【MFC】父窗口 WS_CLIPCHILDREN 样式 对子窗口刷新的影响 与 窗体区域绘制问题WS_CLIPCHILDREN与WS_CLIPSIBLINGS

如何在MFC创建的程序中更改主窗口的属性 摘自:http://blog.sina.com.cn/s/blog_4bebc4830100aq1m.html 在MFC创建的单文档界面中: (基于对话框的,直接在对话框的类向导中的虚函数里边添加PreCreateWindow函数,但是实际上有没有用就没有试过.望试验的告知,谢谢.) 在CMainFrame::PreCreateWindow(CREATESTRUCT& cs)中添加下面的代码可以固定窗口大小 cs.style = WS_OVERLAPPE

【异形窗体】完美实现无毛边异形窗体

实现效果图1:实现效果图2:实现效果图3: 异形窗体的实现思路(一).采用UpdateLayeredWindow这个api函数基于Png图alpha通道绘制异形窗口           优点:真正意义上的异形窗口           缺点:用了WS_EX_LAYERED后当前窗体不处理paint事件,所以窗体上无法绘制控件,但这个控件确存在,而且可以响应事件 解决无法绘制控件方法:              1.思路:              采用双层窗口:底层背景窗口层与顶层控件层,用控件层

C# WPF 建立无边框(标题栏)的登录窗口

前言:笔者最近用c#写WPF做了一个项目,此前未曾做过完整的WPF项目,算是一边学一边用,网上搜了不少资料,效率当然是不敢恭维的,有时会在一些很简单的问题上纠结很长时间,血与泪的教训可不少. 不过,正如电视剧某榜里的一句话:既然我活了下来,就不会白白活着!笔者怎么也算挣扎过了,有些经验与教训可以分享,趁着记忆深刻总结写下来.希望后来者少走弯路,提高工作效率.如果有写得不好的地方,希望读者能够指正,一起进步! --------------------------------- 今天先从登录窗口说起