SetWindowPos API - 向后调整大小?

时间:2015-06-12 09:21:10

标签: windows winapi user32

我正在使用Windows的SetWindowPos API尝试“裁剪”#39;窗口的一部分,因此用户只能看到它的右侧部分。

问题是,我只能'' crop'它,从左上角开始,我宁愿裁剪窗口的另一部分,它不包含'左上角。

如下图所示,我想要做的就是扭转“调整大小”的问题。机制以这样的方式,窗口将隐藏' Label1 ,仅显示 Button1

我可能没有使用正确的API用于工作,如果是这样,我很乐意指向正确的API。

enter image description here

2 个答案:

答案 0 :(得分:0)

您需要移动窗体上的控件才能生效。窗口有一个位置和大小,这是窗口管理员所关心的。内部可见的是您的应用程序的责任。

你的截图看起来很VB6-ish。请注意新技术,例如Windows窗体或WPF为您在此处尝试的操作提供了更好的支持。

答案 1 :(得分:0)

如果您有一个控件的窗口句柄,那么您可以将它放在其父窗口之外。将SetWindowPos坐标传递给X负值。

当然,无法看到控件的事实并不意味着它无法与之交互。如果用户接受焦点,则用户可以通过键盘与其联系。所以也许更好的想法是隐藏和/或禁用它。使用ShowWindowEnableWindow即可。

然后,你将无法获得一个窗口处理是非常合理的。许多框架使用未加窗的控件。要与它们进行交互,您需要使用自动化框架,例如UI Automation。只有您可以知道目标应用程序是否支持自动化。