2021-09-09 20:31:21 索煒達(dá)電子 1177
項(xiàng)目編號(hào):E961
文件大?。?M
源碼說明:帶中文注釋
開發(fā)環(huán)境:C編譯器
簡(jiǎn)要概述:
emWin以skinning方式實(shí)現(xiàn)BMP圖片位圖皮膚的源代碼
emWin的控件顯示是由默認(rèn)的控件繪制函數(shù)完成,但emWin憑借其skinning功能可以非常方便的實(shí)現(xiàn)自定義控件繪制函數(shù),利用自定義控件繪制函數(shù)我們可以非常方便的實(shí)現(xiàn)所有控件的BMP位圖皮膚,而且支持整幅圖片貼圖,不需要對(duì)整幅圖片進(jìn)行切片分解,功能非常強(qiáng)大。
如上圖所示,(x0,y0)為整幅圖片的顯示坐標(biāo),(x1,y1)和(x2,y2)是emWin為控件自動(dòng)生成的剪切顯示坐標(biāo),我們只需要調(diào)用GUI_DrawBitmap()函數(shù)在(x0,y0)顯示整幅圖片即可,emWin會(huì)自動(dòng)剪切顯示出該控件的位圖皮膚,非常便捷。
以整幅圖片實(shí)現(xiàn)emWin位圖皮膚可以大大減輕控件貼圖的工作量,非常的方便;如果把每個(gè)控件對(duì)應(yīng)的圖片先切片分解下來,然后再轉(zhuǎn)換成C文件,最后再貼圖到控件上面去,那樣工作量將是非常恐怖的;保守估計(jì)貼圖工作效率提高10倍以上。
附件里面的SKIN_xxxx.c是emWin的自定義控件繪制函數(shù),也就是繪制出什么樣的控件完全是靠這個(gè)函數(shù),可以根據(jù)自己的需要修改代碼:
目錄│文件列表:
└ 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