IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Помогите исправить баг...., WinAPI
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 151
Пол: Мужской
Реальное имя: иван

Репутация: -  0  +


В общем делаю программу чертеж в которой есть зум и все такое.........Так вот в чем проблема....Если пару десятков раз изменить размер окна или использовать зумм все окна(нетолько моей программы)перестают обнавляться(незнаю как подругому объяснить лучше сами посмотрите(после завершения моей программы все вновь начинает обнавляться))..Никак не могу понять с чем это связано???Ставил комментарии на все что только можно и всеравно тоже самое......Помогите найти причину....

P.S Заранее извиняюсь за код, это моя первая серьезная прога на WinAPI)))


Полностью не добавился поэтому пришлось разбить...


Прикрепленные файлы
Прикрепленный файл  project.zip ( 38.45 килобайт ) Кол-во скачиваний: 166
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
иконки на кнопках тулбара исчезают после нажатия на них или после изменения размера экрана

Некорректно созданный toolbar дает тебе глюки... Вот такое работает в твоем же проекте под GCC (VisualStudio нет в наличии):

HWND CreateMyToolbar(HWND hWndParent)
{
const int num_buttons = 4;
const int imgListID = 0;
const DWORD buttonStyles = BTNS_BUTTON | TBSTYLE_AUTOSIZE | TBSTYLE_BUTTON | TBSTYLE_TRANSPARENT;

HWND hWndToolbar =
CreateWindowEx(0, TOOLBARCLASSNAME, NULL,
WS_CHILD | TBSTYLE_WRAPABLE, 0, 0, 0, 0,
hWndParent, NULL, hInst, 0);
if(hWndToolbar == NULL) return NULL;

HIMAGELIST hImageList =
ImageList_Create(16, 16, ILC_COLOR16 | ILC_MASK,
num_buttons, 0);
SendMessage(hWndToolbar, TB_SETIMAGELIST, (WPARAM)imgListID, (LPARAM)hImageList);

// Ну, тут подставишь свои картинки и подписи
TBBUTTON tbButtons[num_buttons] = {
{
MAKELONG(STD_FILEOPEN, imgListID), IDM_OPEN, TBSTATE_ENABLED,
buttonStyles, {0}, 0, (INT_PTR)"Open"
},
{
MAKELONG(STD_FILESAVE, imgListID), IDM_SAVE, TBSTATE_ENABLED,
buttonStyles, {0}, 0, (INT_PTR)"Save"
},
{
MAKELONG(HIST_ADDTOFAVORITES, imgListID), IDM_SAVE, 0,
buttonStyles, {0}, 0, (INT_PTR)"Save"
},
{
MAKELONG(HIST_ADDTOFAVORITES, imgListID), IDM_SAVE, 0,
buttonStyles, {0}, 0, (INT_PTR)"Save"
}
};

SendMessage(hWndToolbar, TB_LOADIMAGES, (WPARAM)IDB_STD_SMALL_COLOR, (LPARAM)HINST_COMMCTRL);
SendMessage(hWndToolbar, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0);
SendMessage(hWndToolbar, TB_ADDBUTTONS, (WPARAM)num_buttons, (LPARAM)&tbButtons);

SendMessage(hWndToolbar, TB_AUTOSIZE, 0, 0);
ShowWindow(hWndToolbar, TRUE);
return hWndToolbar;
}


// создавать не так:
// CreateTB(hWnd,IDTB_TB);

// а вот так
htb = CreateMyToolbar(hWnd);



Ты поправил свой класс? Хендлы удаляются, как положено? А то это ведь тоже может послужить причиной глюков...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.05.2024 18:50
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name