Умеет ли Винда запоминать и хранить размер и положение основного окна программы? Или эти параметры надо запоминать самому?
Как вообще подобное делают? А то надо чтоб программа всегда открывалась в том же положении, как и закрыта была.
Здравствуйте, lsv, Вы писали:
lsv>Умеет ли Винда запоминать и хранить размер и положение основного окна программы? Или эти параметры надо запоминать самому? lsv>Как вообще подобное делают? А то надо чтоб программа всегда открывалась в том же положении, как и закрыта была.
Надо "запоминать" самому — например, в обработчике WM_WINDOWPOSCHANGED.
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
Здравствуйте, lsv, Вы писали:
lsv>Умеет ли Винда запоминать и хранить размер и положение основного окна программы?
Нет. Размеры и положение окна указываются в вызове CreateWindow(Ex). Если там стоит CW_USEDEFAULT, Windows сама решает, какие будут размеры.
>Или эти параметры надо запоминать самому?
Да.
lsv>Как вообще подобное делают? А то надо чтоб программа всегда открывалась в том же положении, как и закрыта была.
Создай в реестре HKCU\Software\YourCompany\YourProduct и пиши туда при выходе из программы, читай на входе. Если не прочиталось — используй дефолтные размеры Windows или свои.
Здравствуйте, Pavel Dvorkin, Вы писали: PD>Создай в реестре HKCU\Software\YourCompany\YourProduct и пиши туда при выходе из программы, читай на входе. Если не прочиталось — используй дефолтные размеры Windows или свои.
А можно пример реализации, т.е. как запоминать, а потом читать и настраивать?
Ещё бонус WINDOWPLACEMENT в том, что он так же может запоминать/восстанвливать состояние окна, в wp.showCmd, было ли оно свёрнуто(SW_SHOWMINIMIZED), просто октырто(SW_SHOWNORMAL), развёрнуто на весь экран(SW_SHOWMAXIMIZED) или ещё как. Я ещё кроме плейсмента топмост запоминаю/восстанавливаю своим окнам можно, наверно, ещё полупрозрачность для некоторых случаев добавить.