中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-01 15:32
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 如何显示大字体 查看 1,116 回复 6
楼 主 如何显示大字体 发表于 2006-02-17 16:00 ·  中国 广东 佛山 三水区 电信
初级用户
积分 28
发帖 10
注册 2006-02-13 11:10
20年会员
UID 50286
状态 离线
各位大虾:
小弟刚学DJGPP+ALLEGRO遇到在图形模式下想显示一些大的日期与时间的问题。请帮忙解答一吓
#include "conio.h"
#include "stdio.h"
#include "dos.h"
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#include "allegro.h"

BITMAP *b1,*b2,*BCK;
PALLETE M32;

main()
{
char tmp[128];
struct tm *ptr;
time_t lt;
allegro_init();
set_color_depth(16);/ t CRT color to 16
set_gfx_mode(GFX_AUTODETECT,640,480,0,0);
b1=load_bitmap("tb1.bmp",M32);
masked_blit(b1,screen,0,0,0,0,640,480);
lt=time(NULL);
ptr=gmtime(&lt);
ptr=localtime(&lt);
strftime(tmp,128,"%A\n",ptr);
text_mode(-1);
textout_centre(screen,font,tmp,345,280,-1);//在这里如何可以把字体调大一点
strftime(tmp,128,"%b-%d-%Y\n",ptr);
textout(screen,font,tmp,300,290,-1);//在这里如何可以把字体调大一点

getch();
return 0;
}
2 发表于 2006-02-18 11:23 ·  中国 广东 佛山 禅城区 电信
初级用户
积分 28
发帖 10
注册 2006-02-13 11:10
20年会员
UID 50286
状态 离线
不是吧!!
也有没有理理我。。。。
请各位给点帮助好吗?
3 发表于 2006-02-19 01:32 ·  中国 台湾 中华电信
初级用户
积分 124
发帖 10
注册 2004-10-09 00:00
21年会员
UID 32295
性别 男
状态 离线
#include <allegro.h>



int main(void)
{
FONT *f1, *f2, *f3, *f4, *f5;
FONT *tempfont;
char tmp[128];
struct tm *ptr;
BITMAP *b1,*b2,*BCK;

time_t lt;


allegro_init();
install_keyboard();
set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0);
set_palette(desktop_palette);
clear_to_color(screen, makecol(255, 255, 255));

f1 = load_font("unifont.dat", NULL, NULL);
f2 = extract_font_range(f1, ' ', 'A'-1);
f3 = extract_font_range(f1, 'A', 'Z');
f4 = extract_font_range(f1, 'Z'+1, 'z');
tempfont = merge_fonts(f4, f5 = merge_fonts(f2, f3));

destroy_font(f1);
destroy_font(f2);
destroy_font(f3);
destroy_font(f4);
destroy_font(f5);

acquire_screen();

b1=load_bitmap("tb1.bmp",NULL);
lt=time(NULL);
ptr=gmtime(&lt);
ptr=localtime(&lt);
strftime(tmp,128,"%A",ptr);
textout_centre_ex(screen, font,tmp, SCREEN_W/2, SCREEN_H/2-50,makecol(0,0,0), -1);
strftime(tmp,128,"%b-%d-%Y",ptr);
textout_centre_ex(screen, tempfont,tmp, SCREEN_W/2, SCREEN_H/2 ,makecol(0,0,0), -1);

release_screen();
readkey();

return 0;
}

本來有附上編譯好的可執行檔,可是一直上傳不了。
你如果要的話,我在發mail到你的mail裡。
4 谢谢 发表于 2006-02-20 09:20 ·  中国 广东 佛山 禅城区 电信
初级用户
积分 28
发帖 10
注册 2006-02-13 11:10
20年会员
UID 50286
状态 离线
谢谢dos_jacky的指点,但是在我的电脑上面编译通不过,不知道是不是我所用的DJGPP+ALLEGRO版本与你的版本不同,你能把你所用的版本信息告诉我吗?或者能把这个例子发一个EMAILL给我吗?我的邮箱是fs_blm@126.com 在此先谢谢你。
5 发表于 2006-02-20 13:50 ·  中国 台湾 中华电信(HiNet)数据中心
初级用户
积分 124
发帖 10
注册 2004-10-09 00:00
21年会员
UID 32295
性别 男
状态 离线
我使用的
allegro版本為:Version 4.2.0 (beta3)
djgpp版本為:2.02版
gcc版本為:3.21版

程式正在發到你的mail中,請查收。
檔案內容(test.rar):
test.c
test.exe
unfont.dat

*******你的mail有問題!!!!請查明!!!************
This is an automatically generated Delivery Status Notification.
Delivery to the following recipients failed.
fs_blm@126.com

[ Last edited by dos_jacky on 2006-2-20 at 14:02 ]
6 谢谢,对不起 发表于 2006-02-21 08:13 ·  中国 广东 佛山 禅城区 电信
初级用户
积分 28
发帖 10
注册 2006-02-13 11:10
20年会员
UID 50286
状态 离线
对不起,我上面的邮箱地址写错了,写多了一个下划线。应该是fsblm@126.com你可以重发一次给我吗?在此先谢谢,还有我现在使用的ALLEGRO为3。1版,里面好像没有LOAD_FONT()这个函数,你能把你用开的ALLEGRO库发一份过来给我吗?在此再次感谢你的帮助。
7 发表于 2006-02-21 18:39 ·  中国 台湾 中华电信(HiNet)数据中心
初级用户
积分 124
发帖 10
注册 2004-10-09 00:00
21年会员
UID 32295
性别 男
状态 离线
已經發出,請查明。
论坛跳转: