Для зарегистрированных пользователей |
|
Восстановление положения окна Вашей программы на рабочем столе Windows
Наверное, у каждого программиста на VB рано или поздно появляется необходимость восстановления положения окна на рабочем столе при старте приложения и сохранения их при завершении приложения. Для этого удобно (и нужно!) использовать реестр Windows. Ниже приведены процедуры, которые делают эту работу.
'Процедура служит для восстановления позиции окна из 'системного реестра Windows, в случае неудачи берем 'значения по - умолчанию (100, 100, 10600, 5900) 'второй параметр указывает на то, что нужно восстановить 'только положение окна без его размеров Public Sub RestoreWindowsPos(frm As Form, Optional whNo As Boolean = False) Dim KEY_STRING As String
KEY_STRING = APP_NAME & "\" & KEY_SETWINDOW 'Восстанавливаем позицию окна на рабочем столе Windows frm.WindowState = GetSetting(KEY_STRING, frm.Name, CUR_STATE, 0) 'если "нормальное" положение, то считать остальные параметры If GetSetting(KEY_STRING, frm.Name, CUR_STATE, 0) = 0 Then frm.Left = GetSetting(KEY_STRING, frm.Name, CUR_X, 100) frm.Top = GetSetting(KEY_STRING, frm.Name, CUR_Y, 100) If whNo Then Exit Sub frm.Width = GetSetting(KEY_STRING, frm.Name, CUR_dX, 10600) frm.Height = GetSetting(KEY_STRING, frm.Name, CUR_dY, 5900) End If End Sub
'Процедура служит для сохранения позиции окна в 'системном реестре Windows Public Sub SaveWindowsPos(frm As Form) Dim KEY_STRING As String
KEY_STRING = APP_NAME & "\" & KEY_SETWINDOW 'Сохраняем позицию окна на рабочем столе Windows SaveSetting KEY_STRING, frm.Name, CUR_STATE, frm.WindowState SaveSetting KEY_STRING, frm.Name, CUR_X, frm.Left SaveSetting KEY_STRING, frm.Name, CUR_Y, frm.Top SaveSetting KEY_STRING, frm.Name, CUR_dX, frm.Width SaveSetting KEY_STRING, frm.Name, CUR_dY, frm.Height End Sub
Для работы этих процедур необходимы объявленные на уровне приложения (или модуля) константы APP_NAME, KEY_SETWINDOW, CUR_STATE, CUR_X, CUR_Y, CUR_dX, CUR_dY
|