Восстановление положения окна Вашей программы на рабочем столе 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

 


Страница сайта http://www.silicontaiga.ru
Оригинал находится по адресу http://www.silicontaiga.ru/home.asp?artId=6265