有谁知道我在哪里可以找到如何确定窗口上的最大化和/或最小化按钮是否可用和/或禁用的示例?
该窗口与我的应用程序不在同一个进程中。我有hWnd,我尝试过使用GetMenuItemInfo,但是我找不到任何好的样本来解决这个问题。
谢谢!
答案 0 :(得分:6)
bool has_maximize_btn = (GetWindowLong(hWnd, GWL_STYLE) & WS_MAXIMIZEBOX) != 0;
bool has_minimize_btn = (GetWindowLong(hWnd, GWL_STYLE) & WS_MINIMIZEBOX) != 0;
答案 1 :(得分:4)
Win32 API提供GetTitleBarInfo function,返回TITLEBARINFO Structure:
typedef struct {
DWORD cbSize;
RECT rcTitleBar;
DWORD rgstate[CCHILDREN_TITLEBAR+1];
} TITLEBARINFO, *PTITLEBARINFO, *LPTITLEBARINFO;
因此,您可以检查rgstate
:指向数组的指针,该数组接收标题栏每个元素的DWORD值。以下是数组表示的标题栏元素。
Index Title Bar Element
----- --------------------
0 The title bar itself
1 Reserved.
2 Minimize button
3 Maximize button <--------------
4 Help button
5 Close button
每个数组元素都是以下一个或多个值的组合。
Value Meaning
----- -------------------------------------------
STATE_SYSTEM_FOCUSABLE The element can accept the focus.
STATE_SYSTEM_INVISIBLE The element is invisible.
STATE_SYSTEM_OFFSCREEN The element has no visible representation.
STATE_SYSTEM_UNAVAILABLE The element is unavailable.
STATE_SYSTEM_PRESSED The element is in the pressed state.rgstate
答案 2 :(得分:0)
使用GetWindowInfo功能。
测试WINDOWINFO结构的dwStyle字段,看看WS_MAXIMIZEBOX位是否打开。
WINDOWINFO.dwStyle & WS_MAXIMIZEBOX != 0