Red de conocimiento informático - Material del sitio web - Cómo modificar la fuente de la barra de título en programación MFC

Cómo modificar la fuente de la barra de título en programación MFC

Eso es todo. La puntuación es demasiado baja. No uses el segundo método, solo usa el primero jaja

Se me ocurren dos métodos:

p>

1. Esta es una mala idea. La desventaja es que la fuente no se puede configurar, pero se puede centrar :)

CString m_strCaption = " jajaja"; de espacios hasta que esté centrado

2. Agregue la función de mensaje WM_NCPAINT, por supuesto, puede configurar la fuente y centrar la visualización.

En el archivo de encabezado de su cuadro de diálogo, agregue afx_msg. void OnNcPaint();

En el archivo cpp de su cuadro de diálogo, agregue ON_WM_NCPAINT() en el mapa de mensajes

Luego agregue esta función de respuesta de mensaje:

void CXXXDlg::OnNcPaint()

{

CDialog::OnNcPaint();

CDC* pDC = GetWindowDC();

int x = GetSystemMetrics(SM_CXSIZE) +GetSystemMetrics(SM_CXBORDER)+GetSystemMetrics(SM_CXDLGFRAME);

int y = GetSystemMetrics(SM_CYDLGFRAME);

CRect CapRct;

GetWindowRect(&CapRct);

p>

int y1 = GetSystemMetrics(SM_CYICON)-GetSystemMetrics(SM_CYDLGFRAME)-GetSystemMetrics(SM_CYBORDER);

int x1 = CapRct.Width ()- GetSystemMetrics (SM_CXSIZE)-GetSystemMetrics(SM_CXBORDER)-GetSystemMetrics (SM_CXDLGFRAME);

CapRct.left = x;

CapRct.top = y;

CapRct.right = x1;

CapRct.bottom = y1;

//pDC->FillSolidRect(&CapRct,RGB(0,0,0));

CFont * pCurFont = GetFont();

LOGFONT lf;

pCurFont->GetLogFont (&lf);

lf.lfItalic = TRUE;

lf.lfWeight = FW_BOLD;

lf.lfHeight = 18;

strcpy(lf.lfFaceName ,"Arial");

CFont capfont ;

capfont.CreateFontIndirect ( &lf);

pCurFont = pDC->SelectObject

(&capfont);

pDC->SetBkMode (TRANSPARENTE);

pDC->SetTextColor (GetSysColor(COLOR_CAPTIONTEXT));

pDC->DrawText (" My Caption", &CapRct, DT_SINGLELINE | DT_CENTER | DT_VCENTER); //Es mejor definir un miembro de la clase m_strCaption

ReleaseDC(pDC);

}