郁金香外挂技术-郁金香灬老师

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

郁金香终身VIP管理员QQ150330575项目合作(有实力的+)视频教程+每月更新+QQ群
飞郁视频分享(每周更新)
查看: 384|回复: 0

替换 窗口 字体 WM_SETFONT

[复制链接]
发表于 2019-10-15 20:27:57 | 显示全部楼层 |阅读模式

#include <windows.h>
#pragma comment(linker,"/subsystem:windows")
HWND hs;
typedef struct tagSetFont{
        HWND hwnd;
        char *facename;
}setFont;
//枚举字体 的回调函数
int CALLBACK FontCallback(LOGFONT *lf,TEXTMETRIC *tm,DWORD type,LPARAM structSetFont)
{
        HFONT hfont;
        setFont *value=(setFont*) structSetFont;
        if(strstr(lf->lfFaceName,(char *)value->facename))
        {
                hfont=CreateFontIndirect(lf);
                SendMessage(value->hwnd,WM_SETFONT,(WPARAM)hfont,(LPARAM)MAKELONG(TRUE,TRUE));
                return FALSE;
        }
        return TRUE;
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
        static HWND hedit;
        setFont sf;
        switch(msg)
        {
        case WM_CREATE:                                
                hedit=CreateWindow("static","hello",WS_CHILD | WS_VISIBLE,10,10,100,100,hwnd,NULL,((CREATESTRUCT *)lParam)->hInstance,NULL);
                sf.hwnd=hedit;
                sf.facename="Impact";               
                EnumFonts(GetDC(hedit),NULL,(FONTENUMPROC)FontCallback,(LPARAM)&sf);
                break;
        case WM_DESTROY:
                PostQuitMessage(0);
                break;
        }
        return DefWindowProc(hwnd,msg,wParam,lParam);
}
int WINAPI WinMain(HINSTANCE hi,HINSTANCE hpi,LPSTR cmdLine,int nCmdShow)
{
        MSG msg;
        HWND hwnd;
        WNDCLASS wcls;
        ZeroMemory(&wcls,sizeof wcls);
        wcls.hInstance=hi;
        wcls.lpfnWndProc=WndProc;
        wcls.lpszClassName="fontDemo";
        wcls.hCursor=LoadCursor(NULL,IDC_ARROW);
        wcls.hbrBackground=(HBRUSH)(COLOR_3DSHADOW);
        RegisterClass(&wcls);
        hwnd=CreateWindow("fontDemo","FontStyleChange",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hi,NULL);
        ShowWindow(hwnd,nCmdShow);
        UpdateWindow(hwnd);
        while(GetMessage(&msg,NULL,0,0))
        {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }
        return msg.wParam;
}




  1. #include <windows.h>
  2. #pragma comment(linker,"/subsystem:windows")
  3. HWND hs;
  4. typedef struct tagSetFont{
  5.         HWND hwnd;
  6.         char *facename;
  7. }setFont;
  8. int CALLBACK FontCallback(LOGFONT *lf,TEXTMETRIC *tm,DWORD type,LPARAM structSetFont)
  9. {
  10.         HFONT hfont;
  11.         setFont *value=(setFont*) structSetFont;
  12.         if(strstr(lf->lfFaceName,(char *)value->facename))
  13.         {
  14.                 hfont=CreateFontIndirect(lf);
  15.                 SendMessage(value->hwnd,WM_SETFONT,(WPARAM)hfont,(LPARAM)MAKELONG(TRUE,TRUE));
  16.                 return FALSE;
  17.         }
  18.         return TRUE;
  19. }
  20. LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
  21. {
  22.         static HWND hedit;
  23.         setFont sf;
  24.         switch(msg)
  25.         {
  26.         case WM_CREATE:                               
  27.                 hedit=CreateWindow("static","hello",WS_CHILD | WS_VISIBLE,10,10,100,100,hwnd,NULL,((CREATESTRUCT *)lParam)->hInstance,NULL);
  28.                 sf.hwnd=hedit;
  29.                 sf.facename="Impact";               
  30.                 EnumFonts(GetDC(hedit),NULL,(FONTENUMPROC)FontCallback,(LPARAM)&sf);
  31.                 break;
  32.         case WM_DESTROY:
  33.                 PostQuitMessage(0);
  34.                 break;
  35.         }
  36.         return DefWindowProc(hwnd,msg,wParam,lParam);
  37. }
  38. int WINAPI WinMain(HINSTANCE hi,HINSTANCE hpi,LPSTR cmdLine,int nCmdShow)
  39. {
  40.         MSG msg;
  41.         HWND hwnd;
  42.         WNDCLASS wcls;
  43.         ZeroMemory(&wcls,sizeof wcls);
  44.         wcls.hInstance=hi;
  45.         wcls.lpfnWndProc=WndProc;
  46.         wcls.lpszClassName="fontDemo";
  47.         wcls.hCursor=LoadCursor(NULL,IDC_ARROW);
  48.         wcls.hbrBackground=(HBRUSH)(COLOR_3DSHADOW);
  49.         RegisterClass(&wcls);
  50.         hwnd=CreateWindow("fontDemo","FontStyleChange",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hi,NULL);
  51.         ShowWindow(hwnd,nCmdShow);
  52.         UpdateWindow(hwnd);
  53.         while(GetMessage(&msg,NULL,0,0))
  54.         {
  55.                 TranslateMessage(&msg);
  56.                 DispatchMessage(&msg);
  57.         }
  58.         return msg.wParam;
  59. }
复制代码


郁金香外挂教程,学习中...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

限时限量优惠

QQ|小黑屋|手机版|郁金香外挂技术-郁金香灬老师 ( 苏ICP备10059359号 )

GMT+8, 2019-12-10 10:02 , Processed in 0.050790 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表