Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: инструментальная панель?  (Прочитано 6129 раз)
0 Пользователей и 1 Гость смотрят эту тему.
krup
Интересующийся

ua
Offline Offline

« : 18-06-2011 13:48 » 

ребят не знаю почему, но  у меня в инструментальной панеле на кнопках не появляется моя картинка(ш:48,в:16):
Код:
"bitmap1.bmp"
.....


вот текст програмки:

main.h
Код:
#include <windows.h>
#include <windowsx.h>
#include "resource.h"
#include <wchar.h>
#include <commctrl.h>
#pragma comment (lib, "comctl32.lib")

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
BOOL OnCreate(HWND,LPCREATESTRUCT);
void OnPaint(HWND);
void OnCommand(HWND,int,HWND,UINT);
void OnDestroy(HWND);

main.cpp
Код:
#include "main.h"
#define SHIRINA 600
#define VISOTA 400
int sw;
 HBRUSH blue,green;
 HINSTANCE hI;
int WINAPI WinMain(HINSTANCE hInst,HINSTANCE,LPSTR,int)
{
wchar_t *szClassName=L"MainWindow";
wchar_t *szTitle=L"made Krip6.1";
MSG msg;
WNDCLASS wc;

ZeroMemory(&wc,sizeof(wc));
wc.lpfnWndProc=WndProc;
wc.hInstance=hInst;
wc.hIcon=LoadIcon(0,IDI_APPLICATION);
wc.hCursor=LoadCursor(0,IDC_ARROW);
wc.hbrBackground=CreateSolidBrush(RGB(100,100,100));
wc.lpszClassName=szClassName;
wc.lpszMenuName=L"Main";
RegisterClass(&wc);

HWND hwnd=CreateWindow(szClassName,szTitle,WS_OVERLAPPEDWINDOW|WS_SIZEBOX,
20,20,SHIRINA,VISOTA,HWND_DESKTOP,0,hInst,0);
ShowWindow(hwnd,SW_SHOWNORMAL);
while(GetMessage(&msg,NULL,0,0)){
DispatchMessage(&msg);}
return 0;
}

LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
HANDLE_MSG(hwnd,WM_COMMAND,OnCommand);
HANDLE_MSG(hwnd,WM_CREATE,OnCreate);
HANDLE_MSG(hwnd,WM_PAINT,OnPaint);
HANDLE_MSG(hwnd,WM_DESTROY,OnDestroy);
default: return(DefWindowProc(hwnd,msg,wParam,lParam));}}

BOOL OnCreate(HWND hwnd,LPCREATESTRUCT)
{
blue=CreateSolidBrush(RGB(0,0,255));
green=CreateSolidBrush(RGB(0,255,0));

        TBBUTTON menut[3];
ZeroMemory(&menut,sizeof(menut));
menut[0].iBitmap=0;
menut[0].idCommand=ID_1;
menut[0].fsState=TBSTATE_ENABLED;
menut[1].iBitmap=1;
menut[1].idCommand=ID_2;
menut[1].fsState=TBSTATE_ENABLED;
menut[2].iBitmap=2;
menut[2].idCommand=ID_3;
menut[2].fsState=TBSTATE_ENABLED;
CreateToolbarEx(hwnd,WS_CHILD|WS_BORDER|WS_VISIBLE,
-1,3,hI,IDB_BITMAP1 ,menut,3,16,16,16,16,sizeof(TBBUTTON));
return TRUE;}

void OnCommand(HWND hwnd,int id,HWND,UINT)
{
switch(id){
case ID_1:
sw=1;
InvalidateRect(hwnd,NULL,TRUE);
break;
case ID_2:
sw=2;
InvalidateRect(hwnd,NULL,TRUE);
break;
case ID_3:DestroyWindow(hwnd);}}

void OnPaint(HWND hwnd)
{
PAINTSTRUCT ps;
HDC hdc=BeginPaint(hwnd,&ps);
if (sw==1)
FillRect(hdc,&ps.rcPaint,blue);
if(sw==2)
FillRect(hdc,&ps.rcPaint,green);
EndPaint (hwnd, &ps);}


void OnDestroy(HWND){
PostQuitMessage(0);
}

resource.h
Код:
#define IDB_BITMAP1                     101
#define ID_1                            101
#define ID_2                            102
#define ID_3                            103

файл ресурса:
Код:
IDB_BITMAP1             BITMAP                  "bitmap1.bmp"

Панелька появляется но кнопки пустые....

<Накажу...>


Добавлено через 7 часов, 59 минут и 19 секунд:
1-ая вот картинка обычная в проге каторая...
2-ая скрин что получается ..

Добавлено через 47 секунд:
вот скрин

* bitmap1.bmp (0.47 Кб - загружено 986 раз.)
* Безымянный.JPG (44.05 Кб - загружено 979 раз.)
« Последнее редактирование: 18-06-2011 22:15 от krup » Записан
zubr
Гость
« Ответ #1 : 18-06-2011 22:41 » 

Размер битмапа должен быть меньше высоты тулбара.
Записан
krup
Интересующийся

ua
Offline Offline

« Ответ #2 : 18-06-2011 22:47 » 

сделал его 13 на 48 -пустые всеровно

Добавлено через 1 день, 14 часов и 50 секунд:
я так и не разобрался в чом проблема...
« Последнее редактирование: 20-06-2011 12:47 от krup » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines