Я новичок, и сегодня мой первый день в обучении созданию приложения 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
, кнопка становится пассивной (не щелкающей), но остается видимой.
Как это исправить? Перепробовал много вещей, которые я нашел в Интернете, но не смог это исправить. Также, пожалуйста, не предлагайте мне купить приличную книгу, у меня пока нет денег.
(PS: ShowWindow
функция с SW_HIDE/SW_SHOW
почему-то у меня не работает, возможно я Я использую это неправильно. Можете ли вы помочь мне, как я могу правильно скрыть это Button2
? Я пытаюсь выполнить следующую команду, но ничего не происходит.)
ShowWindow(GetDlgItem(Button2, 2), SW_HIDE);
@ Редактировать: I Я заметил, что когда я минимизирую приложение и снова максимизирую его, состояние кнопки обновляется. Но как он будет автоматически обновлять состояние?