Unity 去边框 并实现拖拽窗口
来源:互联网 发布:微信呼死你软件免费版 编辑:程序博客网 时间:2024/05/23 02:06
自己前一段时间一直查找相关资料、一直都没有,百度出来的都是一模一样的最大化、最小化、无边框的功能,就是没有拖拽的功能,自己搞定了就贴代码出来,省的其它程序员走弯路。
直接上代码,看注释。看不懂的就留言吧。
using UnityEngine;using System.Collections;using System; using System.Runtime.InteropServices; using UnityEngine.UI;public class popuxxx : MonoBehaviour { public Rect screenPosition; [DllImport("user32.dll")] static extern IntPtr SetWindowLong (IntPtr hwnd,int _nIndex ,int dwNewLong); [DllImport("user32.dll")] static extern bool SetWindowPos (IntPtr hWnd, int hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags); [DllImport("user32.dll")] static extern IntPtr GetForegroundWindow (); [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dll")] public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam); [DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr hwnd, int nCmdShow); const uint SWP_SHOWWINDOW = 0x0040; const int GWL_STYLE = -16; const int WS_BORDER = 1; const int WS_POPUP = 0x800000; const int SW_SHOWMINIMIZED = 2; //{最小化, 激活} const int SW_SHOWMAXIMIZED = 3; //{最大化, 激活} public void btn_onclick(){ //最小化 ShowWindow(GetForegroundWindow(), SW_SHOWMINIMIZED ); } public void btn_onclickxx(){ //最大化 ShowWindow(GetForegroundWindow(),SW_SHOWMAXIMIZED); } IntPtr Handle; float xx; bool bx; void Start () { bx = false; xx = 0f; #if UNITY_STANDALONE_WIN Resolution[] r = Screen.resolutions; screenPosition = new Rect ((r[r.Length-1].width-Screen.width)/2,(r[r.Length-1].height-Screen.height)/2,Screen.width,Screen.height); SetWindowLong(GetForegroundWindow (), GWL_STYLE, WS_POPUP);//将网上的WS_BORDER替换成WS_POPUP Handle = GetForegroundWindow (); //FindWindow ((string)null, "popu_windows"); SetWindowPos (GetForegroundWindow (), 0,(int)screenPosition.x,(int)screenPosition.y, (int)screenPosition.width,(int) screenPosition.height, SWP_SHOWWINDOW); #endif } void Update(){ #if UNITY_STANDALONE_WIN if (Input.GetMouseButtonDown (0)) { xx =0f; bx=true; } if(bx && xx>=0.3f ){ //这样做为了区分界面上面其它需要滑动的操作 ReleaseCapture(); SendMessage(Handle, 0xA1, 0x02, 0); SendMessage(Handle, 0x0202, 0, 0); } if(bx) xx +=Time.deltaTime; if(Input.GetMouseButtonUp(0)){ xx =0f; bx=false; } #endif }}
0 0
- Unity 去边框 并实现拖拽窗口
- Unity 程序去边框并实现拖拽窗口
- Winform窗口去边框实现可以移动
- Qt去边框,可以实现拉大缩小窗口。
- QT 窗口设置成无边框并实现拖动
- 隐藏QT窗口边框 并且在隐藏后实现窗口拖拽 同时实现透明度
- 隐藏QT窗口边框 并且在隐藏后实现窗口拖拽 同时实现透明度
- 无边框窗口实现拖垃效果
- 无边框窗口实现拖垃效果
- 无边框窗口实现拖垃效果
- 转:隐藏QT窗口边框 并且在隐藏后实现窗口拖拽
- Unity窗口化无边框模式
- Qt之无边框自定义最小化、关闭按钮并实现窗口移动
- Windows Form Tips: 无边框窗口实现用鼠标拖拽的功能
- Unity打包exe去边框,置顶,透明,透明穿透解决方案
- Qt 不规则窗口(窗口边框隐藏,并能拖动)
- 没有边框IE窗口的实现
- 全新无边框窗口实现方式[HTML]
- python+selenium+web日历控件赋值解决办法
- 最全LogBack 详解、含java案例和配置说明
- php 获取本月,上个月,上上个月的开始时间和结束时间
- 第4周项目4-建立双链表算法库
- 第四周项目三 单链表应用-连接
- Unity 去边框 并实现拖拽窗口
- 第四周-项目五-多项式求和
- 辨异 —— 算法
- Limbo模拟器的三两事
- Android最便捷banner轮播图实现原理及代码
- C#修改WebBrowser内核版本
- powerdesigner15 生成sql 表名带引号的解决办法
- Android 屏幕适配
- 第四周项目3——单链表应用(3)