📄 controls.c
字号:
/*** $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 + -