/* * wjh_Graph.h * * Created on: 2024年7月26日 * Author: wu */ #ifndef APP_MODULE_WJH_GRAPH_C_ #define APP_MODULE_WJH_GRAPH_C_ #include "gdd.h" enum{ GRAPH_DATA_LEN_MAX = 30,//单个数据长度 GRAPH_TITLE_LEN_MAX = 20,//标题长度 GRAPH_DATA_NUM_MAX = 20,//数据 GRAPH_Y_SEG_LEN_OPT = 40,//Y轴线段最优间隔 GRAPH_Y_DASHED_SOLID = 3,//Y轴虚线的实线长度 GRAPH_Y_DASHED_DASHED = 3,//Y轴虚线的虚线长度 }; enum WJH_GRAPH_MODE{ GRAPH_BAR_CHART = 0,//柱状图 GRAPH_LINE_CHART,//折线图 GRAPH_PIE_CHART,//饼图 }; enum WJH_GRAPH_SORT{ GRAPH_SORT_DEFAULT = 0,//默认显示(按顺序显示) GRAPH_SORT_ASC_BY_DATA,//升序(按数据) GRAPH_SORT_DES_BY_DATA,//降序(按数据) GRAPH_SORT_ASC_BY_LABEL,//升序(按标签字典) GRAPH_SORT_DES_BY_LABEL,//降序(按标签字典) }; static u32 Graph_ColorDefaultTable[GRAPH_DATA_NUM_MAX] = { RGB(255, 99, 71) // 鲜艳的橙红色 , RGB(255, 153, 51) // 橙色 , RGB(255, 204, 0) // 黄色 , RGB(153, 204, 0) // 浅绿色 , RGB(51, 204, 51) // 鲜绿色 , RGB(0, 153, 102) // 青色 , RGB(0, 102, 204) // 亮蓝色 , RGB(76, 76, 192) // 紫色调蓝色 , RGB(153, 51, 204) // 紫罗兰色 , RGB(204, 51, 153) // 粉红色 , RGB(255, 102, 102) // 浅红色 , RGB(102, 153, 255) // 亮天蓝色 , RGB(102, 102, 255) // 亮紫色 , RGB(153, 153, 255) // 亮蓝色调 , RGB(102, 204, 102) // 薄荷绿色 , RGB(204, 204, 204) // 浅灰色 , RGB(153, 102, 51) // 棕色 , RGB(51, 51, 153) // 深紫色 , RGB(255, 255, 153) // 淡黄色 , RGB(153, 255, 204) // 浅黄绿色 }; struct WJH_GRAPH_DATA{ u8 xLabel[GRAPH_DATA_LEN_MAX];//表格横坐标数据(每一列的名称) u32 data;//表格纵坐标的数据(每一列对应的数据值) }; struct WJH_GRAPH_INFO{ u8 title[GRAPH_TITLE_LEN_MAX];//表格标题 u32 dataNum;//表格数据量 struct WJH_GRAPH_DATA dataTable[GRAPH_DATA_NUM_MAX]; enum WJH_GRAPH_MODE chartMode;//表格显示模式:折线图、柱状图 //仅与坐标系图有关的参数 u8 adaptiveFlag_Y;//Y轴纵坐标值自适应标识,如果为True,则纵坐标数值根据系统自行计算,否则根据用户设置的最大值来绘画 u32 dataMax_Y;//图表显示的最大值 //仅与柱状图有关的参数 u32 linehight;//一行数据显示的高度 u32 lineNum;//一行显示的数据个数 u32 dataColor[GRAPH_DATA_NUM_MAX];//数据对应的颜色 enum WJH_GRAPH_SORT sortFlag;//排序标识 }; HWND wjh_Graph_Initialize(u32 x,u32 y,u32 w,u32 h,u32 dataNum,u8 x_Data[][GRAPH_DATA_LEN_MAX],u32 y_Data[],HWND p_father); bool_t wjh_Graph_SetTitle(HWND hwnd,u8 *ls_title); bool_t wjh_Graph_SetShowMode(HWND hwnd,enum WJH_GRAPH_MODE mode); bool_t wjh_Graph_SetYData(HWND hwnd,u32 dataNum,u32 data[]); bool_t wjh_Graph_SetSortFlag(HWND hwnd,enum WJH_GRAPH_SORT sortFlag); //仅与坐标系图有关 bool_t wjh_Graph_SetYDataMAX(HWND hwnd,u32 max); bool_t wjh_Graph_SetYMAXAdaptive(HWND hwnd); //仅与饼图有关 bool_t wjh_Graph_SetPieColor(HWND hwnd,u32 colorNum,u32 color[]); #endif /* APP_MODULE_WJH_GRAPH_C_ */