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

📄 win_infodraftbox.c

📁 这是一个linux下基于MiniGUI的手机界面设计源码
💻 C
字号:
/*win_infoDraftbox.c*/#include "sysSrcInfo.h"#define SIID_CHECK_DRAFTBOX	156static int flagInfoDraftbox=0;//static HWND hIV_menu_InfoDraftbox;//menustatic BITMAP icon_bitmap_InfoDraftbox[2];static BITMAP bmp_InfoDraftbox;static int rowCount=0;static int sel;static void init_child_InfoDraftbox();static void init_menu_InfoDraftbox(HWND hwnd);static void ShowCodeType(int i,HDC hdc);/* 位图数组 */static const char *icon_files_InfoDraftbox[2] ={	"Pictures/b_lock_0.png",	"Pictures/b_typenull_0.png" };const char *bmp_name_InfoDraftbox[] = {	"./Pictures/b_windowsbackground_1.PNG",			//第一张来做主界面	"./Pictures/OK.PNG",				"./Pictures/menu.PNG",					"./Pictures/b_cancel_0.PNG"	,			"./Pictures/return.PNG",				"./Pictures/c_check.PNG"			};const char *icon_labels_InfoDraftbox[] = {	"1 查看",    	"2 新建",     	"3 发送",     	"4 修改",     	"5 锁定",   	"6 删除",     	"7 全部删除",   	"0 回主界面"   };/* 定义皮肤元素数组 */static skin_item_t skin_items_InfoDraftbox [] ={{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_CANCEL,        SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,     BUTTONRIGHT_X,  BUTTON_Y, {},   3, "" },{SIID_RETURN,        SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,     BUTTONRIGHT_X,  BUTTON_Y, {},   4, "" },{SIID_CHECK_DRAFTBOX,   SI_TYPE_CHKBUTTON   | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,     BUTTONLEFT_X,   BUTTON_Y, {},   5, "" },};/* 定义皮肤 */static skin_head_t skin_InfoDraftbox ={    "main",  //const BITMAP* bmps;    SKIN_STYLE_TOOLTIP, NULL, NULL,     0, 5, skin_items_InfoDraftbox, FALSE /** The number of the items in this skin. */  /* 定义皮肤元素数组 */};static void myDrawItem (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_blue);    }    else {        SetBrushColor (hdc, PIXEL_lightwhite);    }    FillBox (hdc, rcDraw->left, rcDraw->top, RECTWP(rcDraw), RECTHP(rcDraw));//select state    SetBkColor (hdc, PIXEL_red);    if (label) {        RECT rcTxt = *rcDraw;//      rcTxt.top = rcTxt.bottom - GetWindowFont (hWnd)->size * 2;        rcTxt.top = rcTxt.bottom - (GetWindowFont (hWnd)->size) *1.1;static IVITEMINFO *piviiChild;static IVITEMINFO *piviiMenu;        rcTxt.left = rcTxt.left - (GetWindowFont (hWnd)->size) + 18;        DrawText (hdc, label, -1, &rcTxt, DT_SINGLELINE | DT_CENTER | DT_VCENTER);    }    FillBoxWithBitmap (hdc, rcDraw->left, rcDraw->top, 0, 0, pbmp);//fill pic}static void ClickCancel_InfoDraftbox(){			//skin_enable_item (&skin_InfoDraftbox,SIID_CANCEL,FALSE);                     skin_show_item (&skin_InfoDraftbox,SIID_CANCEL,FALSE);			//skin_enable_item (&skin_InfoDraftbox,SIID_RETURN,TRUE);                     skin_show_item (&skin_InfoDraftbox,SIID_RETURN,TRUE);		   //skin_enable_item (&skin_InfoDraftbox,SIID_OK,FALSE);                 skin_show_item (&skin_InfoDraftbox,SIID_OK,FALSE);		   //skin_enable_item (&skin_InfoDraftbox,SIID_CHECK_DRAFTBOX,TRUE);                 skin_show_item (&skin_InfoDraftbox,SIID_CHECK_DRAFTBOX,TRUE);			SendMessage ( hIV_menu_InfoDraftbox, WS_DISABLED,0,0);                     EnableWindow (  hIV_menu_InfoDraftbox, FALSE);                     SendMessage ( hIV_menu_InfoDraftbox,  WS_DISABLED,0,0);                     ShowWindow ( hIV_menu_InfoDraftbox, SW_HIDE);                     ShowWindow ( hIV_child_InfoDraftbox, SW_SHOW);                  	EnableWindow ( hIV_child_InfoDraftbox,TRUE);                  	SetFocusChild(  hIV_child_InfoDraftbox );		   	//SendMessage(hIV_child_InfoDraftbox,IVM_SELECTITEM,0,0);                	//SendMessage(hIV_child_InfoDraftbox,IVM_SETCURSEL,0,0);			flagInfoDraftbox=0;			InvalidateRect (hWndMain_InfoDraftbox, NULL,TRUE);//re1draw }static void ClickReturn_InfoDraftbox()//must change{		int  i;              ShowWindow ( hIV_menu_InfoDraftbox, SW_HIDE);              ShowWindow ( hIV_child_InfoDraftbox, SW_HIDE);              ShowWindow ( hWndMain_InfoDraftbox, SW_HIDE);		SendMessage (hIV_child_InfoDraftbox, IVM_RESETCONTENT,1,1);//clear icon item//must		SendMessage (hIV_menu_InfoDraftbox, IVM_RESETCONTENT,1,1);//clear icon item//must                 LoadSkinBmps( &skin_InfoDraftbox, FALSE ,bmp_name_InfoDraftbox ,					(sizeof (bmp_name_InfoDraftbox))/sizeof(char *) );		for(i=0;i<2;i++)		{			UnloadBitmap( &(icon_bitmap_InfoDraftbox[i]) );		} }static void DeleteIconItem(int sel){	int count = SendMessage (hIV_child_InfoDraftbox, IVM_GETITEMCOUNT, 0, 0);       if (sel >= 0){               SendMessage (hIV_child_InfoDraftbox, IVM_DELITEM, sel, 0);               if (sel == count - 1)               sel --;               SendMessage (hIV_child_InfoDraftbox, IVM_SETCURSEL, sel, 0);         }}static void FU_notif_proc_child_Draftbox(HWND hwnd ,int id, int nc, DWORD add_data){ 	int count = SendMessage (hIV_child_InfoDraftbox, IVM_GETITEMCOUNT, 0, 0);	sel = SendMessage ( hIV_child_InfoDraftbox, IVM_GETCURSEL, 0, 0 );        if( nc==LVN_SELCHANGE )//除草稿箱(2)外重会        {                SendMessage (hWndMain_InfoDraftbox,MSG_PAINT , 0 , 0);	                InvalidateRect (hWndMain_InfoDraftbox, NULL,TRUE);        }}static int main_event_cb_InfoDraftbox (HWND hwnd, skin_item_t* item, int event, void* data){    static int sel_menu;    FILE *fp;    int i,count,k,j;    if (event == SIE_BUTTON_CLICKED) {    sel = SendMessage ( hIV_child_InfoDraftbox, IVM_GETCURSEL, 0, 0 );    sel_menu = SendMessage ( hIV_menu_InfoDraftbox, IVM_GETCURSEL, 0, 0 );    switch (item->id) {  //按的那个图片		case SIID_OK:	    if(flagInfoDraftbox==1){		switch(sel_menu){ 		    case 0://"1 查看 ",     //				ClickReturn_InfoDraftbox();									win_infoDraftLook (hWndMain, sel, -1);		        break;		    case 1://"2 新建 "      //		    		ClickReturn_InfoDraftbox();			    		win_infoCreatDraft (hWndMain,sel,rowCount,1);		        break;		    case 2:// 3发送		    		ClickReturn_InfoDraftbox();			    		//win_InfoCreat(hWndMain ,sel, 5 );			    break;		    case 3://"4 修改 ",     //		    		ClickReturn_InfoDraftbox();			    		win_infoCreatDraft (hWndMain,sel,rowCount,2);			    break;		    case 4://"5 锁定", //"3 锁定 ,解锁",     //				//ClickCancel_InfoDraftbox();//不能放这				if(draftBoxs[sel].lockSymbol!=1) 				{draftBoxs[sel].lockSymbol=1;}//加锁				else{draftBoxs[sel].lockSymbol=2;}//解锁				WriteToCreatDraft(rowCount);//保存					//				for(i=0;i<rowCount;i++){SendMessage (hIV_child_InfoDraftbox, IVM_DELITEM, 0, 0);}   				SendMessage (hIV_child_InfoDraftbox, IVM_RESETCONTENT,1,1);//clear icon item//must		 		init_child_InfoDraftbox();//刷新				ClickCancel_InfoDraftbox();				SendMessage (hIV_child_InfoDraftbox, IVM_SETCURSEL, sel, 1);//光标停留原处			    	InvalidateRect (hWndMain_InfoDraftbox, NULL,TRUE);//re1draw  			    break;		    case 5://"6 删除 ",     // 				if(draftBoxs[sel].lockSymbol!=1){                			//SendMessage (hIV_child_InfoDraftbox, IVM_DELITEM, sel, 0);				     	DeleteIconItem ( sel);						for(i=sel;i<rowCount;i++)  {draftBoxs[i]=draftBoxs[i+1];} 					rowCount--;					//保存						WriteToCreatDraft(rowCount);				  	ClickCancel_InfoDraftbox();//must放这			    		//InvalidateRect (hWndMain_InfoDraftbox, NULL,TRUE);//				}		            break;		    case 6://"7 全部删除",  //				SendMessage (hIV_child_InfoDraftbox, IVM_RESETCONTENT,1,1);//clear icon item//must				fp = fopen("./DataBase/draftbox.data","w");				for(i=0;i<rowCount;i++)				{				printf("draftBoxs[i].lockSymbol----%d\n",draftBoxs[i].lockSymbol);                			if (draftBoxs[i].lockSymbol==1){						fwrite(&draftBoxs[i],sizeof(struct draftbox),1,fp);					}					}				fclose(fp);				init_child_InfoDraftbox( hwnd );//刷新			 	ClickCancel_InfoDraftbox();		       	break;		    case 7://回到index界面"0 回主界面"   //回到index界面					ClickReturn_InfoDraftbox();		 		win_index(hWndMain);				break;				   		}//switch	}//if	else	{	}//else      break;//case SIID_OK:      case SIID_CHECK_DRAFTBOX:      			ClickReturn_InfoDraftbox();								win_infoDraftLook (hWndMain, sel, -1);      		break;////////////////////////////////////	case SIID_MENU:			flagInfoDraftbox=1;			//skin_enable_item (&skin_InfoDraftbox,SIID_CANCEL,TRUE);                     skin_show_item (&skin_InfoDraftbox,SIID_CANCEL,TRUE);			//skin_enable_item (&skin_InfoDraftbox,SIID_RETURN,FALSE);                     skin_show_item (&skin_InfoDraftbox,SIID_RETURN,FALSE);		   	//skin_enable_item (&skin_InfoDraftbox,SIID_OK,TRUE);                 	skin_show_item (&skin_InfoDraftbox,SIID_OK,TRUE);		   	//skin_enable_item (&skin_InfoDraftbox,SIID_CHECK_DRAFTBOX,FALSE);                 	skin_show_item (&skin_InfoDraftbox,SIID_CHECK_DRAFTBOX,FALSE);			SendMessage( hIV_child_InfoDraftbox, WS_DISABLED,0,0);			EnableWindow( hIV_child_InfoDraftbox,FALSE);                     SendMessage( hIV_child_InfoDraftbox, WS_DISABLED,0,0);			init_menu_InfoDraftbox( hwnd );//刷新			ShowWindow(hIV_menu_InfoDraftbox,SW_SHOW);			EnableWindow( hIV_menu_InfoDraftbox,TRUE);                     SetFocusChild( hIV_menu_InfoDraftbox );                     SendMessage(hIV_menu_InfoDraftbox,IVM_SELECTITEM,0,0);                    SendMessage(hIV_menu_InfoDraftbox,IVM_SETCURSEL,0,0);			//InvalidateRect (hWndMain_InfoDraftbox, NULL,TRUE);//re1draw 					    break;              case SIID_RETURN://return		ClickReturn_InfoDraftbox();		win_information( hWndMain );            break;	case SIID_CANCEL:		ClickCancel_InfoDraftbox();	    break;        }     }    return 1;}static void init_child_InfoDraftbox(){       char a[15];	char b[11];	 int i,j;	IVITEMINFO iviiChild;                    rowCount = OpenDraftbox ();//打开文件,                                        for (i = 0; i <  rowCount; i++) {//get 10 chars for title                       memset (&iviiChild, 0, sizeof(IVITEMINFO));			   if(draftBoxs[i].lockSymbol==1){ iviiChild.bmp = &icon_bitmap_InfoDraftbox[0];}//锁定图片1			   else{ iviiChild.bmp = &icon_bitmap_InfoDraftbox[1];}//无图片2				                       iviiChild.nItem =  i;                       iviiChild.label=draftBoxs[i].title;                       SendMessage (hIV_child_InfoDraftbox, IVM_ADDITEM, 0, (LPARAM)&iviiChild);                    }                    SendMessage(hIV_child_InfoDraftbox,IVM_SELECTITEM,sel,0);                    SendMessage(hIV_child_InfoDraftbox,IVM_SETCURSEL,sel,0);}static void init_menu_InfoDraftbox(HWND hwnd){	 int i;	 IVITEMINFO iviiMenu;		  hIV_menu_InfoDraftbox = CreateMenuWindow(hwnd , 90,  8, 1043);            	  for (i = 0; i < TABLESIZE(icon_labels_InfoDraftbox); i++) {                     memset (&iviiMenu, 0, sizeof(IVITEMINFO));	               iviiMenu.bmp = NULL;        	        iviiMenu.nItem =  i;			 if( i==4 && draftBoxs[sel].lockSymbol==1)				{ iviiMenu.label="5 解锁" ;}                	 else {iviiMenu.label = icon_labels_InfoDraftbox[i] ;}	               iviiMenu.addData = i;        	        SendMessage (hIV_menu_InfoDraftbox, IVM_ADDITEM, 0, (LPARAM)&iviiMenu);	           }	  SendMessage(hIV_menu_InfoDraftbox,IVM_SETCURSEL,0,0);}static int msg_event_cb_InfoDraftbox (HWND hwnd, int message, WPARAM wparam, LPARAM lparam, int* result){	HDC hdc;	IVITEMINFO ivii;	char buff[10];       int j,i,k;        switch (message) {        	case MSG_CREATE:		   LoadBitmap (HDC_SCREEN, &bmp_InfoDraftbox, "Pictures/a_information_3.PNG");		   //backgrund		   //skin_enable_item (&skin_InfoDraftbox,SIID_CANCEL,FALSE);                 skin_show_item (&skin_InfoDraftbox,SIID_CANCEL,FALSE);		   //skin_enable_item (&skin_InfoDraftbox,SIID_RETURN,TRUE);                 skin_show_item (&skin_InfoDraftbox,SIID_RETURN,TRUE);		   //skin_enable_item (&skin_InfoDraftbox,SIID_OK,FALSE);                 skin_show_item (&skin_InfoDraftbox,SIID_OK,FALSE);		   //skin_enable_item (&skin_InfoDraftbox,SIID_CHECK_DRAFTBOX,TRUE);                 skin_show_item (&skin_InfoDraftbox,SIID_CHECK_DRAFTBOX,TRUE);                 for (j=0; j<TABLESIZE(icon_files_InfoDraftbox);j++) {//加图片                      LoadBitmap (HDC_SCREEN,&icon_bitmap_InfoDraftbox[j],icon_files_InfoDraftbox[j]);                    }                                   hIV_child_InfoDraftbox = CreateChildWindow_INFO(hwnd,0,21,160,150,1564);		 //hIV_child_InfoDraftbox = CreateChildWindow_INFO(hwnd ,155,1308);		  SendMessage (hIV_child_InfoDraftbox, IVM_SETITEMSIZE, 130, 17); 			  init_child_InfoDraftbox( );		  SendMessage(hIV_child_InfoDraftbox,IVM_SETCURSEL,0,0);		  init_menu_InfoDraftbox( hwnd );			        break;	  case MSG_PAINT :	  hdc=BeginPaint (hwnd);               				SetBkMode (hdc, BM_TRANSPARENT); 		  		FillBoxWithBitmap (hdc, ZTL_PIC_X,ZTL_PIC_Y, ZTL_PIC_W,		  				ZTL_PIC_H, &bmp_InfoDraftbox);				TextOut (hdc, WZ_ZTL_X3, WZ_ZTL_Y, "草稿箱" );                   sprintf(buff, "[%d]",rowCount);//count                   TextOut (hdc, 80, 2, buff);          EndPaint (hwnd,hdc);	      break;    }    return 1;}int win_InfoDraftbox(HWND hwndmain){    	MSG msg;       /* 装载位图资源 */ 	LoadSkinBmps( &skin_InfoDraftbox, TRUE ,bmp_name_InfoDraftbox ,			(sizeof (bmp_name_InfoDraftbox))/sizeof(char *) );        if (skin_InfoDraftbox.bmps == NULL) {      	  	printf ("Could not load skin bitmaps!\n");        }	if ( !skin_init (&skin_InfoDraftbox, main_event_cb_InfoDraftbox,							msg_event_cb_InfoDraftbox) )		{    /* 初始化皮肤 */        	printf ("skin init fail!\n\n");    	}    	else{ 	    hWndMain_InfoDraftbox=  create_skin_control (&skin_InfoDraftbox, hwndmain,143, 	     			DEF_X_, DEF_Y_, DEF_WIDTH, DEF_HEIGHT);                          SetFocusChild(hIV_child_InfoDraftbox);			    currShowWindowHwnd = hWndMain_InfoDraftbox;         }}#ifndef _LITE_VERSION#include <minigui/dti.c>#endif

⌨️ 快捷键说明

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