野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8507|回复: 4

请教高手小工具动态显示数据

[复制链接]
发表于 2016-1-12 23:02:13 | 显示全部楼层 |阅读模式
显示动态数据,比如说时间,用控件显示,应该怎么做,TEXT 文本控件,如何设置显示数值,还是必须用EDIT,如何才能够设置TIMER事件,控制刷新。谢谢
回复

使用道具 举报

发表于 2016-1-13 07:25:35 | 显示全部楼层
数据从哪里来,单片机发过来吗?用什么语言编程?
我整过VB,用TEXT 文本框显示,象时间信息可来自单片机的串口数据,也可以从上位机本身获得,如定时1秒显示TIME或NOW
回复 支持 反对

使用道具 举报

发表于 2016-1-13 10:27:08 | 显示全部楼层
可以参考开机例程程序,在屏幕的中间上边沿就有一个更新时间的控件,参考app.c文件
  1. case WM_TIMER://处理时间显示的信息,每秒钟修改一次时间
  2.                         if(!TimeDisplay||UserApp_Flag)
  3.                         {
  4.                                 WM_RestartTimer(pMsg->Data.v, 250);
  5.                                 break;
  6.                         }
  7.                         /* 获取text句柄 */      
  8.                         hText = WM_GetDialogItem(pMsg->hWin, GUI_ID_TEXT1);
  9.                        
  10.                         /* 转换rtc值至北京时间 */
  11.                         RTC_TimeCovr(&systmtime);
  12.   
  13.                         /* 转换成字符串 */
  14.                         sprintf(text_buffer,"%02d:%02d:%02d",systmtime.tm_hour,systmtime.tm_min,systmtime.tm_sec);
  15.                         /* 输出时间 */
  16.                         TEXT_SetText(hText,text_buffer);
  17.                         WM_RestartTimer(pMsg->Data.v, 250);
  18.                 break;
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-13 19:07:38 | 显示全部楼层
太感谢楼上二位老师的答复,再请教楼上开机例程程序怎么可以找到
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-13 20:25:59 | 显示全部楼层


还是直接请教吧  看看我的代码有什么问题



/*File        : WIDGET_Edit.c*/

----------------------------------------------------------------------
*/
#include <stdlib.h>
#include "GUI.h"
#include "EDIT.h"
#include "DIALOG.h"
#include "WM.h"
#include "EDIT.h"
#include "FRAMEWIN.h"
#include "TEXT.h"
GUI_COLOR _acColor[3] = {GUI_BLUE,GUI_RED,GUI_YELLOW};
static char ucBackColor;
/*********************************************************************
*
*       Defines
*
**********************************************************************
*/
#define WM_APP_SHOW_TEXT (WM_USER + 0)


/*********************************************************************


/*********************************************************************
*
*       Static data
*
**********************************************************************
*/
/*********************************************************************
*
*       Dialog resource
*
*  These tables contain the information required to create the dialogs.
*  It has been created manually, but could also be created by the GUIBuilder.
*/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate1[] = {
  { FRAMEWIN_CreateIndirect,”Dialog”,0,10,10,180,230,0,0  },

  { EDIT_CreateIndirect,    "Edit",   EDIT0,      5,  30,  80,  20, 0},//set
  { TEXT_CreateIndirect,      "Display ",GUI_ID_TEXT1,  5,  10,  50,  20, TEXT_CF_LEFT }//dis
};

/*********************************************************************
*
*       _cbBkWindow
*
*  Function description
*    Callback routine of the background window.
*    It shows the sample title and draws the background.
*/
static void _cbBkWindow(WM_MESSAGE * pMsg) {
  switch (pMsg->MsgId) {
  case WM_PAINT:
    GUI_SetBkColor(GUI_BLUE);
    GUI_Clear();
    GUI_SetColor(GUI_WHITE);
    GUI_SetFont(&GUI_Font24_ASCII);
    GUI_DispStringHCenterAt("WIDGET - Sample", 160, 5);
    break;


case WM_TIMER://处理时间显示的信息,每秒钟修改一次时间

                       if(!TimeDisplay||UserApp_Flag)
  
                      {
                                
                             WM_RestartTimer(pMsg->Data.v, 250);
  
                              break;
  
                      }
                        /* 获取text句柄 */
     
                       
hText = WM_GetDialogItem(pMsg->hWin, GUI_ID_TEXT1);

                        
                        /* 转换rtc值至北京时间 */
                        
RTC_TimeCovr(&systmtime);


                        /* 转换成字符串 */

                     
sprintf(text_buffer,"%02d:%02d:%02d",systmtime.tm_hour,systmtime.tm_min,systmtime.tm_sec);
                        /* 输

出时间 */

                     
TEXT_SetText(hText,text_buffer);

                       WM_RestartTimer(pMsg->Data.v, 250);

   

            break;

  default:
    WM_DefaultProc(pMsg);
  }
}


/*********************************************************************
*
*       Public code
*
**********************************************************************
*/
/*********************************************************************
*
*       MainTask
*/
void FrameWin_Demo(void){
  
  WM_HWIN hFrameWin;
  WM_HWIN hDialog;
//
  // Enable use of memory devices
  //
  WM_SetCreateFlags(WM_CF_MEMDEV);
  GUI_Init();
  WM_SetCallback(WM_HBKWIN, _cbBkWindow);
  hTimer = WM_CreateTimer(WM_HBKWIN, 0, 1000, 0);
  hFrameWin = FRAMEWIN_Create("FrameWindow", NULL, WM_CF_SHOW, 40, 44, 240, 152);
GUI_CreateDialogBox())
while (1) {
    GUI_Delay(10);
   GUI_Exec();
  }

}






回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-8 22:54 , Processed in 0.036837 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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