【E961】emWin以skinning方式实现BMP图片位图皮肤的源代码

2021-09-09 20:31:21      索炜达电子      1230     

项目编号:E961

文件大小:4M

源码说明:带中文注释

开发环境:C编译器

简要概述:

emWin以skinning方式实现BMP图片位图皮肤的源代码

emWin的控件显示是由默认的控件绘制函数完成,但emWin凭借其skinning功能可以非常方便的实现自定义控件绘制函数,利用自定义控件绘制函数我们可以非常方便的实现所有控件的BMP位图皮肤,而且支持整幅图片贴图,不需要对整幅图片进行切片分解,功能非常强大。

【E961】emWin以skinning方式实现BMP图片位图皮肤的源代码

如上图所示,(x0,y0)为整幅图片的显示坐标,(x1,y1)和(x2,y2)是emWin为控件自动生成的剪切显示坐标,我们只需要调用GUI_DrawBitmap()函数在(x0,y0)显示整幅图片即可,emWin会自动剪切显示出该控件的位图皮肤,非常便捷。

以整幅图片实现emWin位图皮肤可以大大减轻控件贴图的工作量,非常的方便;如果把每个控件对应的图片先切片分解下来,然后再转换成C文件,最后再贴图到控件上面去,那样工作量将是非常恐怖的;保守估计贴图工作效率提高10倍以上。

【E961】emWin以skinning方式实现BMP图片位图皮肤的源代码

【E961】emWin以skinning方式实现BMP图片位图皮肤的源代码

附件里面的SKIN_xxxx.c是emWin的自定义控件绘制函数,也就是绘制出什么样的控件完全是靠这个函数,可以根据自己的需要修改代码:

