天道酬勤,学无止境

window-style

获取窗口样式(Getting window style)

问题 我正在尝试使用 GetWindowLong(hWnd, GWL_STYLE) 检查窗口是否具有某种样式,但这给了我一个 LONG 类型的变量。 您将如何从 const 值类型“WS_CAPTION”中检查特定样式? 回答1

2022-04-17 05:41:04    分类:技术分享    c++   window-style

Getting window style

I'm trying to check if a window has a certain style using GetWindowLong(hWnd, GWL_STYLE) but that gives me a LONG type of variable. how would you check for a specific style from that say a const value type 'WS_CAPTION'?

2022-03-16 05:04:16    分类:问答    c++   window-style

Win32 防止窗口“卡住”(Win32 prevent window "snap")

问题 如何为我的应用程序禁用 Windows 7 的捕捉功能(以编程方式)? 或者有什么方法可以检测应用程序是否已被捕捉,并专门调用 API 函数来取消捕捉? 调用 SetWindowPos() 或 ShowWindow() 不能正确解开它 *(SW_MAXIMIZE 可以)。 调用 SetWindowPos() 实际上会导致以后调用 SetWindowPos() 和 MoveWindow() 时出现奇怪的行为。 同样的不一致不适用于最大化的窗口。 回答1 我找到了一种取消捕捉的方法,通过使用 SW_MAXIMIZE 调用 ShowWindow()。 这很奇怪,因为此调用没有其他值取消对齐,即使窗口可以移开,它仍然锚定在屏幕的一侧。 最大化它可以解决问题,然后我可以将窗口移动到需要的位置。 回答2 #define WM_RESTOREORIGINALSTYLE WM_USER+... /* your first free USER message */ case WM_SYSCOMMAND: { if(wParam==(SC_MOVE|2)) wParam=SC_SIZE|9; if((wParam&0xFFE0)==SC_SIZE && (wParam&0x000F)) // handles MOVE and SIZE in one "if" { long int

2021-10-07 08:43:36    分类:技术分享    winapi   window-style   window-position

Win32 prevent window "snap"

How can I disable the snap feature of Windows 7 for my application (progmatically)? Or is there any way to detect if the application has been snapped, and specifically call an API function to unsnap it? Calling SetWindowPos() or ShowWindow() does not unsnap it correctly *(SW_MAXIMIZE does). Calling SetWindowPos() actually causes strange behavior in future calls to SetWindowPos() and MoveWindow(). The same inconsistencies do not apply to a window that is maximized.

2021-10-07 06:52:12    分类:问答    winapi   window-style   window-position

`SetWindowLong()` 函数即使在调用 `SetWindowPos()` 后也不会改变窗口样式(`SetWindowLong()` function doesn't change window style even after calling `SetWindowPos()`)

问题 我使用以下代码创建静态控件: hWnd = CreateWindowExW( 0, L"STATIC", Content.c_str(), SS_LEFT | WS_VISIBLE | WS_CHILD /*| SS_SUNKEN*/, 200, 120, 120, 40, hWndParent, NULL, hInstance, NULL); 如果我在上面的创建代码中启用了SS_SUNKEN样式,则创建的静态控件显示成功。 但是,我想要做的是在创建后更改控件样式。 我试过这个: void BaseWindowClass::AddStyle(DWORD NewStyle) { // NewStyle = 0x00001000 = SS_SUNKEN LONG oldstyle, changedstyle; oldstyle=SetWindowLongW(hWnd, GWL_STYLE, changedstyle=GetWindowLongW(hWnd, GWL_STYLE) | NewStyle); UpdateWindowStyles(); // oldstyle = 0x50000000 // changedstyle = 0x50001000 (everything looks normal) } void BaseWindowClass

2021-09-12 18:53:33    分类:技术分享    c++   winapi   win32gui   window-style

`SetWindowLong()` function doesn't change window style even after calling `SetWindowPos()`

I create the static control with the code below: hWnd = CreateWindowExW( 0, L"STATIC", Content.c_str(), SS_LEFT | WS_VISIBLE | WS_CHILD /*| SS_SUNKEN*/, 200, 120, 120, 40, hWndParent, NULL, hInstance, NULL); If I enable the SS_SUNKEN style in the creation code above, the created static control appears sunken successfully. But, what I'm trying to do is the change the control style after its creation. I tried this: void BaseWindowClass::AddStyle(DWORD NewStyle) { // NewStyle = 0x00001000 = SS_SUNKEN LONG oldstyle, changedstyle; oldstyle=SetWindowLongW(hWnd, GWL_STYLE, changedstyle=GetWindowLongW

2021-09-02 22:48:55    分类:问答    c++   winapi   win32gui   window-style

在运行时切换Process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden(Toggle Process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden at runtime)

问题 我想在运行时切换进程的可见性,我有一个Windows Form应用程序,该进程通过进程启动,默认情况下隐藏了另一个控制台应用程序,但我想允许管理员用户通过复选框切换此状态,并在出现以下情况时显示控制台应用程序他们选择。 我有这个,但是不起作用: private void checkBox1_CheckedChanged(object sender, EventArgs e) { ProcessWindowStyle state = cvarDataServiceProcess.StartInfo.WindowStyle; if (state == ProcessWindowStyle.Hidden) cvarDataServiceProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal; else if (state == ProcessWindowStyle.Normal) cvarDataServiceProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; } 回答1 您必须为此使用Win32 API。 [DllImport("user32.dll")] static extern bool ShowWindow(IntPtr hWnd, int

2021-05-07 03:51:45    分类:技术分享    c#   process   window-style