Robert Inventor Ответов: 2

Открытый диалог показывает развернутый и не может быть изменен размер


Это действительно странный баг, никогда раньше не сталкивался ни с чем подобным.

Когда вы переходите к файлу >> открыть в релизной сборке моей программы, он показывает открытый диалог размером, чтобы заполнить весь экран. Он не развернут, так как нет кнопки "развернуть" или "восстановить" - просто размер экрана.

Размер открытого диалогового окна изменяется таким образом, чтобы точно заполнить любой экран, на котором работает программа (используя его с двумя мониторами).

Он имеет то, что выглядит как граница размера, и когда вы наводите на него курсор мыши, вы получаете стрелку типа" -", которая обычно означает, что вы можете изменить его размер, но он не будет меняться. Кроме того, если вы нажмете и перетащите заголовок (который в Windows 7 обычно работает даже с развернутыми окнами) - вы не сможете перетащить его на другой экран. Он просто фиксируется на месте, пока вы не отпустите его.

ЭТО ЗАВИСИТ ТОЛЬКО ОТ ИМЕНИ ИСПОЛНЯЕМОГО ФАЙЛА

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

Это также ретроспективно - влияет на все мои предыдущие сборки программы, которые никогда раньше не имели этой проблемы.

ДАЖЕ ВЛИЯЕТ НА ДРУГИЕ ПРОГРАММЫ ПРИ ПЕРЕИМЕНОВАНИИ В ТО ЖЕ ИМЯ, ЧТО И МОЯ ПРОГРАММА

Кроме того - самое загадочное из всех - даже влияет на другие программы других авторов программного обеспечения, а также.

Я попытался переименовать notepad++, например, в "Bounce Metronome.exe" и он также показывает открытый диалог развернутым - и возвращается к нормальному поведению, когда вы переименовываете файл .exe на какое-то другое имя.

Я использую Windows 7, и у меня есть Norton AV, установленный на компьютере (в случае, если это уместно).

Попробовал его на другом компьютере, с последней сборкой, и он ведет себя нормально. И не было никаких сообщений об ошибках от моих пользователей по этому поводу.

Итак - кажется, это какая - то особенность моей компьютерной установки - но что- и что ее вызывает? Кто-нибудь знает, что это такое?

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

Я даже не знаю, как показать такой открытый диалог, если бы захотел.

Кстати, как бы то ни было, Диалог создается с помощью структуры OPENFILENAME и процедуры GetOpenFileName
http://msdn.microsoft.com/en-us/library/windows/desktop/ms646927(v=против 85).aspx[^]

Кто-нибудь видел что-нибудь подобное раньше?

Роберт

2 Ответов

Рейтинг:
2

Tom Robson

Нажмите клавишу Windows и стрелку влево. Это приведет к сбросу его на половину экрана, откуда вы можете изменить его размер обычным способом.


OriginalGriff

Том, это хорошая идея, чтобы проверить статус вопроса, прежде чем ответить - это семь лет, и был отмечен как "решен" в день его размещения.

Размещение ответов на старые вопросы - особенно решенные - очень похоже на "rep point farming", что считается злоупотреблением, и это может привести к тому, что вас вышвырнут с сайта. Особенно если один из наших более "триггерных счастливых" членов заметит это раньше меня!
Я бы рекомендовал придерживаться последних вопросов в будущем.

CPallini

"триггер счастлив"
Вы были в моей стране в последнее время? :-Д

Рейтинг:
15

chaau

Проверьте этот путь реестра:

HKEY_CURRENT_USER
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  Comdlg32


Вы найдете подраздел под названием CIDSizeMRU. Там будет много записей (по одной на каждое приложение). Это записи REG_BINARY. Вам нужно будет открыть каждый из них и найти тот, который имеет имя вашего exe-файла. Удалите его, и все это начнет работать.


Robert Inventor

Я впечатлен :). Это все решило. Я просто удалил их все, так как у меня было 100 из них, и мне все равно, что Windows 7 забыла, где были некоторые открытые диалоги, когда они были показаны в последний раз.

Есть какие-нибудь мысли о том, почему это могло произойти? Иногда мне приходилось делать жесткую перезагрузку, когда Windows перестала отвечать на запросы, интересно, может ли это быть причиной...

В любом случае 5 звезд за ваше решение :)

chaau

это может произойти очень легко. Иногда, когда вы нажимаете на значок "Показать рабочий стол" в Windows, все окна сводятся к минимуму, даже те, которые имеют всплывающие окна. Если вы начинаете нажимать на минимизированные окна на панели задач, и если вы достаточно быстро нажимаете, окна снова открываются каким-то странным образом (развернутым или полноэкранным). Вероятно, именно это и произошло

chaau

Кроме того, не забудьте комбинацию Alt-Space + X. Он делает некоторые волшебные вещи

Robert Inventor

Еще раз спасибо, отлично, приятно понимать, как это произошло.

Я довольно часто использую Windows key + D, чтобы показать рабочий стол, так что ожидайте, что это как-то связано с этим. Раньше я не использовал Alt + Space + X для максимизации, это новое для меня (хотя используйте Alt + space для перемещения окна, если оно случайно окажется за пределами монитора, во всяком случае, этого тоже не было в течение некоторого времени) - так что, вероятно, это Windows + D.