File "SavePos.inc"

Path: /program cloner/inc/SavePos.inc
File size: 1.56 KB
MIME-type:
Charset: utf-8


' Just call CB_SAVEPOS(id_string) at the very beginning of your Dialog CALLBACK
' to save and restore position of your Dialog upon creation / closing

'------------------------------------------------------------------------------
MACRO CB_SAVEPOS(POS_FILE)
    SELECT CASE AS LONG CB.MSG
        CASE %WM_INITDIALOG
            LoadDialogPos CB.HNDL, POS_FILE
        CASE %WM_SYSCOMMAND
            SaveDialogPos CB.HNDL, POS_FILE
    END SELECT
END MACRO
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
SUB SaveDialogPos(BYVAL hDlg AS DWORD, BYVAL POS_FILE AS STRING)
    LOCAL ff, x, y AS LONG
    IF IsIconic(hDlg) THEN EXIT SUB
    DIALOG GET LOC hDlg TO x, y
    ff = FREEFILE
    OPEN LocalAppdata() + POS_FILE + ".pos" FOR OUTPUT AS #ff
        PRINT #ff, x
        PRINT #ff, y
    CLOSE #ff
END SUB
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
SUB LoadDialogPos(BYVAL hDlg AS DWORD, BYVAL POS_FILE AS STRING)
    LOCAL ff, x, y AS LONG
    LOCAL e AS STRING
    IF NOT EXIST(LocalAppdata() + POS_FILE + ".pos") THEN EXIT SUB
    ff = FREEFILE
    OPEN LocalAppdata() + POS_FILE + ".pos" FOR INPUT AS #ff
        LINE INPUT #ff, e : x = VAL(e)
        LINE INPUT #ff, e : y = VAL(e)
    CLOSE #ff
    IF x <> 0 OR y <> 0 THEN
        DIALOG SET LOC hDlg, x, y
    END IF
END SUB
'------------------------------------------------------------------------------