中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 如何显示大字体 上一主题 | 下一主题
fsblm
初级用户





积分 28
发帖 10
注册 2006-2-13
状态 离线
『楼 主』:  如何显示大字体

各位大虾:
小弟刚学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;
}

2006-2-17 16:00
查看资料  发送邮件  发短消息 网志  OICQ (369165123)  编辑帖子  回复  引用回复
fsblm
初级用户





积分 28
发帖 10
注册 2006-2-13
状态 离线
『第 2 楼』:  

不是吧!!
也有没有理理我。。。。
请各位给点帮助好吗?

2006-2-18 11:23
查看资料  发送邮件  发短消息 网志  OICQ (369165123)  编辑帖子  回复  引用回复
dos_jacky
初级用户




积分 124
发帖 10
注册 2004-10-9
状态 离线
『第 3 楼』:  

#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裡。

2006-2-19 01:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fsblm
初级用户





积分 28
发帖 10
注册 2006-2-13
状态 离线
『第 4 楼』:  谢谢

谢谢dos_jacky的指点,但是在我的电脑上面编译通不过,不知道是不是我所用的DJGPP+ALLEGRO版本与你的版本不同,你能把你所用的版本信息告诉我吗?或者能把这个例子发一个EMAILL给我吗?我的邮箱是fs_blm@126.com  在此先谢谢你。

2006-2-20 09:20
查看资料  发送邮件  发短消息 网志  OICQ (369165123)  编辑帖子  回复  引用回复
dos_jacky
初级用户




积分 124
发帖 10
注册 2004-10-9
状态 离线
『第 5 楼』:  

我使用的
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 ]

2006-2-20 13:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fsblm
初级用户





积分 28
发帖 10
注册 2006-2-13
状态 离线
『第 6 楼』:  谢谢,对不起

对不起,我上面的邮箱地址写错了,写多了一个下划线。应该是fsblm@126.com你可以重发一次给我吗?在此先谢谢,还有我现在使用的ALLEGRO为3。1版,里面好像没有LOAD_FONT()这个函数,你能把你用开的ALLEGRO库发一份过来给我吗?在此再次感谢你的帮助。

2006-2-21 08:13
查看资料  发送邮件  发短消息 网志  OICQ (369165123)  编辑帖子  回复  引用回复
dos_jacky
初级用户




积分 124
发帖 10
注册 2004-10-9
状态 离线
『第 7 楼』:  

已經發出,請查明。

2006-2-21 18:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: