Чтобы вовремя работы проги кнопки не воспринимали комады
при нажатии на неативную кнопку команды выполняются в очереди.Мне нужно чтобы при выполнении прог. ни одна кнопка не воспринимала комады и потом выполняла
пример ниже
#COMPILE EXE
#DIM ALL
#IF NOT %DEF(%WINAPI)
#INCLUDE "WIN32API.INC"
#ENDIF
%IDD_AVC = 101
%IDC_START = 1002
%IDC_EXIT = 1003
%IDC_FRAME1 = 1005
%IDC_LABEL1 = 1006
DECLARE CALLBACK FUNCTION ShowAVCProc()
DECLARE FUNCTION ShowAVC(BYVAL hParent AS DWORD) AS LONG
FUNCTION PBMAIN()
ShowAVC %HWND_DESKTOP
END FUNCTION
CALLBACK FUNCTION ShowAVCProc()
LOCAL DUMMY AS STRING, N AS INTEGER
SELECT CASE CBMSG
CASE %WM_COMMAND
SELECT CASE CBCTL
CASE %IDC_START
IF CBCTLMSG= %BN_CLICKED OR CBCTLMSG = 1 THEN
CONTROL DISABLE CBHNDL, %IDC_START
CONTROL DISABLE CBHNDL, %IDC_EXIT
FOR N = 1 TO 20
CONTROL SET TEXT CBHNDL, %IDC_LABEL1, "Timers " & STR$(N) & "sek."
SLEEP 600
NEXT
CONTROL ENABLE CBHNDL, %IDC_START
CONTROL ENABLE CBHNDL, %IDC_EXIT
END IF
CASE %IDC_EXIT
IF CBCTLMSG= %BN_CLICKED OR CBCTLMSG = 1 THEN
DIALOG END CBHNDL, 0
END IF
END SELECT
END SELECT
END FUNCTION
FUNCTION ShowAVC(BYVAL hParent AS DWORD) AS LONG
LOCAL lRslt AS LONG
LOCAL hDlg AS DWORD
LOCAL hFont1 AS DWORD
LOCAL hFont2 AS DWORD
DIALOG NEW hParent, "AVC", 169, 109, 246, 197, TO hDlg
CONTROL ADD BUTTON, hDlg, %IDC_START, "START", 175, 135, 50, 15
CONTROL ADD BUTTON, hDlg, %IDC_EXIT, "EXIT", 175, 160, 50, 15
CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "", 140, 35, 90, 15
CONTROL SEND hDlg, %IDC_START, %WM_SETFONT, hFont1, 0
CONTROL SEND hDlg, %IDC_EXIT, %WM_SETFONT, hFont2, 0
CONTROL SEND hDlg, %IDC_LABEL1, %WM_SETFONT, hFont1, 0
DIALOG SHOW MODAL hDlg, CALL ShowAVCProc TO lRslt
FUNCTION = lRslt
END FUNCTION
Ответить
|