Unity3d 去掉exe版本的边框
2014-08-13 22:58
337 查看
using UnityEngine; using System.Collections; using System.Runtime.InteropServices; using System; public class Test : MonoBehaviour { /// <summary> /// 窗口宽度 /// </summary> public int winWidth; /// <summary> /// 窗口高度 /// </summary> public int winHeight; /// <summary> /// 窗口左上角x /// </summary> public int winPosX; /// <summary> /// 窗口左上角y /// </summary> public int winPosY; [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(); const uint SWP_SHOWWINDOW = 0x0040; const int GWL_STYLE = -16; const int WS_BORDER = 1; const int WS_POPUP = 0x800000; // Use this for initialization void Start() { winWidth = 610; winHeight = 350; //显示器支持的所有分辨率 int i = Screen.resolutions.Length; int resWidth = Screen.resolutions[i - 1].width; int resHeight = Screen.resolutions[i - 1].height; winPosX = resWidth / 2 - winWidth / 2; winPosY = resHeight / 2 - winHeight / 2; SetWindowLong(GetForegroundWindow(), GWL_STYLE, WS_POPUP); bool result = SetWindowPos(GetForegroundWindow(), 0, winPosX, winPosY, winWidth, winHeight, SWP_SHOWWINDOW); } }
原文地址点击这里
测试发现GUI坐标偏差,修改如下
using UnityEngine; using System.Collections; using System.Runtime.InteropServices; using System; public class Test : MonoBehaviour { /// <summary> /// 窗口宽度 /// </summary> public int winWidth; /// <summary> /// 窗口高度 /// </summary> public int winHeight; /// <summary> /// 窗口左上角x /// </summary> public int winPosX; /// <summary> /// 窗口左上角y /// </summary> public int winPosY; [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", EntryPoint = "GetSystemMetrics")] public static extern IntPtr GetSystemMetrics(int nIndex); const int SM_CXSCREEN = 0x00000000; const int SM_CYSCREEN = 0x00000001; const uint SWP_SHOWWINDOW = 0x0040; const int GWL_STYLE = -16; const int WS_BORDER = 1; const int WS_POPUP = 0x800000; public GUIText t; // Use this for initialization void Start() { winWidth = 610; winHeight = 350; //当前屏幕分辨率 int resWidth = (int)GetSystemMetrics(SM_CXSCREEN); int resHeight = (int)GetSystemMetrics(SM_CYSCREEN); winPosX = resWidth / 2 - winWidth / 2; winPosY = resHeight / 2 - winHeight / 2 -1; SetWindowLong(GetForegroundWindow(), GWL_STYLE, WS_POPUP); //测试发现左下角坐标为(0,1),修改如下 bool result = SetWindowPos(GetForegroundWindow(), 0, winPosX, winPosY, winWidth, winHeight, SWP_SHOWWINDOW); //bool result = SetWindowPos(GetForegroundWindow(), 0, winPosX, winPosY, winWidth, winHeight, SWP_SHOWWINDOW); } void OnGUI() { if (Input.GetMouseButtonDown(0)) { t.text = "X:"+Input.mousePosition.x + " Y:" + Input.mousePosition.y; } } }
相关文章推荐
- Unity3d 去掉exe版本的边框
- 【Unity3D自学记录】Unity3D去掉exe版本的边框
- Unity3d 去掉exe版本的边框
- Unity3d 去掉exe版本的边框
- Unity3D 去掉 exe 边框
- Unity3D 发布无边框exe
- [VB.NET]vb.net2003生成的exe用右键属性看版本信息,总有个Assembly Verssion项目,怎么去掉它?
- Unity3D 发布无边框exe
- Unity exe去掉边框
- input[type='submit']input[type='button']button等按钮在低版本的IE下面,去掉黑色边框的问题
- Unity3D 4.2以上版本 Terrain绘制一个下凹(下陷,坑)的地形 详解
- [Unity3d]socket通信 切换到web版本时报错SecurityException解决办法
- html 文本框去掉边框
- android去掉Button自带边框(ruadio等也适用)
- UISegmentedControl去掉边框-姬云鹏
- 去掉网页的边框,使其没有凹进去的效果
- [Unity3d]socket通信 切换到web版本时报错SecurityException解决办法
- JFrame在去掉标题栏的情况下,如何实现拉大收缩边框的功能?
- 理解盒模型——外边距、内边距和边框之间的关系,IE 8以下版本的浏览器中的盒模型有什么不同。
- [Unity3D 版本5.X]实现一个自由漫游的摄像机