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