помогиииите в Mfc!!!!
Еще один тупой вопрос... Как присобачить иконку\битмап к кнопке?
И напоследок долгое время мучает вопрос о том как создаються скины (ну как в Winamp'e) не подскажите или напишите хотябі как кнопку обделать скином.....
Буду рад если кто то ответит на любой мой вопрос...
Я пишу на MFC на Microsoft Visual C++ 6.0 Standart Edition
У меня есть SDI приложение и я хочу чтобы при нажатии кнопки на тулбаре в строку состояния добавлялась новая ячейка и начинла отсчет от 59 и до 0 секунд...Причем когда дойдет до 0 чтобы ячейка удалялась...
Еще один тупой вопрос... Как присобачить иконку\битмап к кнопке?
И напоследок долгое время мучает вопрос о том как создаються скины (ну как в Winamp'e) не подскажите или напишите хотябі как кнопку обделать скином.....
Буду рад если кто то ответит на любой мой вопрос...
Я пишу на MFC на Microsoft Visual C++ 6.0 Standart Edition
Отвечу на вопрос про иконку\битмап.
1)Создаем кнопку (в редакторе ресурсов, если работаем с диалом, или CButton b, b.Create(...))
2)Создаем в редакторе картинку(иконку).
3)загружаем картинку:
HBITMAP bmp=LoadBitmap или LoadIcon(AfxGetApp()->m_hInstance,
(LPCTSTR)ID_КАРТИНИ(ИКОНКИ));
4)Прикрепляем к кнопке:
b.SetBitmap\SetIcon(наш bmp или ico)
PS. При создании кнопки, параметр DWORD swStyle -
BS_BITMAP или BS_ICON.
С этой же целью можно использовать b.SetStyle(...).
Отвечу на вопрос про иконку\битмап.
1)Создаем кнопку (в редакторе ресурсов, если работаем с диалом, или CButton b, b.Create(...))
2)Создаем в редакторе картинку(иконку).
3)загружаем картинку:
HBITMAP bmp=LoadBitmap или LoadIcon(AfxGetApp()->m_hInstance,
(LPCTSTR)ID_КАРТИНИ(ИКОНКИ));
4)Прикрепляем к кнопке:
b.SetBitmap\SetIcon(наш bmp или ico)
PS. При создании кнопки, параметр DWORD swStyle -
BS_BITMAP или BS_ICON.
С этой же целью можно использовать b.SetStyle(...).
СПАСИБО ОГРОМАДНОЕ! :):):):)
только вот либо я тупой а ето скорее всего так :D чо у меня ошибка? вот значит пишу:
void CTestDlg::OnButton1()
{
HBITMAP hbm=LoadBitmap(AfxGetApp()->m_hInstance, IDB_BITMAP1);
m_but.SetBitmap(hbm);
}
а оно мне ошибку лепит типа:
C:\Program Files\Microsoft Visual Studio\MyProjects\test\testDlg.cpp(175) : error C2664: 'LoadBitmapA' : cannot convert parameter 2 from 'const int' to 'const char *'
шо за нафик? :):):)
СПАСИБО ОГРОМАДНОЕ! :):):):)
только вот либо я тупой а ето скорее всего так :D чо у меня ошибка? вот значит пишу:
void CTestDlg::OnButton1()
{
HBITMAP hbm=LoadBitmap(AfxGetApp()->m_hInstance, IDB_BITMAP1);
m_but.SetBitmap(hbm);
}
а оно мне ошибку лепит типа:
C:\Program Files\Microsoft Visual Studio\MyProjects\test\testDlg.cpp(175) : error C2664: 'LoadBitmapA' : cannot convert parameter 2 from 'const int' to 'const char *'
шо за нафик? :):):)
невозможно конвертировать целое в указатель. IDB_BITMAP1 - это просто целое какое-то. Читай внимательнее пример, что тебе дали.
...
HBITMAP hbm=LoadBitmap(AfxGetApp()->m_hInstance, IDB_BITMAP1);
а оно мне ошибку лепит типа:
C:\Program Files\Microsoft Visual Studio\MyProjects\test\testDlg.cpp(175) : error C2664: 'LoadBitmapA' : cannot convert parameter 2 from 'const int' to 'const char *'
шо за нафик? :):):)
Я писал HBITMAP hbm=LoadBitmap(AfxGetApp()->m_hInstance, (LPCTSTR)IDB_BITMAP1);
Как вариант можно написать IDB_BITMA1 кавычках.
а оно мне ошибку лепит типа:
C:\Program Files\Microsoft Visual Studio\MyProjects\test\testDlg.cpp(175) : error C2664: 'LoadBitmapA' : cannot convert parameter 2 from 'const int' to 'const char *'
шо за нафик? :):):)
Попробуй
HBITMAP hbm=LoadBitmap(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDB_BITMAP1));
Я писал HBITMAP hbm=LoadBitmap(AfxGetApp()->m_hInstance, (LPCTSTR)IDB_BITMAP1);
Как вариант можно написать IDB_BITMA1 кавычках.
написал в кавычках всё компилится нормально, без ошибок но сам битмап не показует....:\
Попробуй
HBITMAP hbm=LoadBitmap(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDB_BITMAP1));
сделал так все отлично работет, битмап показывает только чето текста не видно.... как сделать шоб и текст было видно?
...как прилепить иконку\битмап в меню? Ну видели наверное с левой стороны возле каждого пункта... в том же офисе....???
Если не ошибаюсь, есть такая функция - SetMenuItemBitmaps(...);
Как работает и что там за флаги не знаю - сам не пользовался. Знаю только, что последние два параметра - указатели на картинки, загруженные в CBitmap:
CBitmap b.LoadBitamp(ID_КАРТИНКИ);
...как прилепить иконку\битмап в меню? Ну видели наверное с левой стороны возле каждого пункта... в том же офисе....???
Если не ошибаюсь, есть такая функция - SetMenuItemBitmaps(...);
Как работает и что там за флаги не знаю - сам не пользовался. Знаю только, что последние два параметра - указатели на картинки, загруженные в CBitmap:
CBitmap b.LoadBitamp(ID_КАРТИНКИ);