久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2930|回復: 3
打印 上一主題 下一主題
收起左側

ZLGGUI源碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:281640 發表于 2018-2-2 10:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
ZLGGUI源碼

單片機源程序如下:
  1. /****************************************************************************************
  2. * 文件名:WINDOW.C
  3. * 功能:窗口管理。將進行各種窗口的給制及窗口內部控制。
  4. * 作者:黃紹斌
  5. * 日期:2004.02.26
  6. * 備注:
  7. ****************************************************************************************/
  8. #include "config.h"

  9. #if  GUI_WINDOW_EN==1
  10. /****************************************************************************
  11. * 名稱:GUI_WindowsDraw()
  12. * 功能:顯示窗口。根據提供的窗口參數進行畫窗口。
  13. * 入口參數:win                窗口句柄
  14. * 出口參數:返回0表示操作失敗,返回1表示操作成功
  15. ****************************************************************************/
  16. uint8  GUI_WindowsDraw(WINDOWS *win)
  17. {  uint8  *str;
  18.    int32  bak, bak1, bak2;
  19.    
  20.    /* 參數過濾,若窗口起出范圍,則返回0 */
  21.    if( ( (win->with)<20 ) || ( (win->hight)<20 ) ) return(0);                // 寬度、高度檢查,限制最小窗口
  22.    if( (win->x + win->with ) > GUI_LCM_XMAX ) return(0);                        // 窗口寬度是否溢出
  23.    if( (win->y + win->hight ) > GUI_LCM_YMAX ) return(0);                        // 窗口高度是否溢出
  24.    
  25.    /* 開始畫窗口 */
  26.    GUI_RectangleFill(win->x, win->y, win->x + win->with - 1, win->y + win->hight - 1, back_color);
  27.    GUI_Rectangle(win->x, win->y, win->x + win->with - 1, win->y + win->hight - 1, disp_color);        // 畫窗口
  28.    GUI_HLine(win->x, win->y + 12, win->x + win->with - 1, disp_color);                                                        // 畫標題目欄
  29.    GUI_RLine(win->x + 12, win->y, win->y + 12, disp_color);                                                                                // 畫關閉窗號按鈕
  30.    GUI_Line(win->x, win->y, win->x + 12, win->y + 12, disp_color);
  31.    GUI_Line(win->x + 12, win->y, win->x, win->y + 12, disp_color);
  32.    

  33.    /* 寫標題 */
  34.    if( win->title != NULL )
  35.    {  str = win->title;
  36.       bak = win->x + 15;
  37.       bak1 = win->y + 3;
  38.       bak2 = win->x + win->with -1;
  39.      
  40.       while(1)                                               
  41.       {  if( (bak+8) > bak2 ) break;                                                                // 判斷標題是否溢出
  42.          if(*str=='\0') break;                                                                                // 判斷字符串是否結束
  43.          
  44.          GUI_PutChar(bak, bak1, *str++);                                                        // 顯示標題
  45.          bak += 6;
  46.       }
  47.    }


  48.    /* 寫狀態欄 */
  49.    if( win->state != NULL )
  50.    {  if( win->hight < 60) return(0);                                                                // 判斷是否可以畫狀態欄
  51.       /* 畫狀態欄 */
  52.       GUI_HLine(win->x, win->y + win->hight - 11, win->x + win->with - 1, disp_color);
  53.       
  54.       str = win->state;
  55.       bak = win->x + 3;
  56.       bak1 = win->y + win->hight - 9;
  57.       bak2 = win->x + win->with -1;
  58.       
  59.       while(1)                                               
  60.       {  if( (bak+8) > bak2 ) break;                                                                // 判斷標題是否溢出
  61.          if(*str=='\0') break;                                                                                // 判斷字符串是否結束
  62.          
  63.          GUI_PutChar(bak, bak1, *str++);                                                        // 顯示標題
  64.          bak += 6;
  65.       }      
  66.    }
  67.    
  68.    return(1);

  69. }


  70. /****************************************************************************
  71. * 名稱:GUI_WindowsHide()
  72. * 功能:消隱窗口。
  73. * 入口參數:win                窗口句柄
  74. * 出口參數:返回0表示操作失敗,返回1表示操作成功
  75. ****************************************************************************/
  76. uint8  GUI_WindowsHide(WINDOWS *win)
  77. {  /* 參數過濾,若窗口起出范圍,則返回0 */
  78.    if( ( (win->with)<20 ) || ( (win->hight)<20 ) ) return(0);                // 寬度、高度檢查,限制最小窗口
  79.    if( (win->x + win->with ) > GUI_LCM_XMAX ) return(0);                        // 窗口寬度是否溢出
  80.    if( (win->y + win->hight ) > GUI_LCM_YMAX ) return(0);                        // 窗口高度是否溢出
  81.    
  82.    /* 消隱窗口 */
  83.    GUI_RectangleFill(win->x, win->y, win->x + win->with - 1, win->y + win->hight - 1, back_color);
  84.    return(1);
  85. }



  86. /****************************************************************************
  87. * 名稱:GUI_WindowsClr()
  88. * 功能:清屏窗口。
  89. * 入口參數:win                窗口句柄
  90. * 出口參數:無
  91. * 說明:使用此函數前要先使用GUI_WindowsDraw()將窗口畫出。
  92. ****************************************************************************/
  93. void  GUI_WindowsClr(WINDOWS *win)
  94. {  uint8  x0, y0;
  95.    uint8  x1, y1;

  96.    /* 設置要清屏的區域 */
  97.    x0 = win->x + 1;
  98.    x1 = win->x + win->with - 2;
  99.    y0 = win->y + 13;
  100.    y1 = win->y + win->hight - 2;
  101.    if( win->state != NULL )                        // 判斷是否有狀態欄                               
  102.    {  if( win->hight >= 60)
  103.       {  y1 = win->y + win->hight - 12;
  104.       }
  105.    }

  106.    /* 使用填充矩形實現清屏 */
  107. ……………………

  108. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
zlggui.zip (34.72 KB, 下載次數: 70)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:69829 發表于 2018-8-14 14:16 | 只看該作者
感謝樓主分享!!
回復

使用道具 舉報

板凳
ID:660780 發表于 2020-4-2 14:51 | 只看該作者
黃紹斌  gui怎么用
回復

使用道具 舉報

地板
ID:660780 發表于 2020-4-2 14:51 | 只看該作者
感謝樓主分享!!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久精品综合 | 中文字幕免费视频 | 国产乱码精品一区二区三区忘忧草 | 国产中文视频 | 一区二区视屏 | 国产在线观看一区二区 | 精品一区二区三区不卡 | 精品一区二区三区在线观看 | 请别相信他免费喜剧电影在线观看 | 欧美精品导航 | 国产99视频精品免费播放照片 | 九九伊人sl水蜜桃色推荐 | 成人午夜激情 | 国产一区中文 | 9久久婷婷国产综合精品性色 | 夜夜艹| 国产91视频免费 | 国产精品人人做人人爽 | 久久久久国产精品一区二区 | 日韩精品中文字幕一区二区三区 | 欧美精品一 | 国产精品爱久久久久久久 | 国产成人a亚洲精品 | 成人美女免费网站视频 | 成人在线一区二区 | 7777在线| 丁香久久| 成人国产在线观看 | 欧美一级全黄 | 亚洲精品永久免费 | 手机看黄av免费网址 | 国产视频线观看永久免费 | 欧美久久视频 | 欧美日韩综合 | 日韩在线播放中文字幕 | 亚洲精品视频免费观看 | 亚洲 成人 av | 中文字幕91av | 一级毛片免费完整视频 | 国产精品视频久久久 | 在线观看国产 |