www.pudn.com > Microwindows与相关开发代码实例.rar > chenTestChinese.c
//为了检测expose event代码,要运行带有NanoWM窗口管理器的Nano-X,这样就可以移动窗口了。命令如下: //bin/nano-X & sleep 1; bin/nanowm & sleep 1; chenTestChinese //用GrSelectEvents函数发送 GR_EVENT_TYPE_EXPOSURE事件到客户(client)程序中。 //为了保持client/ server之间的通信,server只向每个client窗口发送选择过的事件。 //程序中只有一句处理“Hello World”显示文本,该句在expose event例程中。 //GrMapWindow调用后立即产生一个expose event,这样即使窗口实际上并没有真正移动文字还是会被显示出来。 #define MWINCLUDECOLORS #include#include #include "nano-X.h" int main(int ac,char **av) { GR_WINDOW_ID w; GR_GC_ID gc; GR_EVENT event; GR_FONT_ID fontid; if (GrOpen() < 0) { printf("Can’t open graphics\n"); exit(1); } w = GrNewWindow(GR_ROOT_WINDOW_ID, 20, 20, 100, 60,4, WHITE, BLUE); gc = GrNewGC(); GrSetGCForeground(gc, BLACK); GrSetGCUseBackground(gc, GR_FALSE); //fontid = GrCreateFont ("hzk", 12, NULL); //printf("\tCHENDEBUG:Fontid=%d name=hzk 12\n",fontid); fontid = GrCreateFont ("gb16x16song", 16, NULL); printf("\tCHENDEBUG:Fontid=%d name=gb16x16song 16\n",fontid); GrSetGCFont(gc, fontid); GrText(w, gc,10,10, "Hello 陈旭东 !", -1, GR_TFASCII); GrSelectEvents(w, GR_EVENT_MASK_EXPOSURE); GrMapWindow(w); for (;;) { GrGetNextEvent(&event); switch (event.type) { case GR_EVENT_TYPE_EXPOSURE: fontid = GrCreateFont ("HZKFONT", 20, NULL); //GrSetFontSize(fontid,24); GrSetFontAttr(fontid, GR_TFKERNING | GR_TFANTIALIAS, 0); GrSetGCFont(gc, fontid); GrText(w, gc, 10, 50, "Hello 陈旭东字体测试 !", -1, GR_TFASCII); break; } } GrDestroyFont(fontid); GrClose(); return 0; }