问题标签 [window-position]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
60 浏览

c# - Windows 还原位置有时不起作用

我编写了一个简单的 C# 程序,它将打开的窗口的位置和大小保存到一个文件中,然后还可以从该文件中恢复它们(基于命令行参数)。这总是适用于某些程序而不适用于其他程序,我不知道为什么。

获取窗口位置 (x,y) 和大小 (w,h) 的部分使用此标准 Windows 函数

设置窗口大小和位置的部分使用这个标准的 Windows 函数

这些在代码中声明如下

其余的代码是不起眼的:将一些数据保存到文本文件中,从文本文件中读取一些数据。所有这些都是从在线示例中复制粘贴的,我是新手 C#/Windows 程序员。

该程序在某些程序上运行良好,而在其他程序上则完全没有。我可以将 Chrome 恢复到它的大小和位置,但不能恢复 Firefox,也不能恢复 Microsoft Edge。Visual Studio Code 有效,但 R Studio 无效。这让我很惊讶,因为(对 Windows 编程了解不多)我预计任何 Windows 程序的 GUI 部分都是用标准 Windows 库编码的,因此任何在 Windows 上运行的程序都会以SetWindowPos相同的方式响应。

为什么这适用于某些程序而不适用于其他程序?

我需要这样做,因为我有一个 4K 显示器,并且每次显示器关闭或超时时,Windows 都会以某种方式丢失大多数窗口的大小和位置。我单独发布了这个,没有解决方案,所以我写了自己的,这主要是有效的。 https://superuser.com/questions/1513288/windows-loses-window-position-on-large-monitor

如果有人感兴趣,源代码在 https://github.com/radumanolescu/WinPos

在具有可靠规格的 2019 年 PC 上运行完全修补的 Windows 10 Pro。

0 投票
1 回答
87 浏览

.net - 仅使用 GetWindowPlacement 中的 NormalPosition 保存和恢复表单位置和大小

在 .NET Framework 4.6 和 Windows 窗体中,我有一个无边框窗体,没有标题栏,也没有最小化和最大化按钮,可调整大小(使用自定义代码)。

我想使用GetWindowPlacementSetWindowPlacement保存和恢复表单位置和大小。

我从以下方面获得这种价值观GetWindowPlacement

我的窗体/窗口没有最小化和最大化按钮,出于所有预期目的,它的设计目的不是最小化/最大化,因此应始终将其恢复到正常的窗口状态。

因此,我只想将NormalPosition矩形从WindowPlacement应用程序设置中保存下来。

加载表单时,我打算使用从设置中加载WindowPlacement的字段创建一个结构NormalPosition,并用默认值填充其他值(ShowCmd到 1、MinPosition到-1、-1 等)

让我担心的是文档中的这句话:

WINDOWPLACEMENT 结构中使用的坐标只能由 GetWindowPlacement 和 SetWindowPlacement 函数使用。

我应该担心吗?我的计划是否可以通过仅保存NormalPosition.

0 投票
1 回答
611 浏览

c# - 如何将 C# 控制台应用程序窗口移动到屏幕中心

我正在使用 C# 控制台应用程序。如何将应用程序窗口移动到屏幕中央?

额外细节

框架版本: .NET Core 3.1
窗口大小: 37x20 ( Console.SetWindowSize(37, 20);)

0 投票
1 回答
35 浏览

python - tkinter pack_forget vs Window 默认中心位置

我有一个带有多个窗口的应用程序。我使用pack_forget来消除登录窗口并调用主窗口。然而,这个主窗口失去了 tkinter 的默认居中位置。窗口在位置 (0 , 0) 创建。

有没有什么简单的方法可以让这个主窗口在默认的居中位置创建?

示例代码,3 个文件 ->

主文件

frm_login.py

frm_default.py