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

📄 controls.c

📁 这是ARM嵌入式系统的实验教程中的MINIGUI的实验源代码!
💻 C
📖 第 1 页 / 共 2 页
字号:
/*** $Id: controls.c,v 1.27 2005/02/19 05:35:11 panweiguo Exp $**** The controls of minigui**** Copyright (C) 2004 Feynman Software.**** Create date: 2004/07/20*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <locale.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>#include "global.h"int control_scene_init (HWND hWnd, MDSCENE *pScene);/* ------------------------------- static ---------------------------------- */static CTRLDATA my_ctrl_static[] ={    {        "static",        WS_VISIBLE | SS_GROUPBOX,         16, 10, 287, 160,        IDC_STATIC,
#ifdef MGDEMO_ENGLISH 
		"Group Box",
#else
		"分组框",
#endif         0    },    {        "static",        WS_VISIBLE | WS_BORDER | SS_SIMPLE,         26, 35, 120, 25,        IDC_STATIC,
#ifdef MGDEMO_ENGLISH 
		"Simple Static Contorl",
#else
		"简单文本框",
#endif                0    },    {        "static",        WS_VISIBLE | WS_BORDER | SS_LEFT,         155, 35, 120, 65,        IDC_STATIC,
#ifdef MGDEMO_ENGLISH 
		"Left-aligned text, that can show multi-line",
#else
		"左对齐文本框, 可以显示多行文本.",
#endif                0    },    {        "static",        WS_VISIBLE | WS_BORDER | SS_RIGHT,         26, 75, 120, 25,        IDC_STATIC,
#ifdef MGDEMO_ENGLISH 
		"Right-aligned text",
#else
		"右对齐文本框",
#endif                    0    },    {        "static",        WS_VISIBLE | WS_BORDER | SS_CENTER,         26, 115, 250, 25,        IDC_STATIC,
#ifdef MGDEMO_ENGLISH 
		"Center-aligned text",
#else
		"居中对齐文本框",
#endif         0    },};const char * ctrl_static_tips[] = {#ifdef MGDEMO_ENGLISH 
	"Text Static Contol",
#else
		"文本型静态框",
#endif    NULL};static CTRLDATA my_ctrl_static2[] ={    {        "static",        WS_VISIBLE | WS_BORDER | SS_BITMAP,         16, 10, 128, 53,        IDC_STATIC,        "",        (DWORD)bmp_fm_logo,    },    {        "static",        WS_VISIBLE | WS_BORDER | SS_BITMAP,         195, 30, 87, 138,        IDC_STATIC,        "",        (DWORD)bmp_feynman,    },};const char * ctrl_static2_tips[] = {
#ifdef MGDEMO_ENGLISH 
	"Bitmap Static Contol",
#else
	"位图型静态框",
#endif        NULL};/* ------------------------------- button ---------------------------------- */static CTRLDATA my_ctrl_button[] ={     {        "button",        WS_VISIBLE | BS_PUSHBUTTON,        26, 18, 100, 25,        IDOK,
#ifdef MGDEMO_ENGLISH 
		"Command Button",
#else
		"命令按钮",
#endif                0    },    {        "button",        WS_VISIBLE | BS_PUSHBUTTON | BS_MULTLINE,        150, 18, 100, 75,        IDOK,
#ifdef MGDEMO_ENGLISH 
	#ifdef _PHONE_WINDOW_STYLE
			"Command Button",
	#else
			"Command Button, show multi-line text",
	#endif
#else
	#ifdef _PHONE_WINDOW_STYLE
			"命令按钮",
	#else
			"命令按钮, 可以显示多行文本",
	#endif
#endif        

		        0    },    {        "button",        WS_VISIBLE | BS_PUSHBUTTON | BS_BITMAP,        26, 110, 59, 28,        IDOK,        "",
#ifdef MGDEMO_ENGLISH
		(DWORD)bmp_ctrlbtn_en,
#else        (DWORD)bmp_ctrlbtn,
#endif    },    {        "button",        WS_VISIBLE | BS_PUSHBUTTON | BS_BITMAP,        100, 110, 59, 28,        IDOK,        "",
#ifdef MGDEMO_ENGLISH
		(DWORD)bmp_gdibtn_en,
#else
        (DWORD)bmp_gdibtn,
#endif            },    {        "static",        WS_VISIBLE | BS_PUSHBUTTON | BS_BITMAP,        23, 145, 100, 28,        IDOK,
#ifdef MGDEMO_ENGLISH 
		"Bitmap Buttons",
#else
		 "位图型按钮",
#endif         0,    },};const char * ctrl_button_tips[] = {#ifdef MGDEMO_ENGLISH 
		"Button",
#else
		"按钮",
#endif 		    NULL,};#define IDC_LAMIAN              101#define IDC_CHOUDOUFU           102#define IDC_JIANBING            103#define IDC_MAHUA               104#define IDC_SHUIJIAO            105#define IDC_XIAN                110#define IDC_LA                  111#define IDC_DING                112#define IDC_PROMPT              200static CTRLDATA my_ctrl_button2[] ={     {        "static",        WS_VISIBLE | SS_GROUPBOX,         16, 10, 130, 160,        IDC_STATIC,        "GUI",        0    },    {        "button",        WS_VISIBLE | BS_AUTORADIOBUTTON | BS_CHECKED | WS_GROUP,        28, 38, 100, 20,        IDC_LAMIAN,        "MiniGUI",        0    },    {        "button",        WS_VISIBLE | BS_AUTORADIOBUTTON,         28, 64, 100, 20,         IDC_CHOUDOUFU,         "Qt/Embedded",        0    },    {        "button",        WS_VISIBLE | BS_AUTORADIOBUTTON,        28, 90, 100, 20,        IDC_JIANBING,        "MicroWindows",        0    },    {        "static",        WS_VISIBLE | SS_GROUPBOX | WS_GROUP,         160, 10, 150, 160,        IDC_STATIC,
#ifdef MGDEMO_ENGLISH 
		"Excellence",
#else
		"优点",
#endif 		                0    },    {        "button",        WS_VISIBLE | BS_AUTOCHECKBOX | BS_CHECKED,         170, 38, 120, 20,        IDC_XIAN,#ifdef MGDEMO_ENGLISH 
		"Function Powerful",
#else
		"功能强大",
#endif        0    },    {        "button",        WS_VISIBLE | BS_AUTOCHECKBOX | BS_CHECKED,         170, 64, 120, 20,         IDC_LA, 
#ifdef MGDEMO_ENGLISH 
		"High Performance",
#else
		"性能好",
#endif                0    },    {        "button",        WS_VISIBLE | BS_AUTOCHECKBOX | BS_CHECKED,         170, 90, 120, 20,         IDC_DING, 
#ifdef MGDEMO_ENGLISH 
		"Enable Customize",
#else
		"可定制",
#endif                0    },};const char * ctrl_button2_tips[] = {
#ifdef MGDEMO_ENGLISH 
	"Check Button and Radio Button",
#else
		"复选框和单选钮",
#endif         NULL,};/* ------------------------------- edit ---------------------------------- */#define IDC_EDIT1   100static CTRLDATA my_ctrl_sledit[] ={     {        CTRL_SLEDIT,        WS_VISIBLE | WS_BORDER,         16, 10, 150, 25,        IDC_EDIT1,

#ifdef MGDEMO_ENGLISH 
		"normal single line edit",
#else
		"普通单行编辑框",
#endif                 0    },    {        CTRL_SLEDIT,        WS_VISIBLE | ES_BASELINE,         16, 50, 150, 25,        IDC_EDIT1,
#ifdef MGDEMO_ENGLISH 
		"base line style",
#else
		"base line 风格",
#endif                0    },    {        "edit",        WS_VISIBLE | WS_BORDER | ES_PASSWORD,         16, 90, 150, 25,        IDC_EDIT1,        "1999-2004",        0    },    {        CTRL_SLEDIT,        WS_VISIBLE | WS_BORDER | ES_READONLY,         16, 130, 150, 25,        IDC_EDIT1,
#ifdef MGDEMO_ENGLISH 
		"readonly edit",
#else
		"只读编辑框",
#endif                 0    },};const char * ctrl_sledit_tips[] = {
#ifdef MGDEMO_ENGLISH 
		"Edit",
		"MiniGUI support single line and multi-line edit",
		"more style and function",
#else
		"编辑框",
		"MiniGUI 提供单行和多行编辑框",
		"具有多种风格和功能",
#endif    NULL};static CTRLDATA my_ctrl_medit[] ={     {        CTRL_MEDIT,        WS_VISIBLE | WS_VSCROLL | WS_BORDER | ES_AUTOWRAP,         16, 10, 140, 135,        IDC_EDIT1,
#ifdef MGDEMO_ENGLISH 
		"muti-line edit, auto-wrap style.",
#else        "多行文本编辑框, 具有自动换行功能",
#endif        0    },    {        CTRL_MEDIT,        WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | WS_BORDER | ES_BASELINE,         160, 10, 150, 135,        IDC_EDIT1,
#ifdef MGDEMO_ENGLISH 
		"Once we dreamt that we \nwere strangers.We wake \nup to find that we were \ndear to each other. \n   rabindranath tagore",
		
#else		        "床前明月光\n疑是地上霜\n举头望明月\n低头思故乡\n                李白\n",
#endif        0    },};const char * ctrl_medit_tips[] = {
#ifdef MGDEMO_ENGLISH 	    "Multi-line Edit",
#else	
	"多行编辑框",
#endif		    NULL};/* ------------------------------- menubutton ---------------------------------- */static CTRLDATA my_ctrl_menubutton[] ={     {        CTRL_MENUBUTTON,        WS_VISIBLE,         16, 10, 140, 35,        IDC_STATIC,
#ifdef MGDEMO_ENGLISH 	
		"Poet",
#else	
		"诗人",
#endif                0    },};const char * ctrl_menubutton_tips[] = {
#ifdef MGDEMO_ENGLISH 	
	     "Menu Button",
#else	
		"菜单按钮",
#endif        
		        NULL};static int menubutton_scene_init (HWND hWnd, MDSCENE *pScene){    int i;    MENUBUTTONITEM mbi;    const char *names[] = {
#ifdef MGDEMO_ENGLISH 	
		"Pushkin",
		"Rabindranath Tagore",		
		"Ralph Waldo Emerson",
		"William Shakespeare",
#else	
			"李白",
			"杜甫",
			"白居易",
			"王维",
#endif        
			            };    control_scene_init (hWnd, pScene);    mbi.bmp = NULL;    mbi.data = 0;    for (i=0; i <TABLESIZE(names); i++) {        mbi.text = names[i];        SendDlgItemMessage (hWnd, IDC_STATIC, MBM_ADDITEM, i, (LPARAM)&mbi);    }    return 0;}/* ------------------------------- listbox ---------------------------------- */#define IDC_LB1     500#define IDC_LB2     501#define IDC_LB3     502#define IDC_LB4     503static CTRLDATA my_ctrl_listbox[] ={     {        CTRL_LISTBOX,        WS_VISIBLE | WS_BORDER | WS_VSCROLL,         16, 10, 140, 72,        IDC_LB1,        "",        0    },    {        CTRL_LISTBOX,        WS_VISIBLE | WS_BORDER | WS_VSCROLL | LBS_MULTIPLESEL,         160, 10, 140, 72,        IDC_LB2,        "",        0    },    {        CTRL_LISTBOX,        WS_VISIBLE | WS_BORDER | LBS_AUTOCHECKBOX,         16, 90, 140, 72,        IDC_LB3,        "",        0    },    {        CTRL_LISTBOX,        WS_VISIBLE | WS_BORDER | LBS_USEICON,         160, 90, 140, 72,        IDC_LB4,        "",        0    },};const char * ctrl_listbox_tips[] = {
#ifdef MGDEMO_ENGLISH 	
	"List Box",
#else	    "列表框",
#endif    NULL};int listbox_scene_init (HWND hWnd, MDSCENE *pScene){    int i;    LISTBOXITEMINFO lbii;    char *names[] = {
#ifdef MGDEMO_ENGLISH 
		"D. H. Lawrence",
		"Pushkin",
		"Rabindranath tagore",
		"Robert Browning",
		"Ralph Waldo Emerson",
		"William Shakespeare",	
#else
		"苏轼",
		"辛弃疾",
		"柳永",
		"李清照",
		"王安石",
		"柳宗元",
#endif            };    char *names2[] = {
#ifdef MGDEMO_ENGLISH 
		"Stray Birds",
		"To the Sea",
		"Song of Nature",
		"Three Songs",
		"Soliloquy of the Spanish Cloister",
		"Trees in the Garden",
		"In Memory of M. B.",
		"The Problem"		
#else        "念奴娇",        "浣溪沙",        "水调歌头",        "沁园春",        "虞美人",        "一剪梅",        "忆江南",        "如梦令"
#endif    };    char *names3[] = {
#ifdef MGDEMO_ENGLISH 
		"Gone With The Wind",
		"Aesops Fables",
		"Little Woman",
		"Mulan",
#else	
		
        "三国演义",        "水浒",        "西游记",        "封神榜"
#endif		    };    char *names4[] = {
#ifdef MGDEMO_ENGLISH 
		"Poem",
		"Drama",
		"Novel",
#else        "唐诗",        "宋词",        "元曲",
#endif	    };    control_scene_init (hWnd, pScene);    for (i=0; i < TABLESIZE(names); i++) {        SendDlgItemMessage (hWnd, IDC_LB1, LB_ADDSTRING, i, (LPARAM)names[i]);    }    SendDlgItemMessage (hWnd, IDC_LB1, LB_SETCURSEL, 0, 0);    for (i=0; i < TABLESIZE(names2); i++) {        SendDlgItemMessage (hWnd, IDC_LB2, LB_ADDSTRING, i, (LPARAM)names2[i]);    }    SendDlgItemMessage (hWnd, IDC_LB2, LB_SETSEL, 1, 0);    SendDlgItemMessage (hWnd, IDC_LB2, LB_SETSEL, 1, 1);    lbii.hIcon = 0;    for (i=0; i < TABLESIZE(names3); i++) {        if (i == 0 || i == 1)            lbii.cmFlag = CMFLAG_CHECKED;        else if (i == 2)            lbii.cmFlag = CMFLAG_PARTCHECKED;        else            lbii.cmFlag = CMFLAG_BLANK;        lbii.string = names3[i];        SendDlgItemMessage (hWnd, IDC_LB3, LB_ADDSTRING, i, (LPARAM)&lbii);    }    lbii.hIcon = (DWORD)GetSmallSystemIcon(IDI_INFORMATION);    for (i=0; i < TABLESIZE(names4); i++) {        lbii.cmFlag = 0;        lbii.string = names4[i];        SendDlgItemMessage (hWnd, IDC_LB4, LB_ADDSTRING, i, (LPARAM)&lbii);    }    return 0;}/* ------------------------------- progressbar ---------------------------------- */#define IDC_PB1     501#define IDC_PB2     502#define IDC_PB3     503#define IDC_PB4     504#define IDC_PB5     505static CTRLDATA my_ctrl_progressbar[] ={     {        "progressbar",        WS_VISIBLE,        10, 20, 100, 20,        IDC_PB1,        "",        0    },    {        "progressbar",        WS_VISIBLE,        120, 20, 150, 20,        IDC_PB2,        "",        0    },    {        "progressbar",        WS_VISIBLE,        10, 50, 260, 20,        IDC_PB3,        "",        0    },    {        "progressbar",        WS_VISIBLE | PBS_VERTICAL | PBS_NOTIFY,        10, 80, 20, 80,        IDC_PB4,        "",        0    },    {        "progressbar",        WS_VISIBLE | PBS_VERTICAL | PBS_NOTIFY,        50, 80, 20, 80,        IDC_PB5,        "",        0    },};const char * ctrl_progressbar_tips[] = {
#ifdef MGDEMO_ENGLISH 
	"Progressbar",

⌨️ 快捷键说明

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