⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dialog1.c

📁 NASA 开发使用的一个专家系统
💻 C
📖 第 1 页 / 共 2 页
字号:
	    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 + -