Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Смена рисунка Bitmap, Смена рисунка Bitmap 
:(
    Опции темы
Shiirx
Дата 7.12.2007, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 1.12.2007

Репутация: нет
Всего: нет



Ошибка вызвана:
Код

(IDB_BITMAP1+nTime)

Отсюда вопрос, как тогда менять картинки?
PM MAIL WWW   Вверх
Shiirx
Дата 8.12.2007, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 1.12.2007

Репутация: нет
Всего: нет



ВОт так написал:

Код

void CTestDlg::OnBnClickedButton2()
{
int i=IDB_BITMAP1;
static int z=1;
{
GetDlgItem(i+z)->ShowWindow(SW_HIDE);
GetDlgItem(i+z)->ShowWindow(SW_SHOW);
}
}

Так всё нормально, картинка меняется и всё хорошо, но стоит изменить:
IDB_BITMAP1 например на IDB_BITMAP2
или
z=1 на z=2; (числа могут быть другие у меня 5 картинок, как сразу ошибка выскакивает при нажатии на кнопку)
Причина не понятна...  smile  smile 
Легче родить, чем этот бред написать....
PM MAIL WWW   Вверх
mantissa
Дата 10.12.2007, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 23.10.2007

Репутация: 1
Всего: 1



стоп-стоп...
причем здесь кнопка??
 кнопки больше нету! или пущай она делает все, что угодно, но только не трогает наши BITMAPы!
Да и какой смысл прятать и показывать одну и ту же картинку.
Что там i+z, что сям... эт точно уже бред

и вообще.... у нас теперича ТАЙМЕР!!!
Система будет вызывать код         void CTestDlg::OnTimer(UINT nIDEvent) {...} каждые nnn милисек, как задано при инициализации таймера

не вижу в студии кода resource.h и кода диалога из файла ресурсов
тама д.б. инфа об 0, 1, 2 и 3 картинках
PM MAIL   Вверх
Shiirx
Дата 10.12.2007, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 1.12.2007

Репутация: нет
Всего: нет



Вот, до чего за выходные дошло:

Код

void CTestDlg::OnBnClickedButton1()
{
    static int b=0;
    if(b==0)
        {
        b+=1;
        SetTimer(1, 500, NULL);
        }
    else
        {
        b=0;
        KillTimer(1);
        }
    b=0;
    if(b==0)
        {
        b+=1;
        SetTimer(2, 1000, NULL);
        }
    else
        {
        b=0;
        KillTimer(2);
        }
    b=0;
    if(b==0)
        {
        b+=1;
        SetTimer(3, 1500, NULL);
        }
    else
        {
        b=0;
        KillTimer(3);
        }
    b=0;
    if(b==0)
        {
        b+=1;
        SetTimer(4, 2000, NULL);
        }
    else
        {
        b=0;
        KillTimer(4);
        }
    b=0;
    if(b==0)
        {
        b+=1;
        SetTimer(5, 2500, NULL);
        }
    else
        {
        b=0;
        KillTimer(5);
        }
}
void CTestDlg::OnTimer(UINT nIDEvent)
{
switch (nIDEvent)
{
case 1: GetDlgItem(IDB_BITMAP1)->ShowWindow(SW_HIDE),
GetDlgItem(IDB_BITMAP2)->ShowWindow(SW_SHOW); break;

case 2: GetDlgItem(IDB_BITMAP2)->ShowWindow(SW_HIDE),
GetDlgItem(IDB_BITMAP3)->ShowWindow(SW_SHOW); break;

case 3: GetDlgItem(IDB_BITMAP3)->ShowWindow(SW_HIDE),
GetDlgItem(IDB_BITMAP4)->ShowWindow(SW_SHOW); break;

case 4: GetDlgItem(IDB_BITMAP4)->ShowWindow(SW_HIDE),
GetDlgItem(IDB_BITMAP5)->ShowWindow(SW_SHOW); break;

case 5: GetDlgItem(IDB_BITMAP5)->ShowWindow(SW_HIDE),
GetDlgItem(IDB_BITMAP1)->ShowWindow(SW_SHOW); break;

case 6: GetDlgItem(IDB_BITMAP6)->ShowWindow(SW_HIDE),
GetDlgItem(IDB_BITMAP7)->ShowWindow(SW_SHOW); break;
}
}


Согласитесь, что код не очень, вернее таймер, как бы сделать так, чтобы всё в одном было? smile 
PM MAIL WWW   Вверх
mantissa
Дата 11.12.2007, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 23.10.2007

Репутация: 1
Всего: 1



мда.... бардак...
у меня намного проще и компактнее...
разбирайтесь:
(архив прилагается)

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  test_2.rar 38,38 Kb
PM MAIL   Вверх
Shiirx
Дата 19.12.2007, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 1.12.2007

Репутация: нет
Всего: нет



Вот какой вопрос:
Я для каждой отдельной картинки создаю свой "Picture Control", а можно как-нибудь всё в одном сделать, а то у маня анимация получается приблизительно из 100 картинок, так что...

Это сообщение отредактировал(а) zkv - 19.12.2007, 14:04
PM MAIL WWW   Вверх
KoliaMor
Дата 20.12.2007, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 11.1.2007

Репутация: нет
Всего: нет



Цитата

Код не работает, вернее вроде работает (мигает что-то) но картинка не меняется..
Может кто-нибудь, что-нибудь предложит?


Ясен пень ...

НАДА писать

Код


  if (GetDlgItem(IDB_BITMAP1)->ShowWindow(SW_SHOW))
    {
      ....
    }
 else if (GetDlgItem(IDB_BITMAP2)->ShowWindow(SW_SHOW))
    {
      ....
    } else if ...
 ......
 

 smile 

PM MAIL   Вверх
mantissa
Дата 20.12.2007, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 23.10.2007

Репутация: 1
Всего: 1



Цитата(Shiirx @  19.12.2007,  14:00 Найти цитируемый пост)
100 картинок, так что...

не вижу принципиальной разницы.... 
сэкономить можно только на 100 строчках в файле 'имя.rc'
в ресурсы все равно нужно пихать 100 рисунков 
а в таймере что так 3 строки писать, что эдак.
если хотите сэкономить на rc, 
1) заведите один контрол с первым рисунком
2) считайте коордионаты и размер этого контрола на инициализации диалога в статич.перем. RECT 
3) а на таймере придется генерировать новое имя ресурса картинки, загружать его из ресурса, разрушать предыдущее окно и создавать динамически новое и заполнять его изображением  

PM MAIL   Вверх
Shiirx
Дата 22.12.2007, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 1.12.2007

Репутация: нет
Всего: нет



Цитата

mantissa
мда.... бардак...
у меня намного проще и компактнее...
разбирайтесь:
(архив прилагается)


Чёт не разобрался... ((( А в понедельник уже сдавать надо ((
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0575 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.