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

(小菜鸟写库)个人为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;    }

 技术分享技术分享技术分享

 

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