У меня есть небольшое приложение wxWidget, которое может сохранить несколько настроек в простой XML-файл.Среди этих настроек я сохраняю положение, размер и развернутое состояние моего окна верхнего уровня, чтобы я мог восстановить его при следующем запуске.
По умолчанию, когда вы максимизируете окно, когда вы нажимаете снова, максимизироватьКнопка, вы вернетесь к своей первоначальной (не максимизированной) позиции / размера.Но когда я сохраняю свои предпочтения, единственная позиция и размер, которые я могу получить, это максимальная.Поэтому, когда пользователь перезапускает свое приложение и хочет «развернуть» его, окно все равно занимает весь экран.
В Windows XP я выполнил небольшую хитрость, которая заключалась в вызове SetMaximize (false)прежде чем получить позицию и размер.Это работало просто отлично.Но сейчас я на седьмом, и это больше не работает.Кажется, что SetMaximize (false) откладывается: когда я ломаюсь, это работает, но во время нормального выполнения я всегда получаю максимизированную позицию / размер, как будто операция unmaximize выполняется в другом потоке.
Поэтому я попытался добавить Sleep () сразу после моего вызова SetMaximize (false), но мне нужно использовать действительно высокое значение, чтобы убедиться, что он всегда работает, и мне это не нравится.
Итак, мой вопрос: есть ли способ получить положение и размер не развернутого окна?(Я также пытался отловить события изменения размера, но это работает только для размера, и мне также нужна позиция ... и не нашел никакого события "перемещено окно")
Заранее спасибо за любую помощь!