gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 15:20:56 24 4
gpt4 key购买 nike

我正在使用 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, 50, 150, 20, hwnd, (HMENU) ID_EDIT,
NULL, NULL);

hwndButton = CreateWindow(
TEXT("button"), TEXT("Set Title"),
WS_VISIBLE | WS_CHILD,
50, 100, 80, 25,
hwnd, (HMENU) ID_BUTTON, NULL, 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, 220, 280, 200, 0, 0, hInstance, 0);

while( GetMessage(&msg, NULL, 0, 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);

这种方法让您可以逐个控制地控制正在使用的字体,但每个窗口只需要执行一次。

关于更改 Win32 Windows 项目中的默认窗口字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2885454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com