第5讲文本与字体内容摘要:
} 17 【 例 52】 本程序通过在窗口中分五行分别显示五行文本,以说明在窗口的用户区中输出文本的方法。 18 本例题的源代码如下: include include include include LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM)。 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow) { HWND hwnd。 MSG Msg。 WNDCLASS wndclass。 char lpszClassName[] = 文本输出。 char lpszTitle[]= EXAMPLE FOR THE TEXT OUTPUT。 = 0。 …………。 = lpszClassName。 19 if( !RegisterClass( amp。 wndclass)) { MessageBeep(0)。 return FALSE。 } hwnd = CreateWindow ( lpszClassName, lpszTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL)。 ShowWindow( hwnd, nCmdShow)。 UpdateWindow(hwnd)。 while( GetMessage(amp。 Msg,NULL,0,0)) { TranslateMessage(amp。 Msg)。 DispatchMessage(amp。 Msg)。 } return。 } 20 LRESULT CALLBACK WndProc(HWND hwnd,UINT message, WPARAM wParam,LPARAM lParam) { HDC hdc。 HFONT hF_black,hF_big。 //定义两种字体句柄 PAINTSTRUCT ps。 TEXTMETRIC tm。 //定义一个 TEXTMETRIC结构,用以记录字体信息 char lpsz_1[]=这是一行红色的、字体为 SYSTEM_FONT的文字,红色代表未来。 char lpsz_2[]=现在显示的是自定义字体,颜色为绿色,绿色代表生机勃勃。 char lpsz_3[]=现在展现在您面前的是蓝色的粗体字,蓝色代表广阔的海洋和天空。 char lpsz_4[]=当前字体为大号、斜体并带有下划线的文字。 char lpsz_5[]=现在您掌握了字体的操作了吗 ?。 char lpsz_6[]=祝您成功 !。 int X=0,Y=0。 SIZE size。 //定义一个 SIZE类型的结构 21 switch(message){ case WM_PAINT: hdc=BeginPaint(hwnd,amp。 ps)。 SetTextColor(hdc,RGB(255,0,0))。 //设置文本颜色为红色 GetTextMetrics(hdc,amp。 tm)。 //获取缺省字体,写入 tm结构中 TextOut(hdc,X,Y,lpsz_1,strlen(lpsz_1))。 //用当前字体输出文本 Y=Y++100*。 //计算换行时下一行文本的输出坐标 hF_black=CreateFont( //创建自定义字体 20, //字体的高度 0, //由系统根据高宽比选取字体最佳宽度值 0, //文本的倾斜度为 0,表示水平 0, //字体的倾斜度为 0 FW_HEAVY, //字体的粗度, FW_HEAVY为最粗 0, //非斜体字 0, //无下划线 0, //无删除线 ANSI_CHARSET, //表示所用的字符集为 ANSI_CHARSET OUT_DEFAULT_PRECIS, //输出精度为缺省精度 CLIP_DEFAULT_PRECIS, //剪裁精度为缺省精度 DEFAULT_QUALITY, //输出质量为缺省值 DEFAULT_PITCH|FF_DONTCARE,//字间距和字体系列使用缺省值 粗体字 )。 //字体名称 22 SetTextColor(hdc,RGB(0,255,0))。 //设置文本颜色为绿色 SelectObject(hdc,hF_black)。 //将自定义字体选入设备环境 GetTextMetrics(hdc,amp。 tm)。 //获取字体的信息,写入 tm结构中 TextOut(hdc,X,Y,lpsz_2,strlen(lpsz_2))。 //用当前字体输出文本 //换行继续输出文本,计算新行的起始 Y坐标位置 Y=Y++10*。 GetTextExtentPoint32(hdc,lpsz_2,strlen(lpsz_2),amp。 size)。 //获取字符串 /的宽度 SetTextColor(hdc,RGB(0,0,255))。 //设置文本颜色为蓝色 TextOut(hdc,X,Y,lpsz_3,strlen(lpsz_3))。 //当前字体输出文本 Y=Y++20*。 23 hF_big=CreateFont //引入新字体 ( 30, //字体高度 0, 0, 0, FW_NORMAL, 1, //定义斜体 1, //定义输出时带下划线 0, ANSI_CHARSET, //所使用的字符集 OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH|FF_DONTCARE, 大号字 )。 24 SelectObject(hdc,hF_big)。 //将自定义字体选入设备环境 SetTextColor(hdc,RGB(155,155,155))。 //设置文本颜色 Y=Y++20*。 TextOut(hdc,X,Y,lpsz_4,strlen(lpsz_4))。 //输出文本 SetTextColor(hdc,RGB(255,0,0))。 //设置文本颜色为红色 Y=Y++30*。 T。第5讲文本与字体
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。