当前位置:首页 > 经验 >

怎么把表格存在桌面上(把表格放到桌面的方法)

来源:原点资讯(www.yd166.com)时间:2022-10-29 08:26:14作者:YD166手机阅读>>

第四天,用C语言编写了操作系统代码中,对显示器的控制。先显示了一个黑白的条纹,又显示了一个彩色的条纹,最后,显示了一个彩色窗口。

第四天的教程:https://www.toutiao.com/a7065574857265758757

那么今天,第5天,内容是操作系统显示文字和开始控制鼠标,我们要在彩色窗口上显示点内容:文字和鼠标。显示文字其实挺简单的,显示鼠标其实也挺简单的,但是控制鼠标就稍微有点复杂。

我们本次教程就先把文字的显示和鼠标的显示讲解一下,鼠标的控制部分需要在第六,七,八天逐步讲解。

虽然鼠标的控制部分有点麻烦,但是一旦完成鼠标的控制,再去控制键盘等其他外设,就简单很多了,因为思路大体相同,代码基本可以复用。

本教程的pipeline:

  1. 显示一个字符
  2. 显示一个字符串
  3. 显示鼠标
  4. 鼠标中断函数使用前需要设定GDT和IDT
显示一个字符

如何显示一个字符?

先回忆一下,如何显示一个长方形,如下代码:

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; }

如上代码第6行,把c幅值给varm[y*xsize x],

然后在4,5行循环给x,y以不同的值,就可完成长方形的绘制。

其中,varm是显示器缓冲区的首地址:0x000a0000.

显示长方形就是给长方形内的每个位置的像素给定同样的颜色 c就可以了。

那么绘制一个字符呢?

怎么把表格存在桌面上,把表格放到桌面的方法(1)

图1

如果我要显示上图中的字符A,我该如何操作?

其实相当于把A放在了一个白色的长方形中,然后在白色的长方形中,再绘制出黑色的字符A的轮廓来。比如把字符A绘制到一个宽8高16的长方形中,如下图:

怎么把表格存在桌面上,把表格放到桌面的方法(2)

图2

也就是说,绘制字符的程序是可以改动绘制长方形的程序而得到的。

如何改动?

长方形的内部都是一种颜色c.

而字符内部需要两种颜色,或者我们就只绘制需要显示字符的像素,其他位置就不绘制了。

所以,绘制字符时,我们要区分出哪些像素需要绘制黑色,哪些像素不需要绘制。

最终绘制字符的程序我们写了一个函数putfont8:

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; }

函数的输入为:vram: 显示屏数据缓冲区首地址

xsize: 显示屏的宽度

int x ,int y: 往 坐标(x,y)处显示文字

char c:文字的颜色,这个颜色可以是黑色,也可以是其他任意颜色。我这里用黑色举例子。

char * font: 能够表明哪些像素需要显示黑色的数组。

这个函数的第5行是一个for 循环,表示需要显示16行的像素。

然后从第8行至第15行,一共设定了8个像素的值。注意到p[0]就是第一个像素,p[7]就是第8个像素。因为第6行p=vram (y i)*xsize x ,p就是第8行像素的首地址。

为什么在设置每个像素的值时,还要用一个if?

因为要检查当前像素是否需要绘制黑色,如果d&0x80不为零,说明最左边需要绘制黑色,所以p[0]=c.

这里用d,一个从font中取得的char型数据,来表示一行8个像素的信息。

一个字符16行,所以font存了16个char型的数据,如下:

怎么把表格存在桌面上,把表格放到桌面的方法(3)

图3

这里的0x00, 对应于图2中的A字符的第一行:0000 0000

这里的0x18, 对应于图2中的A字符的第二行:0001 1000

。。。

这里的0xe7, 对应于图2中的A字符的第十四行:1110 0111

这就是绘制一个字符了。

我们发现,绘制一个字符其实跟绘制一个长方形差不多,都是想办法设置像素的值就行了。

怎么把表格存在桌面上,把表格放到桌面的方法(4)

首页 12下一页

栏目热文

如何将文件中的表格放在桌面上(怎么才能把表格放在桌面上)

如何将文件中的表格放在桌面上(怎么才能把表格放在桌面上)

作为一名教师或者计算机使用人员,每日都离不开计算机操作,我们用计算机编写教学设计,制作课件,进行视频音频的处理,用于辅助...

2022-10-29 08:15:52查看全文 >>

桌面上的表格怎么放在文件中(表格怎么放到桌面上)

桌面上的表格怎么放在文件中(表格怎么放到桌面上)

众所周知,Microsoft office中的excel软件是一款非常强大且方便的办公软件,可以轻松完成数据的筛选、排序...

2022-10-29 08:02:50查看全文 >>

如何将表格文件移到桌面上(怎么把文档内的表格移到桌面上)

如何将表格文件移到桌面上(怎么把文档内的表格移到桌面上)

最近收到了小伙伴的咨询,问题是为了方便查看表格,需要将Excel表格转换成图片格式。遇到这种问题,很多小伙伴可能会选择截...

2022-10-29 08:20:45查看全文 >>

如何把表格全部放在桌面上(怎么把表格同时放在桌面上)

如何把表格全部放在桌面上(怎么把表格同时放在桌面上)

原创作者: 卢子 转自: EXCEL不加班认真看完全文,所有版本都会提到。读者在用PQ合并多表的时候,出现数据重复,怎么...

2022-10-29 07:51:49查看全文 >>

怎么把桌面的文件放到工作表格里(怎么把桌面上的表格放到文件夹里)

怎么把桌面的文件放到工作表格里(怎么把桌面上的表格放到文件夹里)

有时候我们需要将网页里的数据导入到Excel表格里,具体该如何操作呢?步骤一:首先我们要先找到网页,然后把网页内需要导入...

2022-10-29 08:01:14查看全文 >>

表格怎么重新弄到桌面(怎么把做好的表格移到桌面上去)

表格怎么重新弄到桌面(怎么把做好的表格移到桌面上去)

大家有没有遇到过电脑桌面本来好好的,不知道怎么了遇到bug死机,突然的蓝屏黑屏出现,为了重启很多小伙伴会选择强制关机,但...

2022-10-29 07:58:32查看全文 >>

怎样建表格文件到桌面(表格文件如何添加到桌面)

怎样建表格文件到桌面(表格文件如何添加到桌面)

1.新建一个Excel文件。2.在草纸上画好草稿,将需要数据的表格样式及列数和行数确定。比如我需要建立一个五行六列的表格...

2022-10-29 08:12:11查看全文 >>

生产损耗合理化建议怎么写(车间生产合理化建议金点子100条)

生产损耗合理化建议怎么写(车间生产合理化建议金点子100条)

北大荒集团黑龙江建设农场有限公司的一家粮食加工企业,职工正在往烘干塔运送玉米。许颖献摄(中经视觉)中办、国办日前印发的《...

2022-10-29 08:10:31查看全文 >>

日常损耗申请维修报告(日常维修记录表表格)

日常损耗申请维修报告(日常维修记录表表格)

5月25日,中国农业科学院和国际食物政策研究所(IFPRI)在京通过现场会议和直播平台联合发布《中国农业产业发展报告20...

2022-10-29 08:39:07查看全文 >>

设备年限不够如何写报损申请(报损单填写模板)

设备年限不够如何写报损申请(报损单填写模板)

管理制度及规范第381篇生产设备管理制度(一)新增设备管理规定第一条 本公司各部门需增置的设备经批准购买后,须报设备管理...

2022-10-29 08:31:40查看全文 >>

文档排行