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

📄 win_index.c~

📁 这是一个linux下基于MiniGUI的手机界面设计源码
💻 C~
字号:
/*win_index.c*/#include "sysSrcInfo.h"#define HICONVIEW	     	101#define HWND_INDEX        	10static HWND hIconView_menu;//menustatic HWND hwnd_skin;static HWND hwnd_static;static BITMAP icon_main_bitmap[6];static BITMAP icon_child_bitmap[6];int flagIndex=0; ///* 位图数组 */static const char *icon_main_files[6] ={"Pictures/locate.PNG","Pictures/imformation.PNG","Pictures/navigate.PNG","Pictures/tools.PNG","Pictures/system.PNG","Pictures/help.PNG"};static const char *bmp_name[] ={"./Pictures/b_windowsbackground_1.PNG",	"./Pictures/OK.PNG",			"./Pictures/menu.PNG",			"./Pictures/hung.PNG","./Pictures/b_cancel_0.PNG"			}; static const char *icon_labels_Index[] = {"1 定  位",//" ?   ?,"2 通  信",//" ?   ?,"3 导  航",//" ?   ?,"4 工  具",//" ?   ?,"5 系  统",//" ?   ?,"6 帮  助",//" ?   ?,"7 回主界面"//" ?   ?,};/* 定义皮肤元素数组 */static skin_item_t skin_main_items [] ={{SIID_OK,           SI_TYPE_CHKBUTTON    | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,     BUTTONLEFT_X,   BUTTON_Y, {},    1 ,"" },{SIID_MENU,          SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,     BUTTONCENTER_X, BUTTON_Y, {},    2, "" },{SIID_RETURN,        SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,     BUTTONRIGHT_X, BUTTON_Y, {},     3, "" },{SIID_CANCEL,        SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,     BUTTONRIGHT_X,  BUTTON_Y, {},    4, "" }};/* 定义皮肤 */static skin_head_t main_skin_Index ={    "main",  //const BITMAP* bmps;   SKIN_STYLE_TOOLTIP, NULL, NULL,     0, 4, skin_main_items, FALSE /** The number of the items in this skin. */  /* 定义皮肤元素数组 */};static void CloseTheWindow_Index (){		int i;             ShowWindow ( hIconView_menu, SW_HIDE);		ShowWindow ( hIconView_Index,SW_HIDE);		ShowWindow(hwnd_index ,SW_HIDE);		//DestroyAllControls( hwnd_index);		//destroy_skin_window (hwnd_index);		for(i=0;i<6;i++)		{			UnloadBitmap( &(icon_main_bitmap[i]) );		}}static void GoNextWindow_Index(int sel){		    switch(sel){			case 0 :			    win_locate( hWndMain );                 //go to child window 			    break;			case 1 :                         win_information ( hWndMain);           //go to child window                         break;			case 2 :                         win_navigate ( hWndMain );              //go to child window                         break;			case 3 :                                                     win_tools ( hWndMain );                 //go to child window                         break;			case 4 :                                                     win_system( hWndMain );                 //go to child window                         break;			case 5 :                                                     win_help( hWndMain );                 //go to child window                         break;			}		CloseTheWindow_Index ();}static void ClickCancel_Index(){ 	                  SendMessage( hIconView_menu, WS_DISABLED,0,0);                         EnableWindow(  hIconView_menu,FALSE);                         SendMessage( hIconView_menu, WS_DISABLED,0,0);                         ShowWindow( hIconView_menu,SW_HIDE);	                         EnableWindow( hIconView_Index,TRUE);                         //SendMessage( hIconView_child,WS_VISIBLE,1,2 );                         SetFocusChild( hIconView_Index );                         SendMessage(hIconView_Index,IVM_SELECTITEM,0,0);                         SendMessage(hIconView_Index,IVM_SETCURSEL,0,0);			    //SendMessage (hIconView_child,IVM_SETCURSEL,10,10);			    //SendMessage (hIconView_Index, MSG_CLOSE, 0, 0);			    skin_enable_item (&main_skin_Index,SIID_CANCEL,FALSE);                         skin_show_item (&main_skin_Index,SIID_CANCEL,FALSE);			    skin_enable_item (&main_skin_Index, SIID_RETURN,TRUE);                         skin_show_item (&main_skin_Index, SIID_RETURN,TRUE);			    flagIndex = 0;}static int main_event_cb_Index (HWND hwnd, skin_item_t* item, int event, void* data)//{     int sel;     int sel_menu;    if (event == SIE_BUTTON_CLICKED) {        switch (item->id) {  //按的那个图片		    case SIID_OK:   				sel = SendMessage (hIconView_Index,IVM_GETCURSEL,0,0);				sel_menu=SendMessage (hIconView_menu,IVM_GETCURSEL,0,0);				if(flagIndex==1){					if (sel_menu == 6) { ClickCancel_Index();}					else { GoNextWindow_Index(sel_menu); }				}				else				{					GoNextWindow_Index(sel);		    				}                break;	    case SIID_MENU:                flagIndex = 1;				SendMessage( hIconView_Index, WS_DISABLED,0,0);				EnableWindow( hIconView_Index,FALSE);                     SendMessage( hIconView_Index, WS_DISABLED,0,0);				ShowWindow(hIconView_menu,SW_SHOW);		       EnableWindow( hIconView_menu,TRUE);			//SendMessage( hIconView_child,WS_VISIBLE,1,2 );                     SetFocusChild( hIconView_menu );                     SendMessage(hIconView_menu,IVM_SELECTITEM,0,0);                     SendMessage(hIconView_menu,IVM_SETCURSEL,0,0); 				skin_enable_item (&main_skin_Index,SIID_CANCEL,TRUE);                     skin_show_item (&main_skin_Index,SIID_CANCEL,TRUE);				skin_enable_item (&main_skin_Index, SIID_RETURN,FALSE);                     skin_show_item (&main_skin_Index, SIID_RETURN,FALSE);		    break;                case SIID_RETURN://挂起				//CreateAlarmWindow (hWndMain ,"CRC ERR",80,0,70,15);								SendMessage (hWndMain, MSG_CLOSE, 0, 0);								            break;	     case SIID_CANCEL:				ClickCancel_Index();			break;        }    }    return 1;}static void myDrawItemChild (HWND hWnd, GHANDLE hsvi, HDC hdc, RECT *rcDraw){    const PBITMAP pbmp = (PBITMAP)iconview_get_item_bitmap (hsvi);    const char *label = (const char*)iconview_get_item_label (hsvi);    SetBkMode (hdc, BM_TRANSPARENT);    SetTextColor (hdc, PIXEL_black);    if (iconview_is_item_hilight(hWnd, hsvi)) {        SetBrushColor (hdc, PIXEL_green);    }    else {        SetBrushColor (hdc, PIXEL_lightwhite);    }    FillBox (hdc, rcDraw->left, rcDraw->top, RECTWP(rcDraw), RECTHP(rcDraw));//select state    //FillBox (hdc, rcDraw->left-5, rcDraw->top, RECTWP(rcDraw), RECTHP(rcDraw));//select state    SetBkColor (hdc, PIXEL_lightwhite);    if (label) {        RECT rcTxt = *rcDraw;//      rcTxt.top = rcTxt.bottom - GetWindowFont (hWnd)->size * 2;        rcTxt.top = rcTxt.bottom - (GetWindowFont (hWnd)->size) ;        rcTxt.left = rcTxt.left - (GetWindowFont (hWnd)->size) ;        DrawText (hdc, label, -1, &rcTxt, DT_SINGLELINE | DT_CENTER | DT_VCENTER);    }    FillBoxWithBitmap (hdc, rcDraw->left, rcDraw->top, 0, 0, pbmp);//fill pic}static int msg_event_cb_index (HWND hwnd, int message, WPARAM wparam, LPARAM lparam, int* result){        PLOGFONT my_font;	IVITEMINFO ivii;	IVITEMINFO ivii_menu;	HDC hdc;        int j,i,k;       switch (message) {            case MSG_CREATE:				//must 不然反回主界面不知是“取消”“返回”				skin_enable_item (&main_skin_Index,SIID_CANCEL,FALSE);				skin_show_item (&main_skin_Index,SIID_CANCEL,FALSE);				skin_enable_item (&main_skin_Index, SIID_RETURN,TRUE);				skin_show_item (&main_skin_Index, SIID_RETURN,TRUE);				for (j=0; j<TABLESIZE(icon_main_bitmap);j++) {					LoadBitmap (HDC_SCREEN,&icon_main_bitmap[j],icon_main_files[j]);				}		        		hIconView_Index = CreateWindow (CTRL_ICONVIEW,"myiconview",								WS_CHILD |WS_VSCROLL |WS_HSCROLL|                                WS_VISIBLE ,HICONVIEW,0,0,160,167,hwnd,1); 				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);				SetWindowFont (hIconView_Index , my_font);				//SetWindowBkColor (hIconView_Index,PIXEL_lightgray);  				SetWindowBkColor (hIconView_Index,PIXEL_lightwhite);                  SendMessage (hIconView_Index, IVM_SETITEMSIZE, 60, 50); 								RECT rcMargin;				rcMargin.left=20;				rcMargin.top =3;					rcMargin.right=20;				//rcMargin.bottom =0;		      ///SendMessage (hIconView_Index, IVM_SETCONTRANGE, 200, 100);//WS_HSCROLL				SendMessage (hIconView_Index, IVM_SETMARGINS, 0, (LPARAM)&rcMargin);				 SendMessage (hIconView_Index, IVM_SETITEMDRAW, 0, (LPARAM)myDrawItemChild);                for (i = 0; i < TABLESIZE(icon_main_bitmap); i++) {                    memset (&ivii, 0, sizeof(IVITEMINFO));                    ivii.bmp = &icon_main_bitmap[i];                    ivii.nItem =  i;                    ivii.label = NULL;//icon_labels_Index[i];                    ivii.addData = i;                    SendMessage (hIconView_Index, IVM_ADDITEM, 0, (LPARAM)&ivii);				}				SetFocusChild( hIconView_Index );				//menu				 hIconView_menu = CreateMenuWindow(hwnd , 90,  7, 1001);				for (i = 0; i < TABLESIZE(icon_labels_Index); i++) {                    memset (&ivii_menu, 0, sizeof(IVITEMINFO));                    ivii_menu.bmp = NULL;                    ivii_menu.nItem =  i;                    ivii_menu.label = icon_labels_Index[i] ;                    ivii_menu.addData = i;                    SendMessage (hIconView_menu, IVM_ADDITEM, 0, (LPARAM)&ivii_menu);				}				SendMessage(hIconView_Index,IVM_SELECTITEM,0,0);				SendMessage(hIconView_Index,IVM_SETCURSEL,0,0);				UpdateWindow(hwnd_index ,TRUE);				InvalidateRect (hwnd, NULL,TRUE);				//printf("dddddddddddddd %d\n",add(1,2));	    			break;	  case MSG_PAINT :			break;    }    return 1;}void win_index (HWND hwnd){    	MSG msg;    	HWND hWndMain;		if (!InitMiniGUIExt()) { //must have the function                // return 2;        }		LoadSkinBmps( &main_skin_Index, TRUE ,bmp_name ,(sizeof (bmp_name))/sizeof(char *) );    	if (main_skin_Index.bmps == NULL) {      	  	printf ("Could not load skin bitmaps!\n");       		//return 3;    	}		//定义的皮肤,皮肤事件回调函数,皮肤窗口消息回调函数    	if ( !skin_init (&main_skin_Index, main_event_cb_Index, msg_event_cb_index) ){    /* 初始化皮肤 */        	printf ("skin init fail!\n");    	}    	else{               hwnd_index = create_skin_control (&main_skin_Index,                                 hwnd,HWND_INDEX, DEF_X_, DEF_Y_,  DEF_WIDTH, DEF_HEIGHT);		 currShowWindowHwnd = hwnd_index;		 currWindow =hwnd_index;              SetFocusChild(hIconView_Index);   	}   	}#ifndef _LITE_VERSION#include <minigui/dti.c>#endif

⌨️ 快捷键说明

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