📄 win_infodraftbox.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 + -