硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3583|回复: 1
收起左侧

[emWin] GRAPH:图形小工具 的 Scale 問題

[复制链接]

34

主题

112

回帖

214

积分

高级会员

积分
214
发表于 2018-4-20 13:17:14 | 显示全部楼层 |阅读模式
各位好:

小弟 目前在練習 GRAPH_DATA_XY
目前畫面是這樣
擷取.JPG

左邊 Temperature 是參考 官方程式的
/*********************************************************************
*
*       _UserDraw
*
* Function description
*   This routine is called by the GRAPH object before anything is drawn
*   and after the last drawing operation.
*/
static void _UserDraw(WM_HWIN hWin, int Stage) {
if (Stage == GRAPH_DRAW_LAST) {
  char acText[] = "Temperature °C";
  GUI_RECT Rect;
  GUI_RECT RectInvalid;
  int      FontSizeY;
  char acText2[] = "Today (0-24)";
  GUI_RECT Rect2;
  GUI_RECT RectInvalid2;
  int      FontSizeX;
  /*  這是 繪製 Temperature  */
  GUI_SetFont(&GUI_Font13B_1);
  FontSizeY = GUI_GetFontSizeY();
  WM_GetInsideRect(&Rect);
  WM_GetInvalidRect(hWin, &RectInvalid);
  Rect.x1 = Rect.x0 + FontSizeY;
  GUI_SetColor(GUI_RED);
  GUI_DispStringInRectEx(acText, &Rect, GUI_TA_HCENTER, strlen(acText), GUI_ROTATE_CCW);
  /*  這是 繪製 Today (0-24)
  
*/
  GUI_SetFont(&GUI_Font13B_1);
  FontSizeX = GUI_GetFontSizeY();
  WM_GetInsideRect(&Rect2);
  WM_GetInvalidRect(hWin, &RectInvalid2);
  Rect2.y1 = Rect2.y0 + FontSizeX;
  GUI_SetColor(GUI_RED);
  GUI_DispStringInRectEx(acText2, &Rect2, GUI_TA_HCENTER, strlen(acText), GUI_ROTATE_0);
}
}
------------------------------------------------------------------------------------------------------------------------
  //

  // Create and add horizontal scale
  //
  _hScaleH = GRAPH_SCALE_Create(375, GUI_TA_HCENTER, GRAPH_SCALE_CF_HORIZONTAL, 30);   // 我有把 GUI_TA_HCENTER 改成 GUI_TA_TOP 也不對...
  GRAPH_SCALE_SetFactor(_hScaleH, SetFactorX1);
  GRAPH_SCALE_SetTextColor(_hScaleH, GUI_DARKGREEN);
  GRAPH_AttachScale(hItem, _hScaleH);
------------------------------------------------------------------------------------------------------------------------
我想問的是 下方的 Scale 內容 ( 1 2 3 ... 24) 可以上來一點嗎?
                 Today(0-24) 我想顯示在 1 2 3 ... 24  的下方,該怎麼顯示?
最終想改成這樣
未命名.jpg
------------------------------------------------------------------------------------------------------------------------
老實說 我看了 左邊 Temperature 範例所使用的
WM_GetInsideRect()       // 返回活动窗口减去边界后的尺寸。
WM_GetInsideRectEx()   // 返回窗口减去边界后的尺寸。
GUI_GetFontSizeY()       //  返回当前字体的高度像素(Y 大小)。
還是不了解意思,懇請前輩指教一下


萬分感謝
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-4-21 02:26:15 | 显示全部楼层
如果楼主是采用的对话框方式创建的这个界面,再创建一个TEXT文本控件,用TEXT文本控件显示就行。
并且特别注意我这个帖子里面的问题:
https://forum.anfulai.cn/forum.ph ... A%D4%B4%C1%D0%B1%ED
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-19 22:01 , Processed in 0.042863 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表