Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 28.05.2014
Сообщений: 12
1

Регион удаляется сам по себе

06.06.2014, 10:16. Показов 527. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Я создаю анимацию в окне STATIC. К окну прикреплён регион. При создании регион есть. Когда включатся анимация, то регион удаляется.
Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//В WM_CREATE 
hProgBar = CreateWindowEx(0, L"STATIC" , 0, WS_CHILD|WS_VISIBLE|SS_BITMAP, COORDX_PROGRESS, COORDY_PROGRESS, LENGTHX_PROGRESS, LENGTHY_PROGRESS, hwnd, 0, hI, 0);
lProgress = SetWindowLong(hProgBar, GWL_WNDPROC, (LONG)WndProgress);
SendMessage(hProgBar, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)LoadImage(hI, MAKEINTRESOURCE(IDB_PROGRESS), IMAGE_BITMAP, LENGTHX_PROGRESS, LENGTHY_PROGRESS, LR_DEFAULTCOLOR));
RegionProg();//Создание региона
 
//RegionProg()
void RegionProg(){
    HRGN hRegion=CreateRoundRectRgn(0, 0, LENGTHX_PROGRESS, LENGTHY_PROGRESS, 10, 10);
    SetWindowRgn(hProgBar, hRegion, true);
    DeleteObject(hRegion); 
}
 
//В WM_TIMER
case WM_TIMER:
        SendMessage(hProgBar, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)LoadImage(hI, MAKEINTRESOURCE(IDB_PROGRESS+anim), IMAGE_BITMAP, LENGTHX_PROGRESS, LENGTHY_PROGRESS, LR_DEFAULTCOLOR));
        RegionProg();
        anim++;
        if(IDB_PROGRESS+anim>LASTFRAME){
            anim=1;
        }
Прошу помочь с проблемой.

Добавлено через 1 час 13 минут
P.s.
anim объявляется как
C++
1
static int anim=1;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2014, 10:16
Ответы с готовыми решениями:

Нарды - через какое то время игры цвет консоли меняется сам по себе
Здравствуйте, написал нарды для курсовой работы, и все работает нормально, но почему через какое-то...

Сам по себе удаляется ADBlock из браузеров
Здравствуйте! Столкнулся с проблемой, где-то подцепил вирус. Своими силами пытался его удалить,...

Программа удаляется сама по себе
Здравствуйте, у меня такая проблема. Установил на свой стационарный компьютер windows server 2008,...

Содержимое папки программы удаляется сама по себе
Добрый день, у метя возникла такая ситуация. Установил на свой стационарный компьютер windows...

2
68 / 65 / 21
Регистрация: 01.05.2014
Сообщений: 247
08.06.2014, 19:29 2
Приветствую!
- вы покажите: "WndProc"
0
0 / 0 / 1
Регистрация: 28.05.2014
Сообщений: 12
11.06.2014, 18:20  [ТС] 3
oxyfat, вот:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
LRESULT CALLBACK WndProgress(HWND hProg, UINT msg, WPARAM wParam, LPARAM lParam){
    static int anim=1;    //Определяет, какой кадр рисовать
    switch(msg){
    case WM_TIMER:
        SendMessage(hProgBar, STM_SETIMAGE, IMAGE_BITMAP, 
                        (LPARAM)LoadImage(hI, MAKEINTRESOURCE(IDB_PROGRESS+anim), IMAGE_BITMAP, 
                        LENGTHX_PROGRESS, LENGTHY_PROGRESS, LR_DEFAULTCOLOR)); //Меняет кадр
        anim++; //Перейти к следующему кадру
        if(IDB_PROGRESS+anim>LASTFRAME){    //Если кадр последний, то перейти снова к первому
            anim=1;
        }
    default:
        return CallWindowProc((WNDPROC)lProgress, hProg, msg, wParam, lParam);
    }
}
Добавлено через 42 минуты
Заметил, что регион также пропадает, когда свернуть и развернуть окно.

Добавлено через 25 минут
Регион пропадает вообще всегда, когда он становится невидимым(например, когда его прикрыли другим окном).
0
11.06.2014, 18:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.06.2014, 18:20
Помогаю со студенческими работами здесь

Crossbrowse не удаляется, сам запускается
Здравствуйте. На компе стоит crossbrowse. Не дается удалиться. При запуске компа запускается сам (в...

Сам себе Iczelion
Содержание Бредисловие Iczelion Win32 API Урок 1. Основы Урок 2. MessageBox Урок 2a. Как...

Выключается сам по себе
После очистки компа от пыли (снимал кулер, проц, оперативку и видюху, так же менял термопасту). Я...

А не навред(ж)ю ли я сам себе?
Когда регистрируешься то лучше через каждые 20-30 каталогов менять описание сайта и ключевиков! ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru