Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не работает GetPixel 
V
    Опции темы
Alexander777
Дата 5.1.2007, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В SDI заготовке я набрал такой код:

Код

void CTestPixelOperationsView::OnDraw(CDC* pDC)
{
    CTestPixelOperationsDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here

    COLORREF tsvet, former;
    RECT Rect;

    if((pDC->GetDeviceCaps(RASTERCAPS)&RC_BITBLT)!=RC_BITBLT) return;
    GetClientRect(&Rect);
    tsvet=RGB(0, 0, 255);
    former=pDC->SetPixel(Rect.left, Rect.top, tsvet);//возвращает 0xffffffff, но точку прорисовывает
    tsvet=pDC->GetPixel(Rect.left, Rect.top);//возвращает 0xffffffff
    
}



и GetPixel возвращает не заданное мной значение цвета, а 0xffffffff.
В чём тут может быть дело?
PM MAIL   Вверх
zkv
Дата 5.1.2007, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

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



немного модифицированный ваш код:
Код

COLORREF tsvet, former;
    RECT Rect;
    if((pDC->GetDeviceCaps(RASTERCAPS)&RC_BITBLT)!=RC_BITBLT) return;
    GetClientRect(&Rect);
    tsvet=RGB(0, 0, 255);
    TRACE("\nvisible == %d",pDC->PtVisible( Rect.left, Rect.top ));
    former=pDC->SetPixel(Rect.left, Rect.top, tsvet);//возвращает 0xffffffff, но точку прорисовывает
    TRACE("\tformer == %x",former );
    tsvet=pDC->GetPixel(Rect.left, Rect.top);//возвращает 0xffffffff
    TRACE("\ttsvet == %x",tsvet );

немного потаскаем окно туды-сюды,
в окошке Output получаем нечто подобное:
visible == 1 former == ff0000 tsvet == ff0000
visible == 0 former == ffffffff tsvet == ffffffff
visible == 1 former == ff0000 tsvet == ff0000
visible == 0 former == ffffffff tsvet == ffffffff

комментарии нужны? smile

ps (DWORD) -1 == 0xffffffff, те GetPixel или SetPixel возвращают это при ошибке

Это сообщение отредактировал(а) zkv - 6.1.2007, 05:07
PM MAIL   Вверх
Alexander777
Дата 7.1.2007, 01:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


 




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


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

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