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

📄 recog.c

📁 一些游戏
💻 C
字号:
#include <stdio.h>#include <stdlib.h>#include <time.h>#include <string.h>#include <sys/time.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <pthread.h>#include <semaphore.h>#include <popt.h>#include <unistd.h>#include <sys/wait.h>#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#include <minigui/control.h>#include <minigui/mywindows.h>#include <minigui/mgext.h>#include <minigui/vcongui.h>#include <minigui/filedlg.h>#define IDC_SPEECH	101#define IDC_KEYBORD	102	#define IDC_QUIET	103	#define IDC_NOISY	104#define IDC_PROMPT	105#define IDC_SURE_ON     106#define IDC_SURE_OFF   107#define IDC_CLOSE_ON     108#define IDC_CLOSE_OFF   109#define IDC_SURE_TIMER        110#define IDC_CLOSE_TIMER		111static  HWND  sure_on;static  HWND  sure_off;static  BITMAP bmp1,bmp2,bmp3,bmp4,bmp5,bmp6,bmp7,bmp8,bmp9,bmp10;static const char* filename = "./res/new.gif";int ret;static ANIMATION* anim = NULL;#define IDC_STATIC1 186#define IDC_STATIC2 187/**选择模式对话框**/static DLGTEMPLATE DlgMode ={    	WS_BORDER | WS_CAPTION,    	//WS_EX_TOPMOST,	WS_EX_NOCLOSEBOX,    	0, 0, 240, 320,	"请您选择需要的工作模式",   	0,     	0,    	7,     	NULL,    	0};static CTRLDATA CtrlMode[] ={     	{        	"static",        	WS_VISIBLE | SS_GROUPBOX,         	10, 105, 110, 80,        	IDC_STATIC1,        	"可选模式",        	0    	},        	{        	"button",        	WS_VISIBLE | BS_AUTORADIOBUTTON | BS_CHECKED | WS_TABSTOP | WS_GROUP,        	20, 133, 98, 20,        	IDC_SPEECH,        	"话筒输入",        0    	},        	{        	"button",        	WS_VISIBLE | BS_AUTORADIOBUTTON ,//| BS_NOTIFY,        	20, 159, 98, 20, 		IDC_KEYBORD,         	"键盘输入",        	0    	},        	{        	"static",        	WS_VISIBLE | SS_GROUPBOX | WS_GROUP,         	150, 105, 78, 80,        	IDC_STATIC2,        	"环境",        	0    	},       	 {        	"button",        	WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX| BS_CHECKED| WS_DISABLED,		//WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,        	160, 133, 68, 20,        	IDC_QUIET,        	"安静",        	0    	},        	{        	"button",        	WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX | WS_DISABLED,//| BS_CHECKED,		//| WS_DISABLED,		//WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,         	160, 159, 68, 20,         	IDC_NOISY,         	"嘈杂",        	0    	},        	{        	"static",        	WS_VISIBLE | SS_CENTER | WS_GROUP,        	10, 197, 220, 20,        	IDC_PROMPT,        	"采用话筒输入话音识别",        	0    	},    };static char* prompts [] = {    	"采用话筒输入话音识别",    	"请您使用键盘输入!",};static void my_notif_proc (HWND hwnd, int id, int nc, DWORD add_data){    	if (nc == BN_CLICKED) {        	SetWindowText (GetDlgItem (GetParent (hwnd), IDC_PROMPT), prompts [id - IDC_SPEECH]);    	}}static void my_mode_proc (HWND hwnd, int id, int nc, DWORD add_data){	int j;	HWND hDlg;		if(nc == BN_CLICKED)	{			j=SendMessage(GetDlgItem(hDlg,IDC_KEYBORD),BM_GETCHECK,0,0);		if(j==BST_CHECKED)		SendMessage(GetDlgItem(hDlg,IDC_KEYBORD),BM_SETCHECK,BST_PUSHED,0);			}}static void usage (void){    MessageBox (HWND_DESKTOP,             "\nUsage: vcongui [--row <rows>] [--col <columns>]"            " [<prog> [<options>]]\n\n"            "       <rows>    is the rows of terminal, \n"            "       <columns> is the columns of terminal.\n"            "       <prog>    is the startup program and\n"            "       <options> are the options of the program.\n\n",            "Bad arguments!",            MB_OK | MB_ICONEXCLAMATION);}static int ModeProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam){	int i,id,nc;	int back;#ifdef _LITE_VERSION    	CHILDINFO ChildInfo = {0, NULL, NULL, NULL, NULL, 1, 0, 0, 0, 0};#else    	CHILDINFO ChildInfo = {0, NULL, NULL, NULL, NULL, 1, 0, 0, 0, 0};#endif    	poptContext optCon;    	int rc;    	struct poptOption options[] = {        	{ "row", '\0', POPT_ARG_INT, &ChildInfo.rows, 0 },        	{ "col", '\0', POPT_ARG_INT, &ChildInfo.cols, 0 },        	{0, 0, 0, 0, 0}    	};	    	switch (message) {    		 case MSG_ERASEBKGND:		SetWindowBkColor(hDlg,RGB2Pixel (HDC_SCREEN, 97,172,205));		SetWindowBkColor(GetDlgItem(hDlg,IDC_STATIC1),RGB2Pixel (HDC_SCREEN, 97,172,205));		SetWindowBkColor(GetDlgItem(hDlg,IDC_SPEECH),RGB2Pixel (HDC_SCREEN, 97,172,205));		SetWindowBkColor(GetDlgItem(hDlg,IDC_KEYBORD),RGB2Pixel (HDC_SCREEN, 97,172,205));		SetWindowBkColor(GetDlgItem(hDlg,IDC_STATIC2),RGB2Pixel (HDC_SCREEN, 97,172,205));		SetWindowBkColor(GetDlgItem(hDlg,IDC_QUIET),RGB2Pixel (HDC_SCREEN, 97,172,205));		SetWindowBkColor(GetDlgItem(hDlg,IDC_NOISY),RGB2Pixel (HDC_SCREEN, 97,172,205));		SetWindowBkColor(GetDlgItem(hDlg,IDC_PROMPT),RGB2Pixel (HDC_SCREEN, 97,172,205));		SetWindowBkColor(GetDlgItem(hDlg,IDC_QUIET),RGB2Pixel (HDC_SCREEN, 97,172,205));		SetWindowElementColorEx(GetDlgItem(hDlg,IDC_SPEECH), WED_3DBOX_REVERSE,RGB2Pixel (HDC_SCREEN, 255,255,0));		SetWindowElementColorEx(GetDlgItem(hDlg,IDC_STATIC1), FGC_CONTROL_NORMAL,RGB2Pixel (HDC_SCREEN, 255,255,0));				//SetWindowElementColorEx(GetDlgItem(hDlg,IDC_SPEECH), WED_3DBOX_REVERSE,RGB2Pixel (HDC_SCREEN, 88,233,225));		//SetWindowElementColorEx(GetDlgItem(hDlg,IDC_STATIC1), FGC_CONTROL_NORMAL,RGB2Pixel (HDC_SCREEN, 88,233,225));				break;	case MSG_CREATE:	{	anim = CreateAnimationFromGIF89aFile (HDC_SCREEN, filename);        if (anim == NULL)            return 1;        SetWindowAdditionalData (hDlg, (DWORD) anim);	CreateWindowEx (CTRL_ANIMATION,                           "",                           WS_VISIBLE | ANS_AUTOLOOP | ANS_SCALED,//ANS_FITTOANI,                          WS_EX_TRANSPARENT,                          200,                           10, 12, 220, 80, hDlg, (DWORD)anim);	SendMessage (GetDlgItem (hDlg, 200), ANM_SETANIMATION, 0, (LPARAM)anim);        SendMessage (GetDlgItem (hDlg, 200), ANM_STARTPLAY, 0, 0);				 LoadBitmapFromFile(HDC_SCREEN, &bmp1, "./res/sure_on.png");             sure_on=              CreateWindowEx (CTRL_STATIC, "", WS_CHILD | WS_VISIBLE | SS_BITMAP|SS_NOTIFY,                          WS_EX_TRANSPARENT,                          IDC_SURE_ON, 13, 240,                           95, 40, hDlg, (DWORD)&bmp1);	  			   	LoadBitmapFromFile(HDC_SCREEN, &bmp10, "./res/sure_off.png");             sure_off=              CreateWindowEx (CTRL_STATIC, "", WS_CHILD | WS_VISIBLE | SS_BITMAP,                          WS_EX_TRANSPARENT,                          IDC_SURE_OFF, 13, 240,                           95, 40, hDlg, (DWORD)&bmp10);		ShowWindow(sure_off,SW_HIDE);             ShowWindow(sure_on,SW_SHOW);		   		      		 LoadBitmapFromFile(HDC_SCREEN, &bmp2, "./res/close_on.png");              CreateWindowEx (CTRL_STATIC, "", WS_CHILD | WS_VISIBLE | SS_BITMAP|SS_NOTIFY,                          WS_EX_TRANSPARENT,                          IDC_CLOSE_ON, 128, 240,                           95, 40, hDlg, (DWORD)&bmp2); 	} 	break;			/*case MSG_TIMER:             ShowWindow(sure_off,SW_HIDE);             ShowWindow(sure_on,SW_SHOW);             KillTimer (hDlg, IDC_SURE_TIMER);             break;*/				case MSG_INITDIALOG:        {			SetNotificationCallback (GetDlgItem (hDlg, IDC_QUIET), my_mode_proc);		SetNotificationCallback (GetDlgItem (hDlg, IDC_NOISY), my_mode_proc);		InvalidateRect((GetDlgItem(hDlg,IDC_NOISY)), NULL,  FALSE);            	//int i;            	for (i = IDC_SPEECH; i <= IDC_KEYBORD; i++)                	SetNotificationCallback (GetDlgItem (hDlg, i), my_notif_proc);        }        return 1;			case IDC_KEYBORD:			EnableWindow((GetDlgItem(hDlg,IDC_QUIET)),FALSE);			EnableWindow((GetDlgItem(hDlg,IDC_NOISY)),FALSE);			break;		case MSG_COMMAND:		{        							id=LOWORD(wParam);				nc=HIWORD(wParam);				if(id==IDC_SURE_ON&&nc==STN_CLICKED)				{				ShowWindow(sure_on,SW_HIDE);             			ShowWindow(sure_off,SW_SHOW);				back=SendMessage(GetDlgItem(hDlg,IDC_KEYBORD),BM_GETCHECK,0,0);					if(back==BST_CHECKED)					{					VCOnMiniGUI (&ChildInfo);					break;}					else 					back=SendMessage(GetDlgItem(hDlg,IDC_SPEECH),BM_GETCHECK,0,0);					if(back==BST_CHECKED)					DestroyAnimation ((ANIMATION*)GetWindowAdditionalData (hDlg), TRUE);        				DestroyAllControls (hDlg);					}				else 				if(id==IDC_CLOSE_ON&&nc==STN_CLICKED)				DestroyAnimation ((ANIMATION*)GetWindowAdditionalData (hDlg), TRUE);        			DestroyAllControls (hDlg);				EndDialog (hDlg, wParam);										break;       				}       			 break;			 	case MSG_DESTROY:            {                DestroyAllControls(hDlg);            }            return 0;            }        	return DefaultDialogProc (hDlg, message, wParam, lParam);	}int MiniGUIMain (int argc, const char* argv[]){#ifdef _LITE_VERSION    SetDesktopRect(0, 0, 1024, 768);#endif    		if (!InitMiniGUIExt()) 	{ 	}	DlgMode.controls = CtrlMode;        	DialogBoxIndirectParam (&DlgMode, HWND_DESKTOP, ModeProc, 0L);	MiniGUIExtCleanUp ();}#ifndef _LITE_VERSION#include <minigui/dti.c>#endif 

⌨️ 快捷键说明

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