Не работает StretchBlt

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Не работает StretchBlt

Сообщение burik » 31.08.2007 (Пт) 21:15

Помогите люди добрые, уже мозги совсем не варят.. (а завтра в школу :) )
Вообщем есть у меня контрол (самописный). Надо на нем слева нарисовать плюсик. Делаю PictureBox с картинкой (точнее с двумя: минус и плюс). Картинки квадратные (135x135).
Объявление функции:
Код: Выделить всё

Public Declare Function StretchBlt Lib "gdi32.dll" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal hSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Public Const SRCCOPY = &HCC0020

Это в модуле.

Вот использование:
Код: Выделить всё

Retval = StretchBlt(hdc, 50, mtop + 470, 135, 135, picPM.hdc, 0, 0, 135, 135, SRCCOPY)

Функция возвращает 1, но "плюсика" я за полчаса долбания над прогой не увидел.
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 31.08.2007 (Пт) 21:53

Что есть hdc? Куда ты рисуешь?
В любом случае, что-то подсказывает мне что для ЭТОГО у тебя установлено свойство AutoRedraw=True, а надо False...
Salus populi suprema lex

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 31.08.2007 (Пт) 22:10

AutoRedraw = False
Рисую в UserControl. Написал UserControl.hdc (если тебя это так беспокоит), но результат тот же.
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 31.08.2007 (Пт) 22:27

Ещё мне не нравится mtop+470... У меня твой пример работает прекрасно, только вместо mtop+470 я ставил 0. А вообще, показывай тогда всё, вдруг там кто-то этот контрол перерисовывает...
Salus populi suprema lex

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 01.09.2007 (Сб) 17:46

Все решилось. Не могу понять что там было, но так как кода было немного, я его просто переписал и все заработало. :)
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 46

    TopList