加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

更改Win32 Windows项目中的默认窗口字体

发布时间:2020-12-14 04:01:54 所属栏目:Windows 来源:网络整理
导读:我正在使用C和Win32 api创建一个GUI应用程序.我想知道如何将主窗口的默认字体更改为thaoma.我是从.NET背景出来的.在.NET中,如果我们更改父控件的字体,那么子控件会自动继承该字体…. 是否有相似之处或我们需要手动设置每个控件的字体….. 考虑以下代码…… #
我正在使用C和Win32 api创建一个GUI应用程序.我想知道如何将主窗口的默认字体更改为thaoma.我是从.NET背景出来的.在.NET中,如果我们更改父控件的字体,那么子控件会自动继承该字体….
是否有相似之处或我们需要手动设置每个控件的字体…..

考虑以下代码……

#include <windows.h>

#define ID_EDIT 1
#define ID_BUTTON 2

LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{

  static HWND hwndEdit;
  static HWND hwndButton;
  static int len;
  static TCHAR text[30];


  switch(msg)
  {
    case WM_CREATE:
    hwndEdit = CreateWindow(TEXT("Edit"),NULL,WS_CHILD | WS_VISIBLE | WS_BORDER,50,150,20,hwnd,(HMENU) ID_EDIT,NULL);

    hwndButton = CreateWindow(
        TEXT("button"),TEXT("Set Title"),WS_VISIBLE | WS_CHILD,100,80,25,(HMENU) ID_BUTTON,NULL);      

    break;


    case WM_DESTROY:
        PostQuitMessage(0);
    break;
  }
  return DefWindowProc(hwnd,msg,wParam,lParam);
}

int WINAPI WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow )
{
  MSG  msg ;    
  WNDCLASS wc = {0};
  wc.lpszClassName = TEXT( "Edit Control" );
  wc.hInstance     = hInstance ;
  wc.hbrBackground = GetSysColorBrush(COLOR_3DFACE);
  wc.lpfnWndProc   = WndProc ;
  wc.hCursor       = LoadCursor(0,IDC_ARROW);


  RegisterClass(&wc);
  CreateWindow( wc.lpszClassName,TEXT("Edit control"),WS_OVERLAPPEDWINDOW | WS_VISIBLE,220,280,200,hInstance,0);  

  while( GetMessage(&msg,0)) {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
  }
  return (int) msg.wParam;
}

如何在上面的程序中更改按钮,文本框的字体..

请帮助我…….并让我知道在win32 api中编码的一般过程….

提前致谢..

解决方法

您可以通过发送WM_SETFONT消息来设置窗口的字体:

HWND myButton = CreateWindowEx(/* ... */);
HFONT myFont  = /* ... load font from somewhere ... */

/* Change the button font. */
SendMessage(myButton,WM_SETFONT,WPARAM(myFont),TRUE);

这种方法为您提供了一个控制控件,可以控制您正在使用的字体,但每个窗口只需要执行一次.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读