目录│文件列表:

 └ demo_emwin_skinPRJ_V530noOS_CodeBlocks_v116

    └ demo_emwin_skinPRJ_V530noOS_CodeBlocks_v116

       │ CleanUp.bat

       │ ReadMe.html

       │ readme.txt

       │ SimError.log

       │ SimulationTrial.cbp

       │ SimulationTrial.cscope_file_list

       │ SimulationTrial.depend

       │ SimulationTrial.layout

       ├ Application

       │  │ bitmap.h

       │  │ MainTask.c

       │  │ WindowDLG.rar

       │  │ WINpage1.c

       │  │ WINpage1_top.c

       │  │ WINpage2.c

       │  │ WINpage2_top.c

       │  │ wintop.c

       │  │ wintop.h

       │  ├ pics

       │  │  │ Page1_M.bmp

       │  │  │ Page1_M.c

       │  │  │ Page1_N.bmp

       │  │  │ Page1_N.c

       │  │  │ Page1_P.bmp

       │  │  │ Page1_P.c

       │  │  │ Page1_TN.bmp

       │  │  │ Page1_TN.c

       │  │  │ Page2_M.bmp

       │  │  │ Page2_M.c

       │  │  │ Page2_N.bmp

       │  │  │ Page2_N.c

       │  │  │ Page2_P.bmp

       │  │  │ Page2_P.c

       │  │  ├ mov0

       │  │  │  │ 00.bmp

       │  │  │  │ 00.c

       │  │  │  │ 01.bmp

       │  │  │  │ 01.c

       │  │  │  │ 02.bmp

       │  │  │  │ 02.c

       │  │  │  │ 03.bmp

       │  │  │  │ 03.c

       │  │  │  │ 04.bmp

       │  │  │  │ 04.c

       │  │  │  │ 05.bmp

       │  │  │  │ 05.c

       │  │  │  │ 06.bmp

       │  │  │  │ 06.c

       │  │  │  │ 07.bmp

       │  │  │  │ 07.c

       │  │  │  │ 08.bmp

       │  │  │  │ 08.c

       │  │  │  │ 09.bmp

       │  │  │  │ 09.c

       │  │  │  │ 10.bmp

       │  │  │  │ 10.c

       │  │  │  │ 11.bmp

       │  │  │  │ 11.c

       │  │  │  │ 12.bmp

       │  │  │  │ 12.c

       │  │  │  │ 13.bmp

       │  │  │  │ 13.c

       │  │  │  │ 14.bmp

       │  │  │  │ 14.c

       │  │  │  │ 15.bmp

       │  │  │  │ 15.c

       │  │  │  │ 16.bmp

       │  │  │  │ 16.c

       │  │  │  │ 17.bmp

       │  │  │  │ 17.c

       │  │  │  │ 18.bmp

       │  │  │  │ 18.c

       │  │  │  │ 19.bmp

       │  │  │  │ 19.c

       │  │  │  │ 20.bmp

       │  │  │  │ 20.c

       │  │  │  │ 21.bmp

       │  │  │  │ 21.c

       │  │  │  │ 22.bmp

       │  │  │  │ 22.c

       │  │  │  │ 23.bmp

       │  │  │  └ 23.c

       │  │  └ psd

       │  │     │ WINpage1.psd

       │  │     └ WINpage2.psd

       │  └ skinning

       │     │ skinning.h

       │     │ SKIN_button.c

       │     │ SKIN_checkbox.c

       │     │ SKIN_dropdown.c

       │     │ SKIN_multipage.c

       │     │ SKIN_progbar.c

       │     │ SKIN_radio.c

       │     │ SKIN_scrollbar.c

       │     │ SKIN_slider.c

       │     └ SKIN_spinbox.c

       ├ Config

       │  │ GUIConf.c

       │  │ GUIConf.h

       │  │ LCDConf.c

       │  │ LCDConf.h

       │  └ SIMConf.c

       ├ Exe

       │  └ GUISimulationDebug.exe

       ├ GUI

       │  ├ Include

       │  │  │ BUTTON.h

       │  │  │ BUTTON_Private.h

       │  │  │ CALENDAR.h

       │  │  │ CHECKBOX.h

       │  │  │ CHECKBOX_Private.h

       │  │  │ CHOOSECOLOR.h

       │  │  │ CHOOSEFILE.h

       │  │  │ DIALOG.h

       │  │  │ DIALOG_Intern.h

       │  │  │ DROPDOWN.h

       │  │  │ DROPDOWN_Private.h

       │  │  │ EDIT.h

       │  │  │ EDIT_Private.h

       │  │  │ FRAMEWIN.h

       │  │  │ FRAMEWIN_Private.h

       │  │  │ Global.h

       │  │  │ GRAPH.h

       │  │  │ GRAPH_Private.h

       │  │  │ GUI.h

       │  │  │ GUI_ARRAY.h

       │  │  │ GUI_ARRAY_Private.h

       │  │  │ GUI_BMP_Private.h

       │  │  │ GUI_ConfDefaults.h

       │  │  │ GUI_Debug.h

       │  │  │ GUI_FontIntern.h

       │  │  │ GUI_GIF_Private.h

       │  │  │ GUI_HOOK.h

       │  │  │ GUI_JPEG_Private.h

       │  │  │ GUI_Private.h

       │  │  │ GUI_SetOrientation.h

       │  │  │ GUI_SetOrientationCX.h

       │  │  │ GUI_SIM_Win32.h

       │  │  │ GUI_SPRITE_Private.h

       │  │  │ GUI_Type.h

       │  │  │ GUI_Version.h

       │  │  │ GUI_VNC.h

       │  │  │ HEADER.h

       │  │  │ HEADER_Private.h

       │  │  │ ICONVIEW.h

       │  │  │ ICONVIEW_Private.h

       │  │  │ IMAGE.h

       │  │  │ IMAGE_Private.h

       │  │  │ KNOB.h

       │  │  │ KNOB_Private.h

       │  │  │ LCD.h

       │  │  │ LCDSIM_Private.h

       │  │  │ LCD_ConfDefaults.h

       │  │  │ LCD_Private.h

       │  │  │ LCD_Protected.h

       │  │  │ LCD_SIM.h

       │  │  │ LISTBOX.h

       │  │  │ LISTBOX_Private.h

       │  │  │ LISTVIEW.h

       │  │  │ LISTVIEW_Private.h

       │  │  │ LISTWHEEL.h

       │  │  │ LISTWHEEL_Private.h

       │  │  │ MENU.h

       │  │  │ MENU_Private.h

       │  │  │ MESSAGEBOX.h

       │  │  │ MULTIEDIT.h

       │  │  │ MULTIPAGE.h

       │  │  │ MULTIPAGE_Private.h

       │  │  │ PROGBAR.h

       │  │  │ PROGBAR_Private.h

       │  │  │ RADIO.h

       │  │  │ RADIO_Private.h

       │  │  │ SCROLLBAR.h

       │  │  │ SCROLLBAR_Private.h

       │  │  │ SIM.h

       │  │  │ SIM_GetRegions.h

       │  │  │ SLIDER.h

       │  │  │ SLIDER_Private.h

       │  │  │ SPINBOX.h

       │  │  │ SPINBOX_Private.h

       │  │  │ TEXT.h

       │  │  │ TEXT_Private.h

       │  │  │ TREEVIEW.h

       │  │  │ TREEVIEW_Private.h

       │  │  │ WIDGET.h

       │  │  │ WINDOW_Private.h

       │  │  │ WM.h

       │  │  │ WM_GUI.h

       │  │  └ WM_Intern.h

       │  └ Library

       │     │ GUI.a

       │     └ GUI.lib

       ├ oD

       │  ├ Application

       │  │  │ MainTask.o

       │  │  │ WINpage1.o

       │  │  │ WINpage1_top.o

       │  │  │ WINpage2.o

       │  │  │ WINpage2_top.o

       │  │  │ wintop.o

       │  │  ├ pics

       │  │  │  │ Page1_M.o

       │  │  │  │ Page1_N.o

       │  │  │  │ Page1_P.o

       │  │  │  │ Page1_TN.o

       │  │  │  │ Page2_M.o

       │  │  │  │ Page2_N.o

       │  │  │  │ Page2_P.o

       │  │  │  └ mov0

       │  │  │     │ 00.o

       │  │  │     │ 01.o

       │  │  │     │ 02.o

       │  │  │     │ 03.o

       │  │  │     │ 04.o

       │  │  │     │ 05.o

       │  │  │     │ 06.o

       │  │  │     │ 07.o

       │  │  │     │ 08.o

       │  │  │     │ 09.o

       │  │  │     │ 10.o

       │  │  │     │ 11.o

       │  │  │     │ 12.o

       │  │  │     │ 13.o

       │  │  │     │ 14.o

       │  │  │     │ 15.o

       │  │  │     │ 16.o

       │  │  │     │ 17.o

       │  │  │     │ 18.o

       │  │  │     │ 19.o

       │  │  │     │ 20.o

       │  │  │     │ 21.o

       │  │  │     │ 22.o

       │  │  │     └ 23.o

       │  │  └ skinning

       │  │     │ SKIN_button.o

       │  │     │ SKIN_checkbox.o

       │  │     │ SKIN_dropdown.o

       │  │     │ SKIN_multipage.o

       │  │     │ SKIN_progbar.o

       │  │     │ SKIN_radio.o

       │  │     │ SKIN_scrollbar.o

       │  │     │ SKIN_slider.o

       │  │     └ SKIN_spinbox.o

       │  ├ Config

       │  │  │ GUIConf.o

       │  │  │ LCDConf.o

       │  │  └ SIMConf.o

       │  └ Simulation

       │     └ WinMain.o

       └ Simulation

          │ GUISim.a

          │ GUISim.lib

          │ Simulation.res

          │ SimulationMinGW.res

          └ WinMain.c

TAGemWin
  • 13 次
  • 1 分