Unity 程序去边框并实现拖拽窗口
来源:互联网 发布:win8网络连接受限 编辑:程序博客网 时间:2024/06/11 09:05
文章转自:http://blog.csdn.net/xu1989101/article/details/52620546
自己前一段时间一直查找相关资料、一直都没有,百度出来的都是一模一样的最大化、最小化、无边框的功能,就是没有拖拽的功能,自己搞定了就贴代码出来,省的其它程序员走弯路。
直接上代码,看注释。看不懂的就留言吧。
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 }}
阅读全文
1 0
- Unity 程序去边框并实现拖拽窗口
- Unity 去边框 并实现拖拽窗口
- Winform窗口去边框实现可以移动
- Qt去边框,可以实现拉大缩小窗口。
- QT 窗口设置成无边框并实现拖动
- 隐藏QT窗口边框 并且在隐藏后实现窗口拖拽 同时实现透明度
- 隐藏QT窗口边框 并且在隐藏后实现窗口拖拽 同时实现透明度
- 无边框窗口实现拖垃效果
- 无边框窗口实现拖垃效果
- 无边框窗口实现拖垃效果
- 转:隐藏QT窗口边框 并且在隐藏后实现窗口拖拽
- Unity窗口化无边框模式
- unity最小化程序窗口
- Qt之无边框自定义最小化、关闭按钮并实现窗口移动
- Windows Form Tips: 无边框窗口实现用鼠标拖拽的功能
- Unity打包exe去边框,置顶,透明,透明穿透解决方案
- Flex4 AIR程序去除窗口边框, 最大化
- Qt 不规则窗口(窗口边框隐藏,并能拖动)
- Linux统计某文件夹下文件、文件夹的个数
- SpringMVC 4.1 新特性(一)JSONP的支持
- poj 字符串相关之1204 Word Puzzles
- 在Jenkins远程链接Linux系统,然后执行shell命令-亲测可用
- 为什么说OC是动态语言?
- Unity 程序去边框并实现拖拽窗口
- linux基础入门之groupmod命令
- C++11 标准新特性:Defaulted 和 Deleted 函数
- VNC viewer连接VNC server 无法显示正常桌面,桌面是上只显示3个勾选框,鼠标显示成一个叉
- item、nameItem的区别
- Ajax
- 查看maven引入的某个jar的依赖项
- 如何创建一个Analytics Framework的服务
- TextView+ToggleButton