|
发表于 2025-8-28 14:55:08
|
显示全部楼层
好的 我试试 还有一个问题,我看到其他帖子说这个图形数量改为0可以清除基本图形,但是我实际测试的时候不行,是为啥呀
- /**
- * @brief 绘制或清除2D形状
- * 注意:当shape_num为0时,会清除2D图形
- * @param shape_data 图形指令及数据
- */
- void sys_draw_shape(u16 * shape_data)
- {
- //#define SHAPE_NUM 1 //只绘制一个
- #define END_FLAG 0xff00 //绘制结束标记
- u8 len;
-
- switch(shape_data[1])
- {
- case SHAPE_TYPE_POINT://绘制点
- //((SHAPE_DATA_POINT*)shape_data)->shape_num = SHAPE_NUM;
- ((SHAPE_DATA_POINT*)shape_data)->end_flag = END_FLAG;
- len = sizeof(SHAPE_DATA_POINT)-2;
- break;
- case SHAPE_TYPE_LINE://端点连线或线段
- //((SHAPE_DATA_LINE*)shape_data)->shape_num = SHAPE_NUM;
- ((SHAPE_DATA_LINE*)shape_data)->end_flag = END_FLAG;
- len = sizeof(SHAPE_DATA_LINE)-2;
- break;
- case SHAPE_TYPE_RECT://画矩形
- case SHAPE_TYPE_FILL_RECT://画填充矩形
- //((SHAPE_DATA_RECT*)shape_data)->shape_num = SHAPE_NUM;
- ((SHAPE_DATA_RECT*)shape_data)->end_flag = END_FLAG;
- len = sizeof(SHAPE_DATA_RECT)-2;
- break;
- case SHAPE_TYPE_AREA_COPY://界面区域拷贝
- //((SHAPE_DATA_AREA_COPY*)shape_data)->shape_num = SHAPE_NUM;
- ((SHAPE_DATA_AREA_COPY*)shape_data)->end_flag = END_FLAG;
- len = sizeof(SHAPE_DATA_AREA_COPY)-2;
- break;
- case SHAPE_TYPE_VER_LINE://频谱,垂直线
- //((SHAPE_DATA_VER_LINE*)shape_data)->shape_num = SHAPE_NUM;
- ((SHAPE_DATA_VER_LINE*)shape_data)->end_flag = END_FLAG;
- len = sizeof(SHAPE_DATA_VER_LINE)-2;
- break;
- }
-
- sys_write_vp(shape_data[0],(u8*)(shape_data+1),len/2);
- }
- /**
- * @brief 切换操作名称选择状态,选中状态下背景为蓝色,否则清除填充矩形
- * @param lineNum 文本所在行数,1-4
- * @param status 是否处于选中状态 1:选中 0:未选中
- */
- void GUI_SetupES_ChangeNameSelect(u8 lineNum,u8 status)
- {
- SHAPE_DATA_RECT fill_rect;
- u8 idx = lineNum - 1;
- if (status)
- {
- fill_rect.shape_num = 1;
- fill_rect.vp = gText[idx].rextFillVp;
- fill_rect.shape_type = SHAPE_TYPE_FILL_RECT;
- fill_rect.xs = gText[idx].rectFill_Xs;
- fill_rect.ys = gText[idx].rectFill_Ys;
- fill_rect.xe = gText[idx].rectFill_Xe;
- fill_rect.ye = gText[idx].rectFill_Xe;
- fill_rect.color = 0x001F; //蓝色
- sys_draw_shape((u16*)&fill_rect);
- }
- else
- {
- fill_rect.shape_num = 0; //清除基本图形
- fill_rect.vp = gText[idx].rextFillVp;
- fill_rect.shape_type = SHAPE_TYPE_FILL_RECT;
- fill_rect.xs = gText[idx].rectFill_Xs;
- fill_rect.ys = gText[idx].rectFill_Ys;
- fill_rect.xe = gText[idx].rectFill_Xe;
- fill_rect.ye = gText[idx].rectFill_Xe;
- fill_rect.color = 0x001F; //蓝色
- sys_draw_shape((u16*)&fill_rect);
- }
-
- }
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|