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

📄 addruledlg.cpp

📁 此程序可以把编译原理中的不确定的有限自动机确定化
💻 CPP
字号:

#include <windows.h>
#include "resource.h"
#include "Machine.h"

extern HWND hAddDlg;

BOOL CALLBACK AddRuleDlgProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
	int     Temp;
	TCHAR   Input[2];
	BOOL    bRight;	
	RULE_PARAM  param;

	switch(msg)
	{
	case WM_COMMAND:
		if (LOWORD(wParam) == IDC_ADD)
		{
			// 初始化 param
			param.Rule.oldstate = -1;
			param.Rule.newstate = -1;
			param.Rule.input    = 0;
			param.StartState = -1;
			param.EndState   = -1;
			// 取得各项输入
			Temp = GetDlgItemInt(hwnd,IDC_OLDSTATE,&bRight,FALSE);
			if (bRight) 	param.Rule.oldstate = Temp;
			
			ZeroMemory(Input,sizeof(TCHAR) * 2);
			GetDlgItemText(hwnd,IDC_INPUT,Input,2);
			param.Rule.input = Input[0];

			Temp = GetDlgItemInt(hwnd,IDC_NEWSTATE,&bRight,FALSE);
			if (bRight) 	param.Rule.newstate = Temp;

			Temp = GetDlgItemInt(hwnd,IDC_START,&bRight,FALSE);
			if (bRight) 	param.StartState = Temp;

			Temp = GetDlgItemInt(hwnd,IDC_END,&bRight,FALSE);
			if (bRight) 	param.EndState = Temp;
			// 向父窗口发送消息
			SendMessage(GetParent(hwnd),WM_ADDRULE,(WPARAM)&param,0);
			// 清空各控件
			SetDlgItemText(hwnd,IDC_OLDSTATE,TEXT(""));
			SetDlgItemText(hwnd,IDC_INPUT,TEXT(""));
			SetDlgItemText(hwnd,IDC_NEWSTATE,TEXT(""));
			SetDlgItemText(hwnd,IDC_START,TEXT(""));
			SetDlgItemText(hwnd,IDC_END,TEXT(""));
			SetFocus(GetDlgItem(hwnd,IDC_OLDSTATE));
		}
		else if (LOWORD(wParam) == IDC_CANCEL)
		{
			hAddDlg = NULL;
			EndDialog(hwnd,0);
		}
		return TRUE;
	case WM_CLOSE:
		hAddDlg = NULL;
		EndDialog(hwnd,0);
		return TRUE;
	}
	return FALSE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -