Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / CDC::PlgBlt / 3 сообщений из 3, страница 1 из 1
14.04.2005, 07:32
    #33014771
_рубль
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CDC::PlgBlt
Делаю так, ошибки не выдает но и картинку не выводит
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
/*
На входе:
CDC* pDC
CDC* main_cdc
CRect mr
CBitmap &m_bmpBitmap_mask
*/
	POINT Punto[ 3 ];

	Punto[ 0 ].x =  30 ;
	Punto[ 0 ].y =  10 ;

	Punto[ 1 ].x =  300 ;
	Punto[ 1 ].y =  0 ;

	Punto[ 2 ].x =  0 ;
	Punto[ 2 ].y =  300 ;

	pDC->PlgBlt( Punto, main_cdc,
		     mr.left, mr.top, mr.right,mr.bottom,
                              m_bmpBitmap_mask, 0 , 0 );
Беру пустую маску, ничего...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
/*
На входе:
CDC* pDC
CDC* main_cdc
CRect mr
*/
	POINT Punto[ 3 ];
            CBitmap m_bmpBitmap_mask;

	Punto[ 0 ].x =  30 ;
	Punto[ 0 ].y =  10 ;

	Punto[ 1 ].x =  300 ;
	Punto[ 1 ].y =  0 ;

	Punto[ 2 ].x =  0 ;
	Punto[ 2 ].y =  300 ;

	pDC->PlgBlt( Punto, main_cdc,
		     mr.left, mr.top, mr.right,mr.bottom,
                              &m_bmpBitmap_mask, 0 , 0 );
Так работает.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
/*
На входе:
CDC* pDC
CDC* main_cdc
CRect mr
*/
      pDC->StretchBlt(mr.left, mr.top,
		   mr.right,mr.bottom,
		   main_cdc,
		    0 ,  0 ,
		   mr.right,mr.bottom,
		   SRCCOPY);

Что не так делаю?
Мне картинку нужно вывести с разваротом.
...
Рейтинг: 0 / 0
14.04.2005, 11:42
    #33015342
Lelikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CDC::PlgBlt
А вы попробуйте GetLastError, т.к. функция капризная, работает токо на NT/2000/XP, не на всех контекстах, к тому же ПОВОРОТ запрещен.
________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
14.04.2005, 12:09
    #33015456
_рубль
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CDC::PlgBlt
Разобрался.
С маской были проблеммы.
Вот так работает:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
void point_tr::OnDraw( CDC* pDC,CDC* main_cdc,CRect m_rect,
POINT *Punto, COLORREF cTransparent)
{
// создание маски
  CBitmap hMask;
  CDC hMaskDC;
  hMask.CreateBitmap(m_rect.right, m_rect.bottom,  1 ,  1 , NULL);
  hMaskDC.CreateCompatibleDC(pDC);
  hMaskDC.SelectObject(hMask);
  main_cdc.SetBkColor(cTransparent);
  hMaskDC.BitBlt( 0 ,  0 , m_rect.right, m_rect.bottom, main_cdc,  0 ,  0 , NOTSRCCOPY);
  hMaskDC.DeleteDC();
  
	
  pDC->PlgBlt(Punto, main_cdc, 0 , 0 ,m_rect.right,m_rect.bottom,hMask, 0 , 0 );
}
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / CDC::PlgBlt / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]