Как изменить размер шрифта и шрифт статического контроля, когда свойство прозрачно

Я создаю два элемента управления CStatic. Одно свойство установлено в прозрачный режим; другой нормальный.
После того, как я изменил размер шрифта, все в порядке, он изменился, но установленный прозрачный режим один не изменился по размеру.

Кто-нибудь знает почему?

//////////////////////////////////////////////////
/* Resource File */
LTEXT           "This Is Normal Text.",IDC_FONT2,7,119,303,21,WS_BORDER
LTEXT           "This Include Transparent.",IDC_FONT,7,7,306,21,WS_BORDER | NOT WS_GROUP | WS_TABSTOP,WS_EX_TRANSPARENT/* FontTest.CPP */
class CFontSizeDlg : public CDialogEx
{
public:
CStatic m_myFont;
CStatic m_myFont2;
}

/* FontTest.CPP */
void CFontSizeDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_FONT, m_myFont);
DDX_Control(pDX, IDC_FONT2, m_myFont2);
}

void CFontSizeDlg::OnBnClickedButton2()
{
CFont hNewFont;
LOGFONT lf;                        // Used to create the CFont.

CFont *currentFont = GetFont();
currentFont->GetLogFont(&lf);
lf.lfHeight = 25;
lf.lfWidth = 10;

hNewFont.DeleteObject();
hNewFont.CreateFontIndirect(&lf);    // Create the font.

// Use the font to paint a control.
m_myFont2.SetFont(&hNewFont);
m_myFont.SetFont(&hNewFont);

// hNewFont.Detach(); // will create GDI leak
hNewFont.DeleteObject();
}

0

Решение

Вы должны убедиться, что область действия «нового» шрифта такая же, как и у статических элементов управления. В вашем примере, шрифт уничтожается, когда обработчик события кнопки сделан. Попробуйте сделать hNewFont переменной-членом и установить ее один раз.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]