WINAPI: скрытие дочернего элемента внутри вкладки

я использую TabControl с несколькими вкладками в моем приложении. И у меня возникла проблема с сокрытием дочернего элемента на вкладке. Я обычно скрываю элементы с

ShowWindow(hElementName, SW_HIDE))

и показать их с

ShowWindow(hElementName, SW_SHOW))

Но по какой-то причине он не работает для любого элемента, который находится внутри вкладок.

Я пробовал звонить

RedrawWindow(hElementName, NULL, NULL, RDW_INVALIDATE);
RedrawWindow(hTabElementName, NULL, NULL, RDW_INVALIDATE);
RedrawWindow(hTabControlElementName, NULL, NULL, RDW_INVALIDATE);

Но это не изменило поведение. Любой совет, что я могу делать здесь не так?

ОБНОВИТЬ:

Спасибо за ваши комментарии, Петерчен и Джонатан Поттер. Я действительно ценю вашу помощь с проблемой. У меня все еще есть та же проблема, хотя.

Что я сделал до сих пор:

  • Убедитесь, что флаги стилей WS_CLIPSIBLINGS и WS_CLIPCHILDREN установлены для элемента управления вкладками и реальных окон вкладок
  • Убедитесь, что дескриптор окна действителен для элемента, к которому я обращаюсь
  • Убедился, что дескриптор окна не перепутан ни с чем другим в коде. Теперь (в целях отладки) он упоминается только в четырех местах кода. Когда оно инициализируется значением NULL, когда окно создается с использованием CreateWindowEx и дважды в сегменте кода, где я показываю / скрываю его.

У меня все та же проблема.

Еще одно наблюдение, которое я сделал:

Мое приложение имеет функцию, которая будет свернута в трей, а затем восстановлена. Я делаю это, скрывая главное окно приложения. Итак, вот что я заметил: если элемент на вкладке управления должен быть скрыт (а это не так), и я минимизирую и затем восстанавливаю приложение, после того как все окно перерисовано, элемент скрывается, как и ожидалось. Вот почему я на 100% уверен, что звоню ShowWindow на правильном элементе и что я не показываю это где-то еще в коде. Это связано с тем, что элементы не перекрашиваются, но я не могу понять, в чем именно заключается проблема.

2

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]