?? sq_jl.c
字號(hào):
#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[] = { "編號(hào)", "教室", "星期", "第幾節(jié)課", "日期","備注"};static char* jilu[] = { "新校412","星期日","一二節(jié)","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)"增加申請(qǐng)記錄"; InsertMenuItem(hmnu, 2, TRUE, &mii); memset (&mii, 0, sizeof(MENUITEMINFO)); mii.type = MFT_STRING; mii.state = 0; mii.id = IDM_HOUTAI; mii.typedata = (DWORD)"后臺(tái)登陸"; 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); //打開(kāi)指定的數(shù)據(jù)庫(kù)文件,如果不存在將創(chuàng)建一個(gè)同名的數(shù)據(jù)庫(kù)文件 //建立表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節(jié)','新校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節(jié)','新校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節(jié)','新校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); //關(guān)閉數(shù)據(jù)庫(kù) }/*********************************************************/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;/** 所選單元格范圍所跨的列數(shù) */int width;/** 所選單元格范圍所跨的行數(shù) */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; //網(wǎng)格控件的結(jié)構(gòu) 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)); //設(shè)置列表頭的屬性 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); } //設(shè)置行表頭的屬性#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 //設(shè)置單元格的屬性 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 = "申請(qǐng)記錄"; 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; //設(shè)置主窗口的托管窗口為桌面窗口}void sq_jl (HWND hwnd){ MAINWINCREATE CreateInfo;//////////////////////// sql_createtable(); ///////////////////////// if (hMainWnd != HWND_INVALID) { ShowWindow (hMainWnd, SW_SHOWNORMAL); return; } InitCreateInfo (&CreateInfo); CreateInfo.hHosting = hwnd; //設(shè)置主窗口的托管窗口為桌面窗口為main.c創(chuàng)建的窗口 hMainWnd = CreateMainWindow (&CreateInfo); //建立窗體并獲得句柄 MiniGUIExtCleanUp ();}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -