- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 SetWindowPos
和 MoveWindow
来调整窗口大小和居中。它工作正常,但在 Windows Media Player 或控制面板等多个窗口上,当您关闭窗口并再次打开时,不会反射(reflect)新的调整大小/移动。当我手动调整大小时,更改会在我下次打开窗口时反射(reflect)出来。即使我调用 UpdateWindow
,更改也不会反射(reflect)出来。是否需要发送窗口以保存更改? RedrawWindow
有帮助吗?谢谢?
最佳答案
您应该使用 GetWindowPlacement
和 SetWindowPlacement
函数取而代之的是检索和更改窗口的恢复、最小化和最大化位置。这可确保应用程序正确保存窗口大小,以便在下次启动时恢复它们。
由于您使用的是 C#,因此您需要从 Windows API 中 P/调用这些函数:
const int SW_HIDE = 0;
const int SW_SHOWNORMAL = 1;
const int SW_SHOWMINIMIZED = 2;
const int SW_SHOWMAXIMIZED = 3;
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool GetWindowPlacement(IntPtr hWnd, out WINDOWPLACEMENT lpwndpl);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool SetWindowPlacement(IntPtr hWnd, [In] ref WINDOWPLACEMENT lpwndpl);
[StructLayout(LayoutKind.Sequential)]
struct RECT
{
public int left;
public int top;
public int right;
public int bottom;
}
[StructLayout(LayoutKind.Sequential)]
struct WINDOWPLACEMENT
{
public int length;
public int flags;
public int showCmd;
public Point ptMinPosition;
public Point ptMaxPosition;
public RECT rcNormalPosition;
}
关于c# - SetWindowPos/MoveWindow 持续存在问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4894065/
敲代码时,突然发现有一个背景图片无法显示,百思不得其解,最终发现是MoveWindow() SetWindowPos()这两个函数的使用不当造成的。 这里把这两个函数的前世今生给分析一下。
我想从我的应用程序调整大小和/或移动一些外部窗口,主要是屏幕键盘窗口。这是代码: [DllImport("user32.dll", SetLastError = true)] int
我正在使用 win32gui将记事本窗口移动到屏幕的原点 (0, 0),宽度和高度等于 500。结果是窗口没有移动到真正的左边框,而是 ~10 px。向右。宽度和高度也不等于 500 像素。 (~62
我是 C++ 的新手,似乎被卡住了。我里面基本上有一个窗口和一个按钮(也是用 CreateWindow() 创建的)。我想让按钮在 X 轴上移动,我尝试使用 MoveWindow() 但我似乎无法制作
我正在使用 MoveWindow() 调整窗口大小,但我不拥有该窗口。我只是从不同的进程中窃取了它,现在我正在摆弄它的 hWindow。 然而,我从中窃取它的进程正在运行一个消息循环,处理其中一些消息
有什么方法可以在窗口上强制执行最小尺寸(宽度和高度)? 我见过不允许将窗口大小调整到某个点以下的应用程序,并且不会出现闪烁或其他任何情况。此外,如果分辨率低于这些最小值,它们将不允许最大化,而是将自己
我正在使用 SetWindowPos 和 MoveWindow 来调整窗口大小和居中。它工作正常,但在 Windows Media Player 或控制面板等多个窗口上,当您关闭窗口并再次打开时,不会
我非常渴望解决这个非常烦人的问题:(我试图在父窗口上显示一个子窗口。有时需要调整窗口大小。但出于某种原因,当我使用 MoveWindow 函数时,它会在父窗口的顶部留下空白区域。我想在这里展示一张图片
我正在编写一个 python 脚本来使用 ffplay 运行电影,然后将 ffplay 窗口移动到屏幕上的特定位置。 我基于此的脚本位于此处 - http://code.activestate.com
我目前遇到一个非常奇怪的问题 CComboBox在 CFormView 中使用. 将字符串添加到组合框(使用 WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCRO
以下摘自 MoveWindow() 的备注部分文档: If the bRepaint parameter is TRUE, the system sends the WM_PAINT message
我正在使用 OpenCV 2.3 的 C++ 版本,并且正在努力完成一项基本任务。我想做的是创建一个窗口并将其移动到屏幕上的特定位置,例如: cv::namedWindow("My Window",
我根本不是 Windows 开发人员(我做 AS3 的东西),但我在 Visual C# 2010 中编写了这个 C# 控制台应用程序以测试某些内容。该应用程序应该打开一个窗口并调整其大小和位置。 我
我正在为 Visual Studio 2003 使用 MFC。我有一个 ID 为 IDC_COMMENT_EDIT 的编辑控件。在下面的代码中,在我第一次调用 GetClientRect 之后,我不希
简介及相关信息: 我正在尝试使用可编辑项和子项实现 ListView 控件。项目和子项目应该具有编辑控件、复选框或组合框,而不是常规的 ListView 外观。 我正在使用原始 WinAPI 和 C+
我编写了一个简单的实用程序,让您可以通过键入新的所需宽度、高度和窗口的左上角来移动屏幕上的任何窗口和/或调整其大小。它在 100% 缩放时效果很好,但当我更改缩放时它会失败。 例如,在我的 4k 显示
我有一个 listview 控件 (lvc),它位于 DialogBox(dbx) 中,而且 dbx 也有一个垂直滚动条。 每当滚动条滚动时,调用EnumChildWindows 来枚举dbx 的所有
这个问题在这里已经有了答案: Effect of MoveWindow in EnumChildWindows over listview inside the Dialog Box: Why Li
我是一名优秀的程序员,十分优秀!