win32 字体变换与窗口同大同小

[cpp] view plaincopy

 

  1. #include <windows.h>  
  2. #include "res/resource.h"  
  3.   
  4.   
  5. LRESULT CALLBACK WinProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);  
  6. BOOL InitApp(HINSTANCE hInstance, LPCSTR szClassName);  
  7. BOOL InitInstance(HINSTANCE hInstance, LPCSTR szClassName, int nCmdShow);  
  8.   
  9.   
  10. int WINAPI WinMain(   
  11.      IN HINSTANCE hInstance,  
  12.      IN HINSTANCE hPrevInstance,   
  13.      IN LPSTR lpCmdLine,   
  14.      IN int nShowCmd  
  15.      )  
  16. {  
  17.     MSG msg;  
  18.     char szClassName[] = "FontFace";  //窗口名  
  19.     //注册窗口类  
  20.     if(!InitApp(hInstance, szClassName))  
  21.         return 0;  
  22.     //初始化窗口  
  23.     if( !InitInstance(hInstance, szClassName, nShowCmd) )  
  24.         return 0;  
  25.   
  26.   
  27.     while(GetMessage(&msg, NULL, NULL, NULL))  
  28.     {  
  29.         TranslateMessage(&msg);  //消息解释  
  30.         DispatchMessage(&msg);   //消息传送  
  31.     }  
  32.     return (int)msg.wParam;  
  33. }  
  34.   
  35.   
  36. LRESULT CALLBACK WinProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )  
  37. {  
  38.     PAINTSTRUCT ps;  
  39.     HDC hdc;  
  40.     HFONT hFont, hOldFont;  
  41.     RECT rect;  
  42.     char *str = "徐国先";  
  43.     int width;  
  44.     int height;  
  45.     switch( uMsg )  
  46.     {  
  47.     case WM_PAINT:  
  48.         hdc = BeginPaint(hwnd, &ps);  
  49.         GetClientRect(hwnd, &rect);  
  50.         width = (rect.right-20)/(int)strlen(str);  
  51.         height = rect.bottom-20;  
  52.         hFont = CreateFont(  
  53.             height,      //字体的逻辑高度  
  54.             width,       //逻辑平均字符宽度  
  55.             0,           //与水平线的角度  
  56.             0,           //基线方位角度  
  57.             FW_REGULAR,  //字形:常规  
  58.             FALSE,       //字形:斜体  
  59.             FALSE,       //字形:下划线  
  60.             FALSE,       //字形:粗体  
  61.             GB2312_CHARSET,          //字符集  
  62.             OUT_DEFAULT_PRECIS,      //输出精度  
  63.             CLIP_DEFAULT_PRECIS,     //剪截精度  
  64.             PROOF_QUALITY,           //输出品质  
  65.             FIXED_PITCH | FF_MODERN, //倾斜度  
  66.             "隶书"                   //字体  
  67.             );   
  68.         hOldFont = (HFONT)SelectObject(hdc, hFont);       //选择字体  
  69.         SetTextColor(hdc, 0xC0C0C0);  
  70.         TextOut(hdc, 10, 10, str, (int)strlen(str));  
  71.         SelectObject(hdc, hOldFont);                      //选择旧字体  
  72.         DeleteObject(hFont);                              //删除新字体  
  73.         EndPaint(hwnd, &ps);  
  74.         break;  
  75.   
  76.   
  77.     case WM_DESTROY:  
  78.         PostQuitMessage(0);  
  79.         break;  
  80.     default:  
  81.        return DefWindowProc(hwnd, uMsg, wParam, lParam);  
  82.     }  
  83.     return 0;  
  84. }  
  85.   
  86.   
  87. BOOL InitApp(HINSTANCE hInstance, LPCSTR szClassName)  
  88. {  
  89.     WNDCLASS wndClass;  
  90.     ZeroMemory(&wndClass, sizeof(wndClass));  
  91.   
  92.   
  93.     wndClass.style          = CS_VREDRAW|CS_HREDRAW;  
  94.     wndClass.cbClsExtra     = 0;  
  95.     wndClass.cbWndExtra     = 0;  
  96.     wndClass.hInstance      = hInstance;  
  97.     wndClass.hCursor        = LoadCursor(hInstance, IDC_ARROW);  
  98.     wndClass.hIcon          = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_TEST));  
  99.     wndClass.hbrBackground  = (HBRUSH)GetStockObject(COLOR_BTNFACE);  
  100.     wndClass.lpfnWndProc    = (WNDPROC)WinProc;  
  101.     wndClass.lpszClassName  = (LPCSTR)szClassName;  
  102.     wndClass.lpszMenuName   = NULL;  
  103.     return RegisterClass(&wndClass);  
  104. }  
  105.   
  106.   
  107. BOOL InitInstance(HINSTANCE hInstance, LPCSTR szClassName, int nCmdShow)  
  108. {  
  109.     HWND hwnd;  
  110.     hwnd = CreateWindow(  
  111.         szClassName,  
  112.         "Sdk 字体变换",  
  113.         WS_OVERLAPPEDWINDOW,  
  114.         CW_USEDEFAULT, CW_USEDEFAULT,  
  115.         400, 300,  
  116.         NULL,  
  117.         NULL,  
  118.         hInstance,  
  119.         NULL  
  120.         );  
  121.     //  
  122.     if (!hwnd) return FALSE;  
  123.     ShowWindow(hwnd, nCmdShow);  
  124.     UpdateWindow(hwnd);  
  125.     return TRUE;  
  126. }  

该代码参考网上学习代码

时间: 2024-08-02 08:33:45

win32 字体变换与窗口同大同小的相关文章

jquery实现标题字体变换的滑动门菜单效果_jquery

本文实例讲述了jquery实现标题字体变换的滑动门菜单效果.分享给大家供大家参考.具体如下: 这里使用jquery字体会变大的网页滑动门菜单,当把鼠标放在"门"上的时候,门内的菜单字体会变大变色,对应的内容同时切换,不知如何形容本效果,所以就叫字体会变的滑动门吧. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-font-cha-tab-menu-style-codes/ 具体代码如下: <!DOCTYPE html

消息处理-Win32消息,子窗口如何接受WM_KEYDOWN消息

问题描述 Win32消息,子窗口如何接受WM_KEYDOWN消息 我有一个主窗口,里面创建了一个子窗口.所有的操作其实都是为了对子窗口里的图片进行处理.但是一些控件如Button等放在主窗口.现在我想要这个子窗口处理我的PAGEUP和PAGEDOWN键盘消息,但是在主窗口的消息处理函数中可以接收到WM_KEYDOWN消息,而在子窗口中却不能接收到.我知道可以通过主窗口主动POST消息给子窗口实现,但是我想知道能不能直接在子窗口里接收消息.比如,主窗口放弃处理这个消息,并传递给子窗口.我对Wind

图像处理-对图像进行DCT变换、量化的一个小问题

问题描述 对图像进行DCT变换.量化的一个小问题 我在学习添加鲁棒性水印等的知识,其中要先对图像进行DCT变换,得到DCT系数矩阵,然后再对DCT系数矩阵进行量化,想问一下量化步长是怎么确定的?(要求量化后尽可能失真小,也就是肉眼感知不到.有个DCT敏感系数表是什么?是怎么得到的?不同的图像有不同的敏感系数表吗?希望懂这方面的大神给指点一下,十分感谢!

dos窗口字体-dos命窗口字体变得非常小,而且改变不了,sql*plus,mysql窗口也是

问题描述 dos命窗口字体变得非常小,而且改变不了,sql*plus,mysql窗口也是 解决方案 而且在属性中改变不了 解决方案二: 找到了,是系统区域语言设置的问题

IE浏览器打开时窗口显示很小怎么办?

1.发现IE浏览器打开窗口小的时候,首先关闭浏览器,在桌面上找到IE浏览器的图标,选择IE浏览器单击右键,点击"属性". 2.在新弹出的窗口中,将运行方式更改为"最大化",然后点击"确定". 3.点击确定之后,IE浏览器打开窗口小就修复完成了,再次打开浏览器就会以最大化显示.

PS怎么设计漂亮的小草字体文字效果?

PS怎么设计漂亮的小草字体文字效果?   1.首先我们打开ps软件,然后执行新建--文件,文件大小自定义,填充为白色背景,如图 2.然后我们将前景色设置成"#4e5500",背景色设置成"#e9ebce",(设置成小草的颜色). 3.然后我们在工具栏上选择点击画笔工具,然后按F5键调出画笔设置窗口,选择小草画笔,设置好参数如图 4.然后点击工具栏上的"文字"工具,在图层上输入自定义文字,接着再新建一个图层.

Yoga高分辨率下字体模糊和显示字体小怎么设置

首先,在传统桌面点右键,打开[屏幕分辨率],把屏幕分辨率改为1920*1080,然后点击[保留更改],如图: 第二,打开[放大或缩小文本和其他项目],勾选上[让我选择一个适合我的所有显示器的缩放级别],然后选择[中等-125%],点[应用],再点[立即注销]. 这样调整后,软件整体会更适配,例如美图秀秀,调整分辨率前,窗口和字体很小,如图: 调整后,字体和软件窗口都放大很多,能够看清楚,如图: 由于每个软件设计的不同,分辨率和缩放比可以根据自己的情况来随时调整,建议分辨率和缩放比搭配可以如下几种

360浏览器视频小窗口播放按钮不见了?

  这个小窗口不见了?小编帮你找回来! 首先打开360浏览器,点击右上角的工具,选择"选项 -- 高级设置 -- 网页设置",接着在"在视频右上角显示攻工具栏"前的框里打上勾就行了!

js窗口震动小程序分享_javascript技巧

前言:窗口震动的应用是很常见的,比如最常用的聊天软件qq,就有一个窗口抖动,还有在填表单时的出错提醒,所以自己也写了个很简单的示例,以下是具体的代码 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>窗口震动</title> </head> <body>