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

📄 sq_jl.c

📁 教学资源管理系统教室分配子系统,也是一个毕业设计.minigui下的!
💻 C
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include "sqlite3.h"#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#include <minigui/control.h>#include <minigui/mgext.h>#define IDC_BUTTON          100#define IDC_CHECKBOX        200#define IDC_RADIOBUTTON     300/***************8********/#define IDM_SHENQING 200#define IDM_JILU 210#define IDM_ZENGJIA 220#define IDM_HOUTAI  300/*******8**************/static PLOGFONT  logfontgb12;static HWND hMainWnd = HWND_INVALID,hGVWnd;char **azResult;char **temp;int maxint; char arr[][20] = {"0","0"};char test[20] = {"0"};int i,j,flag = 5;#if 1/**********************************/enum {    ID_ADDCOLUMN = 100,    ID_DELCOLUMN,    ID_ADDROW,    ID_DELROW,    ID_GETCOLNUM,    ID_GETROWNUM,    ID_SETPROPERTY,    ID_SETCOLWIDTH,    ID_SETROWHEIGHT,    ID_GETCOLWIDTH,    ID_GETROWHEIGHT,    ID_SETSELECTED,    ID_SETNUMBERCELL,    ID_SETCHECKBOX,    ID_SETSELECTION,};/**********************************/#endifstatic char* colnames[] = {   "编号", "教室", "星期", "第几节课", "日期","备注"};static char* jilu[] = {	"新校412","星期日","一二节","2007/09/08"};enum {    IDC_GRIDVIEW,};/******************8***********************///建立菜单static HMENU createpmenufile (void){    HMENU hmnu;    MENUITEMINFO mii;    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.id          = 0;    mii.typedata    = (DWORD)"操作";    hmnu = CreatePopupMenu (&mii);    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_SHENQING;    mii.typedata    = (DWORD)"删除操作";    InsertMenuItem(hmnu, 0, TRUE, &mii);    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_JILU;    mii.typedata    = (DWORD)"修改操作";    InsertMenuItem(hmnu, 1, TRUE, &mii);   /* memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_ZENGJIA;    mii.typedata    = (DWORD)"增加申请记录";    InsertMenuItem(hmnu, 2, TRUE, &mii);    memset (&mii, 0, sizeof(MENUITEMINFO));    mii.type        = MFT_STRING;    mii.state       = 0;    mii.id          = IDM_HOUTAI;    mii.typedata    = (DWORD)"后台登陆";    InsertMenuItem(hmnu, 3, TRUE, &mii);*/	return hmnu;}static HMENU createmenu (void){	HMENU hmnu;    	MENUITEMINFO mii;	hmnu = CreateMenu();    	memset (&mii, 0, sizeof(MENUITEMINFO));   	mii.type        = MFT_STRING;    	mii.id          = 100;    	mii.typedata    = (DWORD)"操作";    	mii.hsubmenu    = createpmenufile ();    	InsertMenuItem(hmnu, 0, TRUE, &mii);	return hmnu;}/*****************************************//*********************************************************/int sql_createtable( void ){	sqlite3 *db=NULL;	char *zErrMsg = 0;	int rc,nrow,ncolumn,i,y,j;	char sql_cmd[200];		char* max;//	char szSQL[100] = {"select max(number) from sq AS number;"};	sqlite3_open("zieckey.db", &db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件	//建立表js	sprintf(sql_cmd,"CREATE TABLE js(number INTEGER PRIMARY KEY,jiaoshi char(24))");	rc = sqlite3_exec(db,sql_cmd,  NULL, NULL, &zErrMsg);	if(rc==SQLITE_OK)		printf("create table1 successful\n");	else		printf("%s\n",zErrMsg);	sprintf(sql_cmd,"INSERT INTO js (number,jiaoshi) VALUES(1,'新校102')");	rc = sqlite3_exec(db, sql_cmd, NULL, NULL, &zErrMsg);	if(rc==SQLITE_OK)		printf("inster js successful\n");	else		printf("%s\n",zErrMsg);	//建立表sq//	sprintf(sql_cmd,"CREATE TABLE sq(number INTEGER PRIMARY KEY,riqi DATE,jiaoshi char(20),xingqi char(24),kebie char//(32),beizhu char(50))");		sprintf(sql_cmd,"CREATE TABLE sq(number INTEGER PRIMARY KEY , jiaoshi char(13),xingqi char(13),kebie char(13),riqi char(13))");	rc = sqlite3_exec(db,sql_cmd,  NULL, NULL, &zErrMsg);	if(rc==SQLITE_OK)		printf("create table3 successful\n");	else		printf("%s\n",zErrMsg);#if 0	//1	sprintf(sql_cmd,"INSERT INTO sq (xingqi,kebie,jiaoshi,riqi) VALUES('星期一','1,2节','新校102','2008/1/2')");	rc = sqlite3_exec(db, sql_cmd, NULL, NULL, &zErrMsg);	//2	sprintf(sql_cmd,"INSERT INTO sq (xingqi,kebie,jiaoshi,riqi) VALUES('星期一','3,4节','新校102','2008/2/4')");	rc = sqlite3_exec(db, sql_cmd, NULL, NULL, &zErrMsg);	//3	sprintf(sql_cmd,"INSERT INTO sq (xingqi,kebie,jiaoshi,riqi) VALUES('星期二','1,2节','新校102','2008/5/6')");	rc = sqlite3_exec(db, sql_cmd, NULL, NULL, &zErrMsg);#endif	if(rc==SQLITE_OK)		printf("inster sq successful\n");	else		printf("%s\n",zErrMsg);/*查询*/	sprintf(sql_cmd,"SELECT * FROM sq ");	rc = sqlite3_get_table(db,sql_cmd,&azResult,&nrow,&ncolumn,&zErrMsg);		if(rc == SQLITE_OK)			printf(" sqlite3_get_table\n");		else			printf("%s\n",zErrMsg);		for( i=0 ; i<( nrow + 1 ) * ncolumn ; i++ )		{			printf( "azResult[%d] = %s\n", i , azResult[i] );				}/**/#if 1/*************************************/	sprintf(sql_cmd,"select max(number) from sq AS number");	sqlite3_get_table(db, sql_cmd, &temp, &nrow, &ncolumn, &zErrMsg);//	printf("%d  %d\n",nrow,ncolumn);	for( i = 1 ;i < nrow+1; i++){//				printf( "temp[%d] = %s\n", i , temp[i] );				max = temp[1*ncolumn+0];	}	maxint=atoi(max);	printf("maxint=%d \n",maxint);	printf("max=%c \n",*max);#endif/************************************/		sqlite3_close(db); //关闭数据库	}/*********************************************************/static intelement(int x,int y,int i ){		GRIDCELLDATATEXT cellnum;		GRIDCELLS cellsel;		GRIDCELLDATA celldata;		cellnum.buff = azResult[i];                cellnum.len_buff =-1;                celldata.content = &cellnum;                celldata.mask = GVITEM_MAINCONTENT;                celldata.style = GV_TYPE_TEXT;                cellsel.row = x;                cellsel.column = y;                cellsel.width = 1;                cellsel.height = 1;		sprintf( test, cellnum.buff );                SendMessage(hGVWnd, GRIDM_SETCELLPROPERTY, (WPARAM)&cellsel, (LPARAM)&celldata);		}static int ControlTestWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam){    HWND hwnd;    switch (message) {        case MSG_CREATE:////////////////////////////////////	{                int i,j,k,flag=5;		HDC hdc;#if 0typedef struct _GRIDCELLS{/** 所选单元格的起始行 */int row;/** 所选单元格的起始列 */int column;/** 所选单元格范围所跨的列数 */int width;/** 所选单元格范围所跨的行数 */int height;}GRIDCELLS;		#endif        	hdc = BeginPaint (hWnd);		logfontgb12 = CreateLogFont (NULL, "song", "GB2312",                                               FONT_WEIGHT_REGULAR, FONT_SLANT_ROMAN, FONT_SETWIDTH_NORMAL,                                              FONT_SPACING_CHARCELL, FONT_UNDERLINE_NONE, FONT_STRUCKOUT_NONE,                                              20, 0);		GRIDCELLS cellsel;                                 //		 add_button("删除一行", ID_DELROW);                                    GRIDCELLDEPENDENCE dep;                GRIDCELLDATA celldata;                GRIDCELLDATAHEADER header;                GRIDCELLDATATEXT cellnum;                GRIDVIEWDATA gvdata;  //网格控件的结构                gvdata.nr_rows = 15;   //4行                gvdata.nr_cols = 5;   //4列                gvdata.row_height = 20;                gvdata.col_width  = 100;                hGVWnd = CreateWindowEx (CTRL_GRIDVIEW, "Grid View",                                           WS_CHILD | WS_VISIBLE | WS_VSCROLL |                                           WS_HSCROLL | WS_BORDER, WS_EX_NONE, IDC_GRIDVIEW, 0, 0, 700,500, hWnd, (DWORD)&gvdata);                memset(&header, 0, sizeof(header));                memset(&celldata, 0, sizeof(celldata));                //设置列表头的属性                for (i = 1; i<= 5; i++)                {                    header.buff = colnames[i-1];                    header.len_buff = -1;                    celldata.content = &header;                    celldata.mask = GVITEM_MAINCONTENT;                    celldata.style = GV_TYPE_HEADER;                    cellsel.row = 0;                    cellsel.column = i;                    cellsel.width = 1;                    cellsel.height = 1;                    SendMessage(hGVWnd, GRIDM_SETCELLPROPERTY, (WPARAM)&cellsel, (LPARAM)&celldata);                }        		   //设置行表头的属性#if 1                memset(&header, 0, sizeof(header));                memset(&celldata, 0, sizeof(celldata));                for (i = 1; i<= 15; i++)                {                    header.buff =  0;                    header.len_buff = -1;                    celldata.content = &header;                    celldata.mask = GVITEM_MAINCONTENT;                    celldata.style = GV_TYPE_HEADER;                    cellsel.row = i;                    cellsel.column = 0;                    cellsel.width = 1;                    cellsel.height = 1;                    SendMessage(hGVWnd, GRIDM_SETCELLPROPERTY, (WPARAM)&cellsel, (LPARAM)&celldata);                }#endif				    	 //设置单元格的属性		 SelectFont (hdc, logfontgb12);		 for (i =1; i<=4; i++)		{                memset(&celldata, 0, sizeof(celldata));                memset(&cellnum, 0, sizeof(cellnum));                cellnum.buff = 0;                cellnum.len_buff =-1;                celldata.content = &cellnum;                celldata.mask = GVITEM_MAINCONTENT;                celldata.style = GV_TYPE_TEXT;                cellsel.row = 1;  		//起始行                cellsel.column = 1;		//起始列                cellsel.width = 1;                cellsel.height = 1;                SendMessage(hGVWnd, GRIDM_SETCELLPROPERTY, (WPARAM)&cellsel, (LPARAM)&celldata);		}#if 0		element( 1, 2, 9 );		element( 1, 3, 10 );		for (i = 14, j = 2,k = 1, azResult[i] != '\0'; k<=3; i++ , k++){			element( j, k, i );		}				for (i = 20, j=3,k=1, azResult[i] != '\0'; k<=3; i++ , k++){			element( j, k, i );		}		if (azResult[i+2] != '\0'){		for (i = 26, j=4,k=1, azResult[i] != NULL ; k<=3; i++ , k++){			element( j, k, i );		}		}		if (azResult[i+2] != '\0'){		for (i = 32, j=5,k=1, azResult[i] != NULL ; k<=3; i++ , k++){			element( j, k, i );		}		}#endif/*****************************************************************/			for (j = 1; j<=maxint; j++)				for(i = 1; i<= 5; i++,flag++)										element( j, i, flag );//										/*****************************************************************/#if 0			for (j = 1 , i = 1 , flag = 6 ; j <= 4; j++ , flag++ )			{				if (azResult[flag+1] =='\0')					break;				element( i, j, flag ); 			}				for (j = 1 , i = 2 , flag = 11 ; j <= 4; j++ , flag++ )			{				if (azResult[flag+1] =='\0')					break;				element( i, j, flag ); 			}								for (j = 1 , i = 3 , flag = 12 ; j <= 4; j++ , flag++ )			{				if (azResult[flag+1] =='\0')					break;				element( i, j, flag ); 							}							for (j = 1 , i = 4 , flag = 16 ; j <= 4; j++ , flag++ )			{				if (azResult[flag+1] =='\0')					break;				element( i, j, flag ); 			}#endif				}///////////////////////////////////	return 0;		        case MSG_COMMAND:/***********************************************/		switch (wParam){			case IDM_SHENQING:				del(hMainWnd);				DestroyMainWindow (hWnd);//				sql_createtable();//			for (j = 1; j<=maxint; j++)//				for(i = 1; i<= 5; i++,flag++)//					element( j, i, flag );         		break;			case IDM_JILU:				xiugai(hMainWnd);				DestroyMainWindow (hWnd);//				sql_createtable();//			for (j = 1; j<=maxint; j++)//				for(i = 1; i<= 5; i++,flag++)//					element( j, i, flag );			break;}/***********************************************/	        break;               case MSG_DESTROY:            DestroyAllControls (hWnd);            hMainWnd = HWND_INVALID;        return 0;        case MSG_CLOSE:            DestroyMainWindow (hWnd);            MainWindowCleanup (hWnd);            return 0;    }    return DefaultMainWinProc (hWnd, message, wParam, lParam);}static void InitCreateInfo(PMAINWINCREATE pCreateInfo){    pCreateInfo->dwStyle = WS_CAPTION | WS_BORDER | WS_VISIBLE;    pCreateInfo->dwExStyle = WS_EX_NONE;    pCreateInfo->spCaption = "申请记录";    pCreateInfo->hMenu =createmenu();    pCreateInfo->hCursor = GetSystemCursor(1);    pCreateInfo->hIcon = 0;    pCreateInfo->MainWindowProc = ControlTestWinProc;    pCreateInfo->lx = 100;     pCreateInfo->ty = 200;    pCreateInfo->rx = 700;    pCreateInfo->by = 650;    pCreateInfo->iBkColor = GetWindowElementColor (BKC_CONTROL_DEF);     pCreateInfo->dwAddData = 0;    pCreateInfo->hHosting = HWND_DESKTOP;  //设置主窗口的托管窗口为桌面窗口}void sq_jl (HWND hwnd){    MAINWINCREATE CreateInfo;//////////////////////// sql_createtable();	/////////////////////////    if (hMainWnd != HWND_INVALID) {        ShowWindow (hMainWnd, SW_SHOWNORMAL);        return;    }    InitCreateInfo (&CreateInfo);    CreateInfo.hHosting = hwnd;         //设置主窗口的托管窗口为桌面窗口为main.c创建的窗口    hMainWnd = CreateMainWindow (&CreateInfo);   //建立窗体并获得句柄   	MiniGUIExtCleanUp ();}

⌨️ 快捷键说明

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