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

📄 login.c

📁 MiniGUI下登陆界面的例子,比较实用,希望对学习MiniGUI的朋友有帮助,压缩包里面有运行后的效果图.
💻 C
字号:
#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#include <minigui/control.h>HWND hMainWnd;#define IDC_SLOGIN	300#define IDC_SUSER	301#define IDC_SPASS	302#define IDC_EUSER	401#define IDC_EPASS	402static DLGTEMPLATE MyDlg={	WS_BORDER|WS_CAPTION,	WS_EX_NONE,	300,300,300,200,	"Login",	0,	0,	6,	NULL,	0};static CTRLDATA CtrlInitData[]={	{		"static",		WS_VISIBLE|SS_SIMPLE,		65,10,200,16,		IDC_SLOGIN,		"Input Name and Password",		0,		WS_EX_NONE	},		{		"static",		WS_VISIBLE|SS_SIMPLE,		10,40,60,16,		IDC_SUSER,		"User Name",		0,		WS_EX_NONE	},	{		"static",		WS_VISIBLE|SS_SIMPLE,		10,80,200,16,		IDC_SPASS,		"Password",		0,		WS_EX_NONE	},	{		"edit",		WS_CHILD|WS_VISIBLE|WS_BORDER|WS_TABSTOP,		70,40,180,25,		IDC_EUSER,		"",		0,		WS_EX_NONE	},			{		"edit",		WS_CHILD|WS_VISIBLE|WS_BORDER|WS_TABSTOP|ES_PASSWORD,		70,80,180,25,		IDC_EPASS,		"",		0,		WS_EX_NONE	},	{		"button",				WS_VISIBLE|WS_TABSTOP|BS_DEFPUSHBUTTON,		100,130,80,25,		IDOK,		"OK",		0,		WS_EX_NONE	}};#define USER_NO	3static char *g_user[USER_NO]={				"pudn",				"",				"root"			      };static char *g_pass[USER_NO]={				"pudn",				"",				"linux"			      };static BOOL CheckUser(char *user,char *pass){	int i;		if(USER_NO==0)			return(TRUE);	for(i=0;i<USER_NO;i++)	{		if (strcmp(user,g_user[i])==0)		{			if(strcmp(user,g_pass[i])==0)				return(TRUE);			else				return(FALSE);		}	}	return(FALSE);}		static int MyDlgProc(HWND hDlg,int message,WPARAM wParam,LPARAM lParam){	char user[30];	char pass[30];	switch(message)	{		case MSG_INITDIALOG:			return(1);		case MSG_COMMAND:			switch(LOWORD(wParam))			{				case IDC_EUSER:				case IDC_EPASS:					if(HIWORD(wParam)!=EN_ENTER)						break;				case IDOK:					GetWindowText(GetDlgItem(hDlg,IDC_EUSER),user,22);					GetWindowText(GetDlgItem(hDlg,IDC_EPASS),pass,22);					if(CheckUser(user,pass))					{						EndDialog(hDlg,wParam);						DestroyAllControls(hDlg);					}					else					{						MessageBox(hDlg,"ERROR!","FALSE",							   MB_OKCANCEL|MB_ICONHAND);					}					break;				default:					break;			}			break;	defaule:		break;		}		return(DefaultDialogProc(hDlg,message,wParam,lParam));}static void LoginBox(HWND hWnd){	MyDlg.controls=CtrlInitData;	DialogBoxIndirectParam(&MyDlg,hWnd,MyDlgProc,0L);}static char *hello_str="Welcom login!";static int WinProc(HWND hWnd,int message,WPARAM wParam,LPARAM lParam){	HDC hdc;	switch(message)	{		case MSG_PAINT:			hdc=BeginPaint(hWnd);			TextOut(hdc,50,80,hello_str);			EndPaint(hWnd,hdc);			break;		case MSG_CLOSE:			DestroyMainWindow(hWnd);			PostQuitMessage(hWnd);			break;		default:			return(DefaultMainWinProc(hWnd,message,wParam,lParam));	}	return(0);}int InitMainWindow(void){	MAINWINCREATE window_info;	window_info.dwStyle=WS_VISIBLE|WS_BORDER|WS_CAPTION;	window_info.dwExStyle=WS_EX_NONE;	window_info.spCaption="TYUT";	window_info.hMenu=0;	window_info.hCursor=GetSystemCursor(0);	window_info.hIcon=0;	window_info.MainWindowProc=WinProc;	window_info.lx=0;	window_info.ty=0;	window_info.rx=320;	window_info.by=240;	window_info.iBkColor=COLOR_lightwhite;	window_info.dwAddData=0;	window_info.hHosting=HWND_DESKTOP;	hMainWnd=CreateMainWindow(&window_info);	if(hMainWnd==HWND_INVALID)	return(0);	else				return(1);}int MiniGUIMain(int argc,const char *argv[]){	MSG Msg;	#ifdef _LITE_VERSION		SetDesktopRect(0,0,800,600);	#endif		LoginBox(HWND_DESKTOP);		InitMainWindow();		ShowWindow(hMainWnd,SW_SHOWNORMAL);		while(GetMessage(&Msg,hMainWnd))	{		TranslateMessage(&Msg);		DispatchMessage(&Msg);	}		MainWindowThreadCleanup(hMainWnd);	return(0);}#ifndef _LITE_VERSION	#include<minigui/dti.c>#endif

⌨️ 快捷键说明

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