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

Ваш аккаунт

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

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

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

Как создать круглую кнопку

34K
12 февраля 2008 года
jiji
3 / / 12.02.2008
Помогите, как создать круглую кнопку
320
12 февраля 2008 года
m_Valery
1.0K / / 08.01.2007
Цитата: jiji
Помогите, как создать круглую кнопку



Сделать свой класс кнопки.Добавить в хедер-файле

 
Код:
...
afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct);
    virtual void DrawItem(LPDRAWITEMSTRUCT /*lpDrawItemStruct*/);
    afx_msg void OnBnClicked();

...

В сpp. файле дописать:
Код:
...
void MButton::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{

    CButton::OnDrawItem(nIDCtl, lpDrawItemStruct);
}

void MButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
    CDC* pDC;
    pDC = CDC::FromHandle(lpDrawItemStruct->hDC);
    CBrush brush;  
    if(lpDrawItemStruct->itemState & ODS_DISABLED){
        brush.CreateSolidBrush(RGB(192,192,192));
    }else{ brush.CreateSolidBrush(RGB(230,230,230));}
    pDC->SelectObject(&brush);
    CRect r = lpDrawItemStruct->rcItem;
    if(lpDrawItemStruct->itemState & ODS_SELECTED){
        r.OffsetRect(2,2);
    }
    pDC->SetBkMode(TRANSPARENT);
    pDC->Ellipse(r);
    pDC->DrawText(L"Button",(&r),DT_CENTER|DT_SINGLELINE|DT_VCENTER);

}

void MButton::OnBnClicked()
{
    MessageBox(L"Вы нажали круглую кнопку");
}
...

Далее вытащить из ToolBox кнопку.придать ей квадратную форму,и добавить ее контрол переменную типа MButton,а не CButton.Не забыть поставить в Properties этой кнопки Owner Draw в true.
И второй вариант посмотреть как это сделано тут.:)
34K
13 февраля 2008 года
jiji
3 / / 12.02.2008
спасибо за инфу получилось !!!
73K
17 июня 2011 года
ucs
1 / / 13.06.2011
люди,помогите!!!можно немного поподробнее
что есть - и добавить ее контрол переменную типа MButton,а не CButton
и....чтобы пользоваться ....CDC* pDC;
pDC = CDC::FromHandle(lpDrawItemStruct->hDC);
CBrush brush;
....какую библиотеку или что там еще подключить надо?
14
17 июня 2011 года
Phodopus
3.3K / / 19.06.2008
Цитата: ucs

что есть


долго догонял. вообще есть теги QUOTE.

Цитата:

- и добавить ее контрол переменную типа MButton,а не CButton


это связывание контрола с переменной. Правым кликом по той самой кнопке в редакторе ресурсов. Тип надо указать не CButton - как это делается обычно в таких случаях, а MButton

Цитата:

и....чтобы пользоваться ....CDC* pDC;
pDC = CDC::FromHandle(lpDrawItemStruct->hDC);
CBrush brush;
....какую библиотеку или что там еще подключить надо?


MFC

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