(小菜鸟写库)个人为0.95寸OLED写的图形界面库(连载)

名称:

OLED_Window.h

OLED_Window.c

功能:对外资提供三个接口:1添加图标控件
                                    2光标移动(选择图标)函数
                                    3光标确定(执行图标)函数

4显示函数

OLED_Window.h代码:

#ifndef _OLED_WINDOW_H
#define _OLED_WINDOW_H
#include "OLED.h"   //OLED驱动库
/*******************OLED驱动库函数接口************************/
#define DRAW_string
/*******************************************/
#define PAGE 2  //Icon 页数
#define NUM 6    //每页多少个
#define Icon_Max  12  //Icon最大个数 PAGE*NUM
#define ICON_W 42     //图标宽
#define ICON_H 24     //图标高
#define FistRow_Distan 16         //第一行状态栏高度
#define ICON_STR_H 16            //字高
#define ICON_STR_W 32                 //字最大宽
#define ICON_Distan_H 4     //  图标空白角高
#define ICON_Distan_W 5      //图标空白角宽
#define STRING_LE 10        //允许最大字符数
#define Power_Len 10
#define Power_H   8
#define Power_W  12
#define Power_X   4
#define Power_Y   2
#define Power_W_dis 1 //Power_W_dis=(Power_W-Power_Len)/2
/**************函数宏**************************/
#define Set_Pos(x,y)  LCD_Set_Pos(x,y)
#define Print_string(x,y,p) OLED_ShowString(x,y,p)
#define Print_string_Mode(x,y,p,m)   OLED_ShowString_Mode(x,y,p,m)
#define Print_Fill(x1,y1,x2,y2,dot)  OLED_Fill(x1,y1,x2-1,y2-1,dot)
#define Print_Clear() OLED_Clear()
/*****************************************/
#ifndef U8
#define U8 unsigned char
#endif
/***********************************/
#define C_ERR  0
#define C_OK   1
/**************************************/
//typedef struct {
//    table[PAGE][NUM];
//}HOME_map;
typedef struct{
    U8 x;
    U8 y;
}Point;

typedef struct {
    unsigned char name[STRING_LE];
    void (*Event)(void);
}Icon;

U8 Window_Icon_Add(unsigned char *name,void (*Event)(void));//添加图标
void Point_Select(void);   //光标移动(选择图标)
void Point_Select_Ok(void);  //光标确定(执行图标)
void Window_Home_DIS(void);//显示
#endif

.c部分代码

U8 Window_Icon_Add(unsigned char *name,void (*Event)(void)) //图标控件注册
{
    if(Icon_num<=12)
    {
        Icon *Temp_Icon;
        U8 i;
        unsigned char c;
        Icon_num++;

        Temp_Icon=&Icon_table[(Icon_num-1)/NUM][(Icon_num-1)%NUM];
        for(i=0;i<STRING_LE;i++)
        {
            c=*name;
            if(c!=‘\0‘)
            Temp_Icon->name[i]=c;
            else  break;
            name++;
}
        Temp_Icon->name[i+1]=‘\0‘;
        Temp_Icon->Event=Event;
    return  C_OK;
    }
    else
        return C_ERR;

}

时间: 2024-11-08 22:34:20

(小菜鸟写库)个人为0.95寸OLED写的图形界面库(连载)的相关文章

图形界面库Windows Forms MFC WTL WxWidgets Qt GTK 综合比较

图形界面库Windows Forms. MFC.WTL. WxWidgets.Qt.GTK 综合比较见下表: 总结: GTK+主要用在X Window上,整个设计的架构和许多概念和MFC以及一般 Windows 上的程序开发大异其趣,入门门槛较高,而且最主要的特色是,它用不具有物件功能的纯C 语言,模拟物件导向.所以写起来比较复杂艰涩,而且充满大量巨集,使用和除错都不是很容易,但优点则是可以用C,不需C++,如果和Win32 SDK比较,不会难学多少,缺点是不易上手使用,而且文件比较缺,架构又非

高通智能手环0.96寸OLED(128X64)UI显示套件

随着穿戴市场今年的快速发展,智能手环的产品类型.功能和品质等爆发式地提升和增强,而智能手环的UI界面作为产品体验最直观的部分,将带给消费者最直接的印象,故UI的品质对此类消费类产品相当重要. 本期产品为高通科技第一款UI套件(GTL-12864O096K16D),为一款专用型0.96寸OLED LCD,支持nrf51822系列蓝牙SOC芯片,包含专业点阵字库.手环字库.手表字库.UI元素.交互程序.主控驱动等.用户只需要调用数据接口,就可以轻松实现完整的UI显示和交互.此产品帮助客户极大缩短开发

做一个具有图片读入,写出,灰度化,黑白化的有图形界面的小软件

我们这一次的树莓基础的作业是做一个做一个具有图片读入,写出,灰度化,黑白化的小软件,我采用的是java,因为java有大量性能非常好的接口可用,譬如在图片这块,ImageIO,BufferedImage都是非常好用的,而我这一次作业也是使用这两个包. 首先我们要解决的是界面,界面可以直接用JFrame来打, 非常简单,我的界面有一个菜单栏和一个图片显示区,菜单栏有三个选项:文件,转换,保存,文件菜单有一个子菜单:打开文件,转换菜单有两个子菜单:变成灰度和变成黑白,保存菜单有三个子菜单:jpg,

JAVA写的模拟收发器设备面板工作状态并输出图形界面

java模拟收发器工作状态,每个光口.电口.状态灯都可以跟随鼠标移动,显示提示信息.变异jiava代码生成class文件后,html文件调用. 源代码,可以在附件里下载 mb.java 源代码如下: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.applet.*; import java.net.URL; import java.net.MalformedURLException; pu

【菜鸟学php】小菜鸟由帝国备份王在Wamp环境下打开500错误浅谈PHP程序员

===================问题情况描述=================== 小弟一直在玩discuz论坛开源程序,这个论坛程序经常涉及到论坛搬家的问题. 今天我在本地Wamp环境下,用开源软件帝国备份王2010进行数据库备份数据,结果打开发现报错500! 这真是坑爹了,回想下以前自己使用这个开源程序进行备份也不下于十几次了,大部分都正常成功, 但也不乏出现这种情况的,小弟之前一般遇到这种问题, 都是直接忽略,换其他办法来进行备份,但是用惯了帝国备份王,换其他的方法备份数据,总感觉难

C++100款开源界面库[转]

(声明:Alberl以后说到开源库,一般都是指著名的.或者不著名但维护至少3年以上的.那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码.这里并不是贬低,像Alberl前面那个系列的教程<2013 duilib入门简明教程>,还有本系列教程,还有前面介绍的CodeProject,基本上都是代码往上面一扔,就不用再怎么维护的.这些都称之为开源代码,其实开源代码对新手的帮助更大,因为很简明的说明了代码用法~O(∩_∩)O~) 前面两个教程已经对制作界面的几种方式进行了比较,权威界

几款国产开源的Windows界面库

上次介绍的几款图形界面库http://blog.okbase.net/vchelp/archive/23.html都是国外的开源项目,今天介绍的几款都是国人的开源项目,大部分是采用DirectUI设计思想. 1.  炫彩界面库XCGUI 炫彩界面库不仅是界面库,它是软件界面开发框架,让用户开发桌面软件变的简单高效,它功能丰富, 小巧,安全(所有界面元素无句柄),Unicode字符编码,完善的帮助文档; 并且提供了UI设计器,支持XML布局,CSS样式表,XML资源;该库采用C语言开发,速度更快,

DuiVision开源界面库介绍

DuiVision是蓝蚂蚁工作室开发的DUI界面库,参考了仿PC管家程序.金山界面库.DuiEngine.DuiLib等多个基于DirectUI的界面库开发的. DirectUI技术一般是指将所有的界面控件都绘制在一个窗口上,这些控件的逻辑和绘图方式都必须自己进行编写和封装,而不是使用Windows控件,所以这些控件都是无句柄的. DirectUI技术需要解决的主要问题如下: 1.窗口的子类化,截获窗口的消息. 2.封装自己的控件,并将自己的控件绘制到该窗口上. 3.封装窗口的消息,并分发到自己

国内各个界面库比较

国内各个界面库比较 目前网络上的界面库多彩多样.这里以个人的观点,来评价一下界面库.如果有不当的地方望批评指出. 1 Skin++(www.uipower.com) 该界面库是基于WIN32的界面库,以上海勇进公司的形式来运作,公司规模10人内,开发人员5人左右.05年发布第一个版本以来,运作时间较长.但是产 品和目前最新出的界面库比较起来,略显逊色.(可能不了解的朋友不信,呵呵--)可以去下载他们的成功案例来看看.比如:呱呱聊天室(www.17guagua.com).PPS(http://dl