【发布时间】:2020-04-06 17:47:40
【问题描述】:
我是初学者,今天是我学习创建 Windows 应用程序的第一天。 我有两个按钮。
#define BUTTON_SW 1
#define BUTTON_SW2 2
HWND Button1;
HWND Button2;
Button1 = CreateWindow("button", "Enter", WS_VISIBLE | WS_CHILD, 215, 10, 40, 25, hwnd, HMENU(BUTTON_SW), NULL, NULL);
Button2 = CreateWindow("button", "You'll be gone", WS_VISIBLE | WS_CHILD, 260, 10, 95, 25, hwnd, HMENU(BUTTON_SW2), NULL, NULL);
点击Button1时,如何隐藏Button2或使其失去WS_VISIBLE标志并正确反映当前情况,像这样?
LONG style = GetWindowLong(Button2,GWL_STYLE);
style = style | WS_VISIBLE; // style = style & ~WS_VISIBLE
SetWindowLong(Button2,GWL_STYLE,style);
这很好用。但是,一旦分配了WS_VISIBLE 标志,按钮仍然保持不可见,直到第一次鼠标单击它。
反之亦然,当我使用 style = style & ~WS_VISIBLE; 删除 WS_VISIBLE 标志后,按钮变为被动(不可点击)但保持可见。
如何解决这个问题?尝试了很多我在网上找到但无法修复的东西。另外请不要建议我买一本像样的书,我现在没钱。
(P.S:ShowWindow 和 SW_HIDE/SW_SHOW 的函数对我不起作用,也许我用错了。你能帮我看看如何正确隐藏这个 Button2 吗?我正在尝试遵循命令,但没有任何反应。)
ShowWindow(GetDlgItem(Button2, 2), SW_HIDE);
@Edit:我注意到当我最小化应用程序并最大化它时 再次,按钮状态更新。但是怎么会自动 更新状态?
【问题讨论】: