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
'------------------------------------------------------------------------------