2021-09-09 20:31:21 索炜达电子 1230
项目编号:E961
文件大小:4M
源码说明:带中文注释
开发环境:C编译器
简要概述:
emWin以skinning方式实现BMP图片位图皮肤的源代码
emWin的控件显示是由默认的控件绘制函数完成,但emWin凭借其skinning功能可以非常方便的实现自定义控件绘制函数,利用自定义控件绘制函数我们可以非常方便的实现所有控件的BMP位图皮肤,而且支持整幅图片贴图,不需要对整幅图片进行切片分解,功能非常强大。
如上图所示,(x0,y0)为整幅图片的显示坐标,(x1,y1)和(x2,y2)是emWin为控件自动生成的剪切显示坐标,我们只需要调用GUI_DrawBitmap()函数在(x0,y0)显示整幅图片即可,emWin会自动剪切显示出该控件的位图皮肤,非常便捷。
以整幅图片实现emWin位图皮肤可以大大减轻控件贴图的工作量,非常的方便;如果把每个控件对应的图片先切片分解下来,然后再转换成C文件,最后再贴图到控件上面去,那样工作量将是非常恐怖的;保守估计贴图工作效率提高10倍以上。
附件里面的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