Страница 1 из 1

отмена закрытия формы

СообщениеДобавлено: 22.11.2011 (Вт) 10:53
Димитрий
Не могу организовать отмену закрытия формы :?
Код: Выделить всё
#COMPILE EXE
#DIM ALL
#INCLUDE ONCE "WIN32API.INC"

GLOBAL hDlg    AS DWORD

FUNCTION PBMAIN () AS LONG
    DIALOG NEW 0, "233", , , 350, 250, %WS_OVERLAPPEDWINDOW, TO hDlg
    DIALOG SHOW MODAL hDlg, CALL ProcMAIN
END FUNCTION

CALLBACK FUNCTION ProcMAIN()
  LOCAL j AS LONG, k AS LONG
    SELECT CASE AS LONG CBMSG
        CASE %WM_CLOSE
                j = MessageBox (hDlg, "Сохранить изменения в файле?", "233" , %MB_YESNOCANCEL OR %MB_ICONEXCLAMATION OR %MB_APPLMODAL)
                IF j = %IDYES THEN
                   
                ELSEIF j = %IDCANCEL THEN
                    BEEP:BEEP
'------------------?
                    FUNCTION = 0
                    EXIT FUNCTION
                END IF
       CASE %WM_DESTROY

    END SELECT
END FUNCTION

в чём моя ошибка? :?:

Re: отмена закрытия формы

СообщениеДобавлено: 22.11.2011 (Вт) 15:49
HouseMD
Код: Выделить всё
#COMPILE EXE
#DIM ALL
#INCLUDE ONCE "WIN32API.INC"

GLOBAL hDlg    AS DWORD

FUNCTION PBMAIN () AS LONG
    DIALOG NEW 0, "233", , , 350, 250, %WS_OVERLAPPEDWINDOW, TO hDlg
    DIALOG SHOW MODAL hDlg, CALL ProcMAIN
END FUNCTION

CALLBACK FUNCTION ProcMAIN()
    LOCAL j AS LONG, k AS LONG
    SELECT CASE AS LONG CBMSG
        CASE %WM_SYSCOMMAND
            SELECT CASE CBWPARAM
                CASE %SC_CLOSE
                    j = MessageBox(hDlg, "Сохранить изменения в файле?", "233" , %MB_YESNOCANCEL OR %MB_ICONEXCLAMATION OR %MB_APPLMODAL)
                    IF j <> %IDYES THEN FUNCTION = 1
                    EXIT FUNCTION
            END SELECT
    END SELECT
END FUNCTION

Re: отмена закрытия формы

СообщениеДобавлено: 23.11.2011 (Ср) 6:41
Димитрий
HouseMD, спасибо :!: