Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Как сделать кнопки в клиентской области окна?


Автор: Delete 10.10.2005, 08:21
Мне нужно сделать кнопки в клиентской области, картинками. Я скачала CxSkinButton, и теперь не знаю, с какого бока к этому подойти smile

Подскажите что-нить дельное... Только в google не посылайте, я как раз оттуда ;)

Автор: Delete 10.10.2005, 20:01
Ну никто не знает чтоли?? smile( Не обязательно с CxSkinButton, просто кнопки в клиентской области... Я пока просто рисую их картинками, у мышки потом координаты высчитываю, куда она ткнулась, если по картинке, то бла-бла-бла... Ну это же коряво??

Автор: chipset 10.10.2005, 20:40
Какой класс представляет отображение у тебя? CFormView подойдет влепить?

Автор: Alexsar 12.10.2005, 01:36
Для классов производных от CView
Добавь переменную типа CButton
например CButton pusk;
Дальше содай обработчик сообщения WM_CREATE для своего класса представления

вот листинг
Код

int CTestView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
    if (CView::OnCreate(lpCreateStruct) == -1)
        return -1;
    
    COpyt1Doc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    CreateButton();// эта функция создаст кнопку    
    
        
    return 0;
}



вот листинг CreateButton
Код

void CTestView::CreateButton()
{
m_Vvod.Create("Пуск",WS_CHILD|WS_VISIBLE|WS_BORDER,CRect(150,600,250,640),this,1);

}


дальше приши обработчик для кнопки

как сделать с картинками для класса CView не знаю smile


Если для обычного диалогового приложения, то добавь растровый ресурс для кнопки в нажатом и в отжатом состоянии
свяжи кнопку с переменной CBitmapButton m_pusk;
установи для кнопки свойство Owner Draw, затем измени названия ресурсов:
например кнопка называется PUSK(в поле Caption)
то для отжатого состояния имя ресурса следеут изменить на "PUSKU"(в свойствах ресурса поле ID), а для нажатого - на "PUSKD", кавычки ставить обязательно.

OnInitDialog добавь строчку
Код

BOOL CPrDlg::OnInitDialog()
{
CDialog::OnInitDialog();
VERIFY(m_pusk.AutoLoad(IDC_BUTTON1,this));//вот эту
return TRUE;
}


вроде всё smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)