- 浏览: 1287791 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
yaolixing01:
他山界面开发框架 v22是一套基于Gecko v22 的开源收 ...
Mozilla FireFox Gecko内核源代码解析(3.nsScanner) -
夏雪纷纷:
感谢博主的分享,好东西啊,哈哈哈,收走了一些,谢谢啊哦,对了, ...
DevExpress DXperience Universal 11.1.6 下载+源码+编译+汉化流程+升级+替换强名 -
夏雪纷纷:
最近有个对于DXperience 2013新功能发布、重难点技 ...
TextEdit非空验证设置 DXperience学习笔记 -
bosschen:
我自己把问价加密,密码为为123456,是rar文件。然后用各 ...
30秒破解所有密码 -
sword319:
现在才发现为什么自己这么苦逼了...哗哗的全是泪啊.. ...
为什么我们程序员晋升要这么难!
1.界面
上文中我将一些信息保存到0x0ff0地址,这些信息有8bit的screen 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;
}
3.bootpack.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
发表评论
相关推荐
使用 MATLAB 开发的图形用户界面通常缺乏原生应用程序的外观和感觉,部分原因是它们不使用运行它们的操作系统的用户界面字体。 getOSfont通过返回各种平台和操作系统版本(包括 R2014b 及以上版本正式支持的所有平台...
7.SKINSE界面库支持SDI、MDI等界面框架,支持20余种界面控件,完整兼容window 2000、window2003、window XP、vista、window7当前的主流操作系统。并且支持window平台的VC、.NET、VB6、Delphi、C++ Builder、Power...
这个要求引入了一些非常激烈的选择,这些是FreeType2的低级系统界面的一部分。 * 可扩展性。新特性应该可以在极少改动库基础代码的前提下添加。这个要求引入了非常简单的设计:几乎所有操作都是以模块的形式提供的。...
功能描述 主界面选择参数。 ... 图像显示界面中使用 滚轮放大缩小图像, 使用左键可拖动图像, ...3、输入通配符*,此时ttfviewer会搜索目标ttf文件中的所有图像显示(可能消耗较多系统内存),点击左右切换浏览
1. 平台普及度高:Android系统是目前全球市场份额最大的移动操作系统,拥有庞大的用户基础和开发者群体,可以覆盖更广泛的用户,并且能够适配各种品牌和型号的Android设备。 2. 灵活的开发环境:Android提供了丰富...
00404-不同领域的主流操作系统-01-桌面操作系统.mp4 00505-不同领域的主流操作系统-02-服务器操作系统.mp4 00606-不同领域的主流操作系统-03-嵌入式操作系统.mp4 00707-虚拟机简介.mp4 00808-操作系统发展简史.mp4 ...
1. 开放源代码:Android 是基于 Linux 内核的开源操作系统,开发人员可以自由获取、使用和修改源代码。 2. 多样化的硬件设备支持:Android 支持多种硬件设备和屏幕尺寸,可以运行于手机、平板电脑、电视、手表等多种...
00404-不同领域的主流操作系统-01-桌面操作系统.mp4 00505-不同领域的主流操作系统-02-服务器操作系统.mp4 00606-不同领域的主流操作系统-03-嵌入式操作系统.mp4 00707-虚拟机简介.mp4 00808-操作系统发展简史.mp4 ...
1. 开放源代码:Android 是基于 Linux 内核的开源操作系统,开发人员可以自由获取、使用和修改源代码。 2. 多样化的硬件设备支持:Android 支持多种硬件设备和屏幕尺寸,可以运行于手机、平板电脑、电视、手表等多种...
而且,更要命的是,操作系统,包括别的应用程序并不认识你的界面元素,这才是真正悲哀的。认识这些界面的只有你的程序,图2中的按钮永远只是一个无用的框子。 有了Windows,一切都好办了,Windows将诸如按钮、菜单...
VB个人邮件处理系统是一个基于Visual Basic 6.0开发的强大工具,旨在帮助用户高效地管理和处理电子邮件。此系统集成了邮件接收、发送、分类、过滤和搜索等功能,使用户能够在一个界面中轻松处理所有邮件相关任务。 ...
1. 开放源代码:Android 是基于 Linux 内核的开源操作系统,开发人员可以自由获取、使用和修改源代码。 2. 多样化的硬件设备支持:Android 支持多种硬件设备和屏幕尺寸,可以运行于手机、平板电脑、电视、手表等多种...
1. 开放源代码:Android 是基于 Linux 内核的开源操作系统,开发人员可以自由获取、使用和修改源代码。 2. 多样化的硬件设备支持:Android 支持多种硬件设备和屏幕尺寸,可以运行于手机、平板电脑、电视、手表等多种...
什么是SKINSE ...7.SKINSE支持SDI、MDI等界面框架,支持20余种界面控件,完整兼容window 2000、window2003、window XP、vista、window7当前的主流操作系统。并且支持window平台的多种计算机语言开发。
另外,用户使用的计算机机器配置也是千差万别,包括显卡 、声卡、内存、网速、操作系统以及浏览器等都会有不同。设计者如果忽视了这些差别 ,设计出的网页在不同的机器上显示就会造成混乱。 2.KISS(Keep It Simple...
1. 开放源代码:Android 是基于 Linux 内核的开源操作系统,开发人员可以自由获取、使用和修改源代码。 2. 多样化的硬件设备支持:Android 支持多种硬件设备和屏幕尺寸,可以运行于手机、平板电脑、电视、手表等多种...
第一部分 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开发环境...
1. 服务器端操作系统:独立于操作系统的跨平台系统,客户端MicroSoft Windows 2000及以上; 2. 数据库:MySQL 5.0.27版本; 3. Web服务器:Tomcat 5.5及以上版本,配合MVC设计模式及 Hibernate开发架构; 4. ...
1. 开放源代码:Android 是基于 Linux 内核的开源操作系统,开发人员可以自由获取、使用和修改源代码。 2. 多样化的硬件设备支持:Android 支持多种硬件设备和屏幕尺寸,可以运行于手机、平板电脑、电视、手表等多种...