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

📄 listview.c

📁 这是一个MINITGUI2。0的应用程序
💻 C
字号:
/*** $Id: listview.c,v 1.24 2006/05/22 06:54:30 pengjing Exp $**** listview.c: Sample program for MiniGUI Programming Guide**      Usage of LISTVIEW control.**** Copyright (C) 2004 ~ 2006 Feynman Software.**** License: GPL*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/stat.h>#include <sys/types.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_CHARS    10#define IDC_CTRL1       20#define IDC_CTRL2       30#define SUB_NUM      3static char * caption [] ={#ifdef _LANG_ZHCN    "姓名", "语文", "数学", "英语"#else    "Number", "Cigerate", "Price", "Guantity"#endif};#define COL_NR       TABLESIZE(caption)static char *classes [] ={#ifdef _LANG_ZHCN    "1班", "2班", "3班"#else    "Grade 1", "Grade 2", "Grade 3"#endif};typedef struct _SCORE{    	char *number;    	char *name;    	unsigned int price;    	unsigned int quantity;} SCORE;/*static SCORE scores[] ={#ifdef _LANG_ZHCN    {"小明", {81, 96, 75}},    {"小强", {98, 62, 84}},    {"小亮", {79, 88, 89}},    {"小力", {79, 88, 89}},#else    {"Tom", {81, 96, 75}},    {"Jack", {98, 62, 84}},    {"Merry", {79, 88, 89}},    {"Bob", {79, 88, 89}},#endif};*///#define SCORE_NUM    TABLESIZE(scores)static GHANDLE add_class_item (HWND hlist, PLVITEM lvItem, GHANDLE classent){    	LVSUBITEM subdata;    	GHANDLE item = SendMessage (hlist, LVM_ADDITEM, classent, (LPARAM)lvItem);    	subdata.nItem = lvItem->nItem;    	subdata.subItem = 0;    	subdata.pszText = classes[lvItem->nItem];;    	subdata.nTextColor = 0;    	subdata.flags = 0;    	subdata.image = 0;    	SendMessage (hlist, LVM_SETSUBITEM, item, (LPARAM) & subdata);    	return item;}#ifdef CUSTOM_DRAWstatic void my_draw_hdr_bk (HWND hWnd, HLVHDR hlvhdr, HDC hdc, RECT *rcDraw){    	SetBrushColor (hdc, PIXEL_yellow);    	FillBox (hdc, rcDraw->left, rcDraw->top, RECTWP(rcDraw), RECTHP(rcDraw));}static void my_draw_hdr_item (HWND hWnd, int idx, HDC hdc, RECT *rcDraw){    	Rectangle (hdc, rcDraw->left, rcDraw->top, rcDraw->right, rcDraw->bottom);    	SetBkMode (hdc, BM_TRANSPARENT);    	TextOut (hdc, rcDraw->left+4, rcDraw->top+4, caption[idx]);}#endifstatic void my_notif_proc (HWND hwnd, int id, int nc, DWORD add_data){    unsigned char buff [256] = {0};    if (id == IDC_CHARS && nc == EN_CHANGE) {        GetWindowText (hwnd, buff, 4);        SendMessage (hwnd, EM_SETCARETPOS, 0, 0);        SendMessage (GetDlgItem (GetParent (hwnd), IDC_CHARS), MSG_CHAR, buff[0], 0L);    }}       static intScoreProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam){    	HWND hListView;    	static PLOGFONT my_font;    	hListView = GetDlgItem (hDlg, IDC_CHARS);    	switch (message)    	{    	case MSG_INITDIALOG:    	{        	int i;// j;        	LVITEM item;        	LVCOLUMN lvcol;        	//GHANDLE hitem;#ifdef CUSTOM_DRAW        LVCUSTOMDRAWFUNCS myfuncs = {my_draw_hdr_bk, my_draw_hdr_item};        SendMessage (hListView, LVM_SETCUSTOMDRAW, 0, (LPARAM) &myfuncs);#endif        for (i = 0; i < COL_NR; i++) {            	lvcol.nCols = i;            	lvcol.pszHeadText = caption[i];            	lvcol.width = 150;            	lvcol.pfnCompare = NULL;            	lvcol.colFlags = 0;            	SendMessage (hListView, LVM_ADDCOLUMN, 0, (LPARAM) &lvcol);        }        item.nItemHeight = 25;	my_font = CreateLogFont (NULL, "fmhei", "utf-8",                         FONT_WEIGHT_REGULAR, FONT_SLANT_ROMAN, FONT_SETWIDTH_NORMAL,                        FONT_SPACING_CHARCELL, FONT_UNDERLINE_NONE, FONT_STRUCKOUT_NONE,                         20, 0);       	SetNotificationCallback (hListView, my_notif_proc);	SendMessage (hListView, EM_SETREADONLY,FALSE,0L);	SendMessage (hListView, MSG_KEYDOWN, SCANCODE_INSERT, 0L);        break;    	}    	case MSG_COMMAND:    	{        	int id = LOWORD (wParam);               	if (id == IDC_CTRL2) {            		float average = 0;            		char buff[20];            	            		average = 2;//average / (SCORE_NUM * SUB_NUM);            		sprintf (buff, "%4.1f", average);            		SendDlgItemMessage (hDlg, IDC_CTRL1, MSG_SETTEXT, 0, (LPARAM)buff);        	}        break;    	}    	case MSG_CLOSE:    	{        	EndDialog (hDlg, 0);        	break;    	}    }    return DefaultDialogProc (hDlg, message, wParam, lParam);}static CTRLDATA CtrlScore[] ={    	{        	"button",        	WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,         	360, 400, 100, 40,        	IDC_CTRL2,#ifdef _LANG_ZHCN        "求总平均分",#else        	"amount",#endif        	0    	},    	{        	"edit",        	WS_CHILD | WS_VISIBLE | WS_BORDER,        	10, 400, 100, 40,        	IDC_CTRL1,        	"",        	0    	},    	{        	"listview",        	WS_BORDER | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | ES_CENTER ,         	10, 10, 600, 380,        	IDC_CHARS,        	"score table",        	0    	},};static DLGTEMPLATE DlgScore ={    	WS_BORDER | WS_CAPTION,    	WS_EX_NONE,    	0, 0, 640, 480,#ifdef _LANG_ZHCN    "求平均分",#else    "          CHIP company total prices machine",#endif    	0, 0,    	0, NULL,    	0};int MiniGUIMain (int argc, const char* argv[]){#ifdef _MGRM_PROCESSES    JoinLayer(NAME_DEF_LAYER , "listview" , 0 , 0);#endif        	if (!InitMiniGUIExt()) {        	return 2;    	}    	DlgScore.controls = CtrlScore;    	DlgScore.controlnr = TABLESIZE(CtrlScore);    	    	DialogBoxIndirectParam (&DlgScore, HWND_DESKTOP, ScoreProc, 0L);    	MiniGUIExtCleanUp ();    	return 0;}#ifndef _LITE_VERSION#include <minigui/dti.c>#endif

⌨️ 快捷键说明

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