⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 windows.lst

📁 51单片机在lcd上实现zlg gui,希望好的请多加点分数
💻 LST
字号:
C51 COMPILER V7.50   WINDOWS                                                               09/11/2007 21:56:46 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE WINDOWS
OBJECT MODULE PLACED IN .\OBJ\windows.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE windows.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\LST\windows.lst) OBJECT(.
                    -\OBJ\windows.obj)

line level    source

   1          /****************************************************************************************
   2          * 文件名:WINDOW.C
   3          * 功能:窗口管理。将进行各种窗口的给制及窗口内部控制。
   4          * 作者:黄绍斌
   5          * 日期:2004.02.26
   6          * 备注:
   7          ****************************************************************************************/
   8          #include "config.h"
   9          
  10          #if  GUI_WINDOW_EN==1
  11          /****************************************************************************
  12          * 名称:GUI_WindowsDraw()
  13          * 功能:显示窗口。根据提供的窗口参数进行画窗口。
  14          * 入口参数:win         窗口句柄
  15          * 出口参数:返回0表示操作失败,返回1表示操作成功
  16          ****************************************************************************/
  17          uint8  GUI_WindowsDraw(WINDOWS *win)
  18          {  uint8  *str;
  19   1         int32  bak, bak1, bak2;
  20   1         
  21   1         /* 参数过滤,若窗口起出范围,则返回0 */
  22   1         if( ( (win->with)<20 ) || ( (win->hight)<20 ) ) return(0);           // 宽度、高度检查,限制最小窗口
  23   1         if( (win->x + win->with ) > GUI_LCM_XMAX ) return(0);                        // 窗口宽度是否溢出
  24   1         if( (win->y + win->hight ) > GUI_LCM_YMAX ) return(0);                       // 窗口高度是否溢出
  25   1          
  26   1         /* 开始画窗口 */
  27   1         GUI_RectangleFill(win->x, win->y, win->x + win->with - 1, win->y + win->hight - 1, back_color);
  28   1         GUI_Rectangle(win->x, win->y, win->x + win->with - 1, win->y + win->hight - 1, disp_color);  // 画窗口
  29   1         GUI_HLine(win->x, win->y + 12, win->x + win->with - 1, disp_color);                                                  // 画标题目栏
  30   1         GUI_RLine(win->x + 12, win->y, win->y + 12, disp_color);                                                                             // 画关闭窗号按钮
  31   1         GUI_Line(win->x, win->y, win->x + 12, win->y + 12, disp_color);
  32   1         GUI_Line(win->x + 12, win->y, win->x, win->y + 12, disp_color);
  33   1         
  34   1      
  35   1         /* 写标题 */
  36   1         if( win->title != NULL ) 
  37   1         {  str = win->title;
  38   2            bak = win->x + 15;
  39   2            bak1 = win->y + 3;
  40   2            bak2 = win->x + win->with -1;
  41   2           
  42   2            while(1)                                          
  43   2            {  if( (bak+8) > bak2 ) break;                                                            // 判断标题是否溢出
  44   3               if(*str=='\0') break;                                                                          // 判断字符串是否结束
  45   3               
  46   3               GUI_PutChar(bak, bak1, *str++);                                                        // 显示标题
  47   3               bak += 6;
  48   3            }
  49   2         }
  50   1      
  51   1      
  52   1         /* 写状态栏 */
  53   1         if( win->state != NULL )
  54   1         {  if( win->hight < 60) return(0);                                                           // 判断是否可以画状态栏
C51 COMPILER V7.50   WINDOWS                                                               09/11/2007 21:56:46 PAGE 2   

  55   2            /* 画状态栏 */
  56   2            GUI_HLine(win->x, win->y + win->hight - 11, win->x + win->with - 1, disp_color);
  57   2            
  58   2            str = win->state;
  59   2            bak = win->x + 3;
  60   2            bak1 = win->y + win->hight - 9;
  61   2            bak2 = win->x + win->with -1;
  62   2            
  63   2            while(1)                                          
  64   2            {  if( (bak+8) > bak2 ) break;                                                            // 判断标题是否溢出
  65   3               if(*str=='\0') break;                                                                          // 判断字符串是否结束
  66   3               
  67   3               GUI_PutChar(bak, bak1, *str++);                                                        // 显示标题
  68   3               bak += 6;
  69   3            }      
  70   2         }
  71   1         
  72   1         return(1);
  73   1      
  74   1      }
  75          
  76          
  77          /****************************************************************************
  78          * 名称:GUI_WindowsHide()
  79          * 功能:消隐窗口。
  80          * 入口参数:win         窗口句柄
  81          * 出口参数:返回0表示操作失败,返回1表示操作成功
  82          ****************************************************************************/
  83          uint8  GUI_WindowsHide(WINDOWS *win)
  84          {  /* 参数过滤,若窗口起出范围,则返回0 */
  85   1         if( ( (win->with)<20 ) || ( (win->hight)<20 ) ) return(0);           // 宽度、高度检查,限制最小窗口
  86   1         if( (win->x + win->with ) > GUI_LCM_XMAX ) return(0);                        // 窗口宽度是否溢出
  87   1         if( (win->y + win->hight ) > GUI_LCM_YMAX ) return(0);                       // 窗口高度是否溢出
  88   1          
  89   1         /* 消隐窗口 */
  90   1         GUI_RectangleFill(win->x, win->y, win->x + win->with - 1, win->y + win->hight - 1, back_color);
  91   1         return(1);
  92   1      }
  93          
  94          
  95          
  96          /****************************************************************************
  97          * 名称:GUI_WindowsClr()
  98          * 功能:清屏窗口。
  99          * 入口参数:win         窗口句柄
 100          * 出口参数:无
 101          * 说明:使用此函数前要先使用GUI_WindowsDraw()将窗口画出。
 102          ****************************************************************************/
 103          void  GUI_WindowsClr(WINDOWS *win)
 104          {  uint8  x0, y0;
 105   1         uint8  x1, y1;
 106   1       
 107   1         /* 设置要清屏的区域 */
 108   1         x0 = win->x + 1;
 109   1         x1 = win->x + win->with - 2;
 110   1         y0 = win->y + 13;
 111   1         y1 = win->y + win->hight - 2;
 112   1         if( win->state != NULL )                     // 判断是否有状态栏                             
 113   1         {  if( win->hight >= 60)
 114   2            {  y1 = win->y + win->hight - 12;
 115   3            }
 116   2         }
C51 COMPILER V7.50   WINDOWS                                                               09/11/2007 21:56:46 PAGE 3   

 117   1      
 118   1         /* 使用填充矩形实现清屏 */
 119   1         GUI_RectangleFill(x0, y0, x1, y1, back_color);
 120   1      }
 121          #endif
 122          
 123          
 124          
 125          
 126          
 127          
 128          
 129          
 130          
 131          
 132          
 133          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1575    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----      22
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -