我正在尝试使用
将区域应用到我的应用程序之外的窗口[DllImport("user32.dll")]
static extern IntPtr SetWindowRgn(IntPtr hWnd, IntPtr hRgn, bool bRedraw);
[DllImport("gdi32.dll")]
static extern IntPtr CreateRectRgn(int x1, int y1, int x2, int y2);
internal void Cut(IntPtr handle)
{
SetWindowRgn(handle, CreateRectRgn(0, 0, 100, 200), true);
}
但它不会在Windows 7中剪切窗口边框。请注意,它不可单击,但在拖动区域内的边框时会移动。
我错过了什么?
答案 0 :(得分:0)
根据this similar question,您似乎无法做到。所以我认为有两种选择。
在我的情况下,我不需要边框,因此我使用SetWindowLong
将其删除
var style = GetWindowLong(handle, GWL_STYLE);
style &= ~(WS_CAPTION | WS_THICKFRAME | WS_MINIMIZE | WS_MAXIMIZE | WS_SYSMENU);
SetWindowLong(handle, GWL_STYLE, style);