`
touchinsert
  • 浏览: 1287791 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

1个人开发操作系统之界面与字体

阅读更多

1.界面

上文中我将一些信息保存到0x0ff0地址,这些信息有8bitscreen mode,屏幕高与宽,以及显示用内存地址,现在我们将这些信息保存到struct里:

struct BOOTINFO {

char cyls, leds, vmode, reserve;

short scrnx, scrny;

char *vram;

};

struct BOOTINFO *binfo = (struct BOOTINFO *) 0x0ff0;

8bit显示模式只有16色,既0-15,如果你不想使用系统默认的16色,可以自定义喜欢的16种颜色。定义方式为:

void set_palette()

{

int i, eflags;

eflags = io_load_eflags(); /*记录eflags*/

io_cli(); /*禁止中断*/

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>8, 0); /*0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>8端口发送命令*/

/*begin,开始定义颜色*/

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4); /*R*/

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4); /*G*/

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4); /*B*/

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff/ 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff/ 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00/ 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xc6 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xc6 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xc6 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

/*end*/

io_store_eflags(eflags); /*恢复EFLAGS*/

return;

}

下面就可以绘制界面了,一个方形绘制方法如下:

void boxfill8(unsigned char *vram, int xsize, unsigned char c, int x0, int y0, int x1, int y1)

{

int x, y;

for (y = y0; y <= y1; y++) {

for (x = x0; x <= x1; x++)

vram[y * xsize + x] = c;

}

return;

}

unsigned char *vram为显示内存地址

int xsize为屏幕的宽既320

unsigned char c为颜色

int x0, int y0为方形左上角点

int x1, int y1为方形右下角点

2.字体

编写一个新C源文件,为font.c。定义一个符号方法如下:

void char_0(char *font)

{

font[0]=0x00;

font[1]=0x18;

font[2]=0x24;

font[3]=0x24;

font[4]=0x42;

font[5]=0x42;

font[6]=0x42;

font[7]=0x42;

font[8]=0x42;

font[9]=0x42;

font[10]=0x42;

font[11]=0x24;

font[12]=0x24;

font[13]=0x18;

font[14]=0x00;

font[15]=0x00;

}

char *font为内存地址,1个文字长宽为8bit,高为16bit。以上函数是定义数字0

符号显示方法如下:

void putfont8(char *vram, int xsize, int x, int y, char c, char *font)

{

int i;

char *p, d /* data */;

for (i = 0; i < 16; i++) {

p = vram + (y + i) * xsize + x;

d = font[i];

if ((d & 0x80) != 0) { p[0] = c; }

if ((d & 0x40) != 0) { p[1] = c; }

if ((d & 0x20) != 0) { p[2] = c; }

if ((d & 0x10) != 0) { p[3] = c; }

if ((d & 0x08) != 0) { p[4] = c; }

if ((d & 0x04) != 0) { p[5] = c; }

if ((d & 0x02) != 0) { p[6] = c; }

if ((d & 0x01) != 0) { p[7] = c; }

}

return;

}

3bootpack.c的完整源代码

/*Colimas Simple OS*/

#include "font.h"

void io_hlt(void);

void io_cli(void);

void io_out8(int port, int data);

int io_load_eflags(void);

void io_store_eflags(int eflags);

void init_palette(void);

void set_palette(void);

void boxfill8(unsigned char *vram, int xsize, unsigned char c, int x0, int y0, int x1, int y1);

void init_screen(char *vram, int x, int y);

void putfont8(char *vram, int xsize, int x, int y, char c, char *font);

void drawchar(char *vram, int xsize, int x, int y, char c, unsigned char s);

void drawstring(char *vram, int xsize, int x, int y, char c, unsigned char *s);

#define COL8_000000 0

#define COL8_FF0000 1

#define COL8_00FF00 2

#define COL8_FFFF00 3

#define COL8_0000FF 4

#define COL8_FF00FF 5

#define COL8_00FFFF 6

#define COL8_FFFFFF 7

#define COL8_C<chmetcnv w:st="on" unitname="C" sourcevalue="6" hasspace="False" negative="False" numbertype="1" tcsc="0">6C</chmetcnv><chmetcnv w:st="on" unitname="C" sourcevalue="6" hasspace="False" negative="False" numbertype="1" tcsc="0">6C</chmetcnv>6 8

#define COL8_840000 9

#define COL8_008400 10

#define COL8_848400 11

#define COL8_000084 12

#define COL8_840084 13

#define COL8_008484 14

#define COL8_848484 15

//entry

struct BOOTINFO {

char cyls, leds, vmode, reserve;

short scrnx, scrny;

char *vram;

};

void ColimasMain(void)

{

struct BOOTINFO *binfo = (struct BOOTINFO *) 0x0ff0;

init_palette();

init_screen(binfo->vram, binfo->scrnx, binfo->scrny);

//drawstring(binfo->vram, binfo->scrnx, 18, 10, COL8_FFFFFF, s);

drawchar(binfo->vram, binfo->scrnx, 10, 10, COL8_FFFFFF, 'C');

drawchar(binfo->vram, binfo->scrnx, 18, 10, COL8_FFFFFF, 'I');

drawchar(binfo->vram, binfo->scrnx, 26, 10, COL8_FFFFFF, 'A');

for (;;) {

io_hlt();

}

}

void init_palette(void)

{

set_palette();

return;

}

void set_palette()

{

int i, eflags;

eflags = io_load_eflags();

io_cli();

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>8, 0);

/*begin*/

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff/ 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff/ 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00/ 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xff / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xc6 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xc6 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0xc6 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x00 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

io_out8(0x<chmetcnv w:st="on" unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0">03c</chmetcnv>9, 0x84 / 4);

/*end*/

io_store_eflags(eflags);

return;

}

void boxfill8(unsigned char *vram, int xsize, unsigned char c, int x0, int y0, int x1, int y1)

{

int x, y;

for (y = y0; y <= y1; y++) {

</f
分享到:
评论

相关推荐

    getOSfont:系统用户界面字体的名称和大小(默认系统字体)-matlab开发

    使用 MATLAB 开发的图形用户界面通常缺乏原生应用程序的外观和感觉,部分原因是它们不使用运行它们的操作系统的用户界面字体。 getOSfont通过返回各种平台和操作系统版本(包括 R2014b 及以上版本正式支持的所有平台...

    界面开发(c++ 、.net)

    7.SKINSE界面库支持SDI、MDI等界面框架,支持20余种界面控件,完整兼容window 2000、window2003、window XP、vista、window7当前的主流操作系统。并且支持window平台的VC、.NET、VB6、Delphi、C++ Builder、Power...

    Freetype 字体引擎分析与指南

    这个要求引入了一些非常激烈的选择,这些是FreeType2的低级系统界面的一部分。 * 可扩展性。新特性应该可以在极少改动库基础代码的前提下添加。这个要求引入了非常简单的设计:几乎所有操作都是以模块的形式提供的。...

    基于C++ Qt实现的一款用于开发人员查看预览各种ttf字体/图标图像格式的小工具源码,界面简单清晰,操作便携

    功能描述 主界面选择参数。 ... 图像显示界面中使用 滚轮放大缩小图像, 使用左键可拖动图像, ...3、输入通配符*,此时ttfviewer会搜索目标ttf文件中的所有图像显示(可能消耗较多系统内存),点击左右切换浏览

    基于Android系统的线上会议app设计与开发

    1. 平台普及度高:Android系统是目前全球市场份额最大的移动操作系统,拥有庞大的用户基础和开发者群体,可以覆盖更广泛的用户,并且能够适配各种品牌和型号的Android设备。 2. 灵活的开发环境:Android提供了丰富...

    Python开发从小白到高手536讲系统教学

    00404-不同领域的主流操作系统-01-桌面操作系统.mp4 00505-不同领域的主流操作系统-02-服务器操作系统.mp4 00606-不同领域的主流操作系统-03-嵌入式操作系统.mp4 00707-虚拟机简介.mp4 00808-操作系统发展简史.mp4 ...

    基于Android开发的铁路售票系统.zip

    1. 开放源代码:Android 是基于 Linux 内核的开源操作系统,开发人员可以自由获取、使用和修改源代码。 2. 多样化的硬件设备支持:Android 支持多种硬件设备和屏幕尺寸,可以运行于手机、平板电脑、电视、手表等多种...

    python开发从小白到高手536集系统教学

    00404-不同领域的主流操作系统-01-桌面操作系统.mp4 00505-不同领域的主流操作系统-02-服务器操作系统.mp4 00606-不同领域的主流操作系统-03-嵌入式操作系统.mp4 00707-虚拟机简介.mp4 00808-操作系统发展简史.mp4 ...

    晟轩科技Android系统开发基础框架.zip

    1. 开放源代码:Android 是基于 Linux 内核的开源操作系统,开发人员可以自由获取、使用和修改源代码。 2. 多样化的硬件设备支持:Android 支持多种硬件设备和屏幕尺寸,可以运行于手机、平板电脑、电视、手表等多种...

    VC之美化界面篇本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者。读者最好具有以下VC基础:

    而且,更要命的是,操作系统,包括别的应用程序并不认识你的界面元素,这才是真正悲哀的。认识这些界面的只有你的程序,图2中的按钮永远只是一个无用的框子。 有了Windows,一切都好办了,Windows将诸如按钮、菜单...

    毕设源码-VB个人邮件处理系统(源代码+系统).rar

    VB个人邮件处理系统是一个基于Visual Basic 6.0开发的强大工具,旨在帮助用户高效地管理和处理电子邮件。此系统集成了邮件接收、发送、分类、过滤和搜索等功能,使用户能够在一个界面中轻松处理所有邮件相关任务。 ...

    《Android 9.0 系统开发源码钻研录》.zip

    1. 开放源代码:Android 是基于 Linux 内核的开源操作系统,开发人员可以自由获取、使用和修改源代码。 2. 多样化的硬件设备支持:Android 支持多种硬件设备和屏幕尺寸,可以运行于手机、平板电脑、电视、手表等多种...

    点餐系统 太原科技大学 Android应用开发 实验.zip

    1. 开放源代码:Android 是基于 Linux 内核的开源操作系统,开发人员可以自由获取、使用和修改源代码。 2. 多样化的硬件设备支持:Android 支持多种硬件设备和屏幕尺寸,可以运行于手机、平板电脑、电视、手表等多种...

    SKINSE界面库For VC 2.0

    什么是SKINSE ...7.SKINSE支持SDI、MDI等界面框架,支持20余种界面控件,完整兼容window 2000、window2003、window XP、vista、window7当前的主流操作系统。并且支持window平台的多种计算机语言开发。

    界面设计方案(1).doc

    另外,用户使用的计算机机器配置也是千差万别,包括显卡 、声卡、内存、网速、操作系统以及浏览器等都会有不同。设计者如果忽视了这些差别 ,设计出的网页在不同的机器上显示就会造成混乱。 2.KISS(Keep It Simple...

    Android开发项目---人力资源管理系统.zip

    1. 开放源代码:Android 是基于 Linux 内核的开源操作系统,开发人员可以自由获取、使用和修改源代码。 2. 多样化的硬件设备支持:Android 支持多种硬件设备和屏幕尺寸,可以运行于手机、平板电脑、电视、手表等多种...

    Visual C++2010开发权威指南(共三部分).part1.rar

    第一部分 Visual C++ 2010开发与新特性 第1章 Visual C++ 2010开发环境简介 1 1.1 Visual C++ 2010简介 1 1.2 Visual C++ 2010下载安装指南 1 1.3 Visual C++ 2010主要特点与新特性 3 1.4 Visual C++ 2010开发环境...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    1. 服务器端操作系统:独立于操作系统的跨平台系统,客户端MicroSoft Windows 2000及以上; 2. 数据库:MySQL 5.0.27版本; 3. Web服务器:Tomcat 5.5及以上版本,配合MVC设计模式及 Hibernate开发架构; 4. ...

    安卓点餐系统(Android前端开发,采用MVP设计模式).zip

    1. 开放源代码:Android 是基于 Linux 内核的开源操作系统,开发人员可以自由获取、使用和修改源代码。 2. 多样化的硬件设备支持:Android 支持多种硬件设备和屏幕尺寸,可以运行于手机、平板电脑、电视、手表等多种...

Global site tag (gtag.js) - Google Analytics