Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как изменить фонт в диалоговом окне ?

1.2K
06 сентября 2004 года
BigBug
93 / / 30.07.2004
Мне нужно вывести текст в диалоговом окне
без исспльзования всяких эдитов (это не проблема).
Ну а кроме всего прочего изменять
фонт этого текста. Это какраз у меня и не получается.
Уважаемые специалисты.
Подскажите пожалуйсто как можно это сделать.
368
07 сентября 2004 года
rostyslav
629 / / 13.07.2004
шрифт можно изменить командой

CWnd->SetFont(&font, bRedraw);

а цвет можно менять в обработчике WM_CTLCOLOR диалогового окна. напр.
 
Код:
HBRUSH CGDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
  HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
  if(pWnd->GetDlgCtrlID()==IDC_LABEL)
  {
    pDC->SetBkColor(RGB(255, 255, 0));
    pDC->SetTextColor(RGB(192, 0, 0));
  }
  return hbr;
}
1.2K
07 сентября 2004 года
BigBug
93 / / 30.07.2004
[QUOTE]Originally posted by rostyslav
шрифт можно изменить командой

CWnd->SetFont(&font, bRedraw);

а цвет можно менять в обработчике WM_CTLCOLOR диалогового окна. напр.


С цветом я разобрался но с шрифтом ничего не получается.
Я делаю так :
Код:
void CScreen::SetFont(void)
{
    CWnd *pWnd;
    pWnd=GetWindow(GW_OWNER);

    m_font.CreateFont(20,0,0,0,FW_NORMAL,
        TRUE,0,0,DEFAULT_CHARSET,OUT_CHARACTER_PRECIS,
        CLIP_CHARACTER_PRECIS,DEFAULT_QUALITY,
        DEFAULT_PITCH|FF_DONTCARE,"David");
       
    pWnd->SetFont(&m_font);
       
}


но прогу выбрасывет с сообщением об ошибке.
Что я не так делаю ?
368
07 сентября 2004 года
rostyslav
629 / / 13.07.2004
если ты хочешь изменить шрифт текста, который имеет ID напр. IDC_STATIC1, тo
Код:
void CScreen::SetFont(void)
{
  CWnd *pWnd;
  [COLOR=red]pWnd=this->GetDlgItem(IDC_STATIC1);[/COLOR]
  m_font.CreateFont(20,0,0,0,FW_NORMAL,
            TRUE,0,0,DEFAULT_CHARSET,OUT_CHARACTER_PRECIS,
        CLIP_CHARACTER_PRECIS,DEFAULT_QUALITY,
        DEFAULT_PITCH|FF_DONTCARE,"David");
       
  pWnd->SetFont(&m_font);
       
}
1.2K
07 сентября 2004 года
BigBug
93 / / 30.07.2004
Цитата:
Originally posted by rostyslav
если ты хочешь изменить шрифт текста, который имеет ID напр. IDC_STATIC1, тo
Код:
void CScreen::SetFont(void)
{
  CWnd *pWnd;
  [COLOR=red]pWnd=this->GetDlgItem(IDC_STATIC1);[/COLOR]
  m_font.CreateFont(20,0,0,0,FW_NORMAL,
            TRUE,0,0,DEFAULT_CHARSET,OUT_CHARACTER_PRECIS,
        CLIP_CHARACTER_PRECIS,DEFAULT_QUALITY,
        DEFAULT_PITCH|FF_DONTCARE,"David");
       
  pWnd->SetFont(&m_font);
       
}




Дак в том то и проблема что нет никакого статика
и писать нужно непосредственно на самом диалоге
(так сказать на его окрытой поверхности).

368
07 сентября 2004 года
rostyslav
629 / / 13.07.2004
CDC *cdc = this->GetDC();
CFont *oldFont;
oldFont = cdc->SelectObject(&m_font);
cdc->TextOut(20,20,"Hi!");
cdc->SelectObject(oldFont);
1.2K
07 сентября 2004 года
BigBug
93 / / 30.07.2004
Цитата:
Originally posted by rostyslav
CDC *cdc = this->GetDC();
CFont *oldFont;
oldFont = cdc->SelectObject(&m_font);
cdc->TextOut(20,20,"Hi!");
cdc->SelectObject(oldFont);



Большое спасибо Rostyslav это кокраз то что мне было нужно.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог