使用C中內建的驅動去改變字型和顏色

來源:互聯網
上載者:User

一.c語言中字型的問題

c語言中有兩種顯示方式,即文本方式和圖形方式。就我所知,只能在圖形方式下控制字型.

先看一下c中定義的幾種字型

名稱 索引值 字型說明

default_font 0 8x8 bit-mapped font

triplex_font 1 stroked triplex font

small_font 2 stroked small font

sans_serif_font 3 stroked sans-serif font

gothic_font 4 stroked gothic font

(字型說明中的英文解釋無須明白,在例子的示範中去看)

請看例子(摘自tc3.0的線上說明檔案)

例一.

#include
#include
#include
#include
/* the names of the text styles supported */
char *fname[] = { "default font",
"triplex font",
"small font",
"sans serif font",
"gothic font"
};
int main(void)
{
/* request auto detection */
int gdriver = detect, gmode, errorcode;
int style, midx, midy;
int size = 1;
/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, "");
/* read result of initialization */
errorcode = graphresult();
if (errorcode != grok) /* an error occurred */
{
printf("graphics error: %s ", grapherrormsg(errorcode));
printf("press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}
midx = getmaxx() / 2;
midy = getmaxy() / 2;
settextjustify(center_text, center_text);
/* loop through the available text styles */
for (style=default_font; style<=gothic_font; style++)
{
cleardevice();
if (style == triplex_font)
size = 4;
/* select the text style */
settextstyle(style, horiz_dir, size);
/* output a message */
outtextxy(midx, midy, fname[style]);
getch();
}
/* clean up */
closegraph();
return 0;
}

原始碼講解:

上面的例子中,控制字型用settextstyle函數,style參數是選擇字型的,關於其它的參數說明可參考線上說明。outtextxy函數用來輸出文本。

如果老兄是想顯示各種不同字型的漢字話,那得麻煩點。這裡不想多說,只提供兩種方案

(1) 利用ucdos的漢字特顯技術,用c中的printf函數帶上特殊參數即可,具體可參考有關資料(比如《電腦愛好者》中曾講過)

(2) 在圖形模式下,調用字型檔,用c函數putpixel輸出。推薦參考書

[1]《c語言最新編程技巧200例》(修訂本)魯沐浴主編 電子工業出版社 1997

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。