📄 dialog1.c
字号:
case IDC_EXE_FACT: case IDC_EXE_AUTO: case IDC_EXE_SEQUENCE: { SetCheckBox ( hDlg, wParam, !IsDlgButtonChecked (hDlg, wParam)); return (TRUE); } } } } return (FALSE);}/******************************************************************** OptionDlgProc: Callback function which allows the user to set* various CLIPS interface execution preferences.*******************************************************************/#if IBM_TBC#pragma argsused#endifBOOL FAR PASCAL _export OptionDlgProc (hDlg, message, wParam, lParam ) HWND hDlg; unsigned message; WORD wParam; LONG lParam;{ static char Number[4]; switch (message) { case WM_INITDIALOG: { extern BOOL Complete; SetCheckBox ( hDlg, IDC_WARN_JOE, warnings); SetCheckBox ( hDlg, IDC_PREF_COMPLETE, Complete ); SendDlgItemMessage ( hDlg, IDC_EDIT, EM_LIMITTEXT, 3, NULL ); sprintf(Number,"%d", rulestep ); SendDlgItemMessage(hDlg, IDC_EDIT, WM_SETTEXT,0, (LONG)Number); return (TRUE); } case WM_COMMAND: { switch (wParam) { case IDC_WARN_JOE: case IDC_PREF_COMPLETE: { SetCheckBox(hDlg, wParam, !(IsDlgButtonChecked (hDlg, wParam))); return (TRUE); } case IDC_OK: { extern BOOL Complete; int temp; int x; int flag = 0; SendDlgItemMessage ( hDlg, IDC_EDIT, WM_GETTEXT,4, (LONG)Number); temp = atoi (Number); for (x=0; x<strlen(Number); x++) if ( !isdigit (Number[x])) flag=1; if (temp < 1 || temp > 999 || flag) { sprintf(Number,"%d", rulestep ); SendDlgItemMessage ( hDlg, IDC_EDIT, WM_SETTEXT,0, (LONG)Number); MessageBeep(0); MessageBox(hDlg,"Must be between 1 and 999 inclusive", "Step Rule Firing Increment", MB_ICONHAND|MB_OK); SetFocus(GetDlgItem(hDlg, IDC_EDIT)); break; } rulestep = temp; warnings = IsDlgButtonChecked (hDlg, IDC_WARN_JOE); Complete = IsDlgButtonChecked (hDlg, IDC_PREF_COMPLETE); } case IDC_CANCEL: { EndDialog ( hDlg, IDOK ); return TRUE; } } } } return ( FALSE );}/******************************************************************** WatchDlgProc: Callback function which allows the user to set* watch options for CLIPS to display. *******************************************************************/#if IBM_TBC#pragma argsused#endifBOOL FAR PASCAL _export WatchDlgProc (hDlg, message, wParam, lParam ) HWND hDlg; unsigned message; WORD wParam; LONG lParam;{ static int count; switch (message) { case WM_INITDIALOG: { count = 0; count += SetCheckBox(hDlg, IDC_WATCH_COMPILE, GetWatchItem("compilations")); count += SetCheckBox(hDlg, IDC_WATCH_FACTS, GetWatchItem("facts")); count += SetCheckBox(hDlg, IDC_WATCH_INSTANCE, GetWatchItem("instances")); count += SetCheckBox(hDlg, IDC_WATCH_RULES, GetWatchItem("rules")); count += SetCheckBox(hDlg, IDC_WATCH_GENERIC, GetWatchItem("generic-functions")); count += SetCheckBox(hDlg, IDC_WATCH_MESSAGE, GetWatchItem("messages")); count += SetCheckBox(hDlg, IDC_WATCH_DEFFUN, GetWatchItem("deffunctions")); count += SetCheckBox(hDlg, IDC_WATCH_STATS, GetWatchItem("statistics")); count += SetCheckBox(hDlg, IDC_WATCH_GLOBAL, GetWatchItem("globals")); count += SetCheckBox(hDlg, IDC_WATCH_SLOT, GetWatchItem("slots")); count += SetCheckBox(hDlg, IDC_WATCH_ACTIVE, GetWatchItem("activations")); count += SetCheckBox(hDlg, IDC_WATCH_METHOD, GetWatchItem("methods")); count += SetCheckBox(hDlg, IDC_WATCH_FOCUS, GetWatchItem("focus")); count += SetCheckBox(hDlg, IDC_WATCH_MSGHANDLER, GetWatchItem("message-handlers")); if (count == IDC_WATCH_COUNT ) EnableWindow(GetDlgItem(hDlg, IDC_WATCH_ALL ), FALSE); else if ( count == 0 ) EnableWindow(GetDlgItem(hDlg, IDC_WATCH_NONE), FALSE); return (TRUE); } case WM_COMMAND: { switch (wParam) { case IDC_OK: SetWatchItem ("compilations", IsDlgButtonChecked (hDlg, IDC_WATCH_COMPILE),NULL); SetWatchItem ("statistics", IsDlgButtonChecked (hDlg, IDC_WATCH_STATS),NULL);#if DEFTEMPLATE_CONSTRUCT SetWatchItem ("facts", IsDlgButtonChecked (hDlg, IDC_WATCH_FACTS),NULL);#endif#if OBJECT_SYSTEM SetWatchItem ("instances", IsDlgButtonChecked (hDlg, IDC_WATCH_INSTANCE),NULL); SetWatchItem ("slots", IsDlgButtonChecked (hDlg, IDC_WATCH_SLOT),NULL); SetWatchItem ("messages", IsDlgButtonChecked (hDlg, IDC_WATCH_MESSAGE),NULL); SetWatchItem ("message-handlers", IsDlgButtonChecked (hDlg, IDC_WATCH_MSGHANDLER),NULL);#endif#if DEFFUNCTION_CONSTRUCT SetWatchItem ("deffunctions", IsDlgButtonChecked (hDlg, IDC_WATCH_DEFFUN),NULL);#endif#if DEFRULE_CONSTRUCT SetWatchItem ("rules", IsDlgButtonChecked (hDlg, IDC_WATCH_RULES),NULL); SetWatchItem ("activations", IsDlgButtonChecked (hDlg, IDC_WATCH_ACTIVE),NULL); SetWatchItem ("focus", IsDlgButtonChecked (hDlg, IDC_WATCH_FOCUS),NULL);#endif#if DEFGENERIC_CONSTRUCT SetWatchItem ("generic-functions",IsDlgButtonChecked (hDlg, IDC_WATCH_GENERIC),NULL); SetWatchItem ("methods", IsDlgButtonChecked (hDlg, IDC_WATCH_METHOD),NULL);#endif#if DEFGLOBAL_CONSTRUCT SetWatchItem ("globals", IsDlgButtonChecked (hDlg, IDC_WATCH_GLOBAL),NULL);#endif case IDC_CANCEL: { EndDialog ( hDlg, IDOK); return ( TRUE ); } case IDC_WATCH_COMPILE: case IDC_WATCH_FACTS: case IDC_WATCH_INSTANCE: case IDC_WATCH_RULES: case IDC_WATCH_GENERIC: case IDC_WATCH_MESSAGE: case IDC_WATCH_DEFFUN: case IDC_WATCH_STATS: case IDC_WATCH_GLOBAL: case IDC_WATCH_SLOT: case IDC_WATCH_METHOD: case IDC_WATCH_MSGHANDLER: case IDC_WATCH_ACTIVE: case IDC_WATCH_FOCUS: { if (IsDlgButtonChecked (hDlg, wParam)) { SetCheckBox ( hDlg, wParam, 0); count --; } else { SetCheckBox(hDlg, wParam, 1); count++; } if (count == IDC_WATCH_COUNT ) EnableWindow(GetDlgItem(hDlg, IDC_WATCH_ALL ), FALSE); else if ( count == 0 ) EnableWindow(GetDlgItem(hDlg, IDC_WATCH_NONE), FALSE); else { EnableWindow(GetDlgItem(hDlg, IDC_WATCH_ALL ), TRUE); EnableWindow(GetDlgItem(hDlg, IDC_WATCH_NONE ), TRUE); } return (TRUE); } case IDC_WATCH_ALL: { WORD x; for ( x=IDC_WATCH_START; x<=IDC_WATCH_END; x++) SetCheckBox ( hDlg,x,1); EnableWindow(GetDlgItem(hDlg, IDC_WATCH_ALL ), FALSE); EnableWindow(GetDlgItem(hDlg, IDC_WATCH_NONE), TRUE); count = IDC_WATCH_COUNT; return ( TRUE ); } case IDC_WATCH_NONE: { WORD x; for ( x=IDC_WATCH_START; x<=IDC_WATCH_END; x++) SetCheckBox ( hDlg,x,0); EnableWindow(GetDlgItem(hDlg, IDC_WATCH_NONE), FALSE); EnableWindow(GetDlgItem(hDlg, IDC_WATCH_ALL ), TRUE); count = 0; return ( TRUE ); } } } } return ( FALSE );}/******************************************************************** JoeMessage: Callback function to display Prof. Joe Messages.*******************************************************************/BOOL FAR PASCAL _export JoeMessage (hDlg, message, wParam, lParam ) HWND hDlg; unsigned message; WORD wParam; LONG lParam;{ extern HANDLE hInst; switch (message) { case WM_INITDIALOG: { SetDlgItemText ( hDlg, IDC_EDIT, (LPCSTR)lParam); return TRUE; } case WM_PAINT: { PAINTSTRUCT ps; HDC hDC, hDcMemory; HBITMAP hBitMap, hBitMapOld; BITMAP bm; BeginPaint (hDlg, &ps); hBitMap = LoadBitmap ( hInst, "Joe_Bitmap" ); GetObject (hBitMap,sizeof(BITMAP), &bm); hDC = ps.hdc; hDcMemory = CreateCompatibleDC(hDC); hBitMapOld = SelectObject(hDcMemory, hBitMap); BitBlt (hDC,0,0,bm.bmWidth, bm.bmHeight, hDcMemory, 0, 0, SRCCOPY); SelectObject (hDcMemory, hBitMapOld); DeleteObject (hBitMap); DeleteDC (hDcMemory); ReleaseDC (hDlg, hDC); EndPaint(hDlg, &ps); break; } case WM_COMMAND: { switch (wParam) { case IDC_OK: EndDialog (hDlg, IDOK); return TRUE; case IDC_CANCEL: EndDialog (hDlg, IDCANCEL); return TRUE; } } } return ( FALSE );}/******************************************************************** JoeWarnings: Function used to display Prof. Joe Messages.*******************************************************************/int JoeWarnings ( message ) LPSTR message;{ extern int warnings; int result = IDC_OK; if (warnings) { extern HANDLE hInst; extern SCREEN WinDialog; FARPROC lpJoeDlg; lpJoeDlg = MakeProcInstance ((FARPROC) JoeMessage, hInst ); result = DialogBoxParam (hInst, "NOMOJO", WinDialog.hWnd, lpJoeDlg, (LONG)message); FreeProcInstance (lpJoeDlg); } if (result == IDC_OK) return (TRUE); return ( FALSE );}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -