GdipGetDC

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
alexmckey
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 25.04.2005 (Пн) 17:35

GdipGetDC

Сообщение alexmckey » 24.10.2006 (Вт) 17:15

после загрузки появляется полупрозрачное окно
(на чёрном фоне r=13,g=11,b=12) без следов рисования
если делать не через GdipGetDC ,
а с помощью CreateCompatibleDC и CreateDIBSection ,то всё нормально
подскажите пожалуйста ,что не так
Код: Выделить всё

Private Sub Form_Load()

Dim curWinLong As Long, _
        winSize As size, _
       srcPoint As POINTAPI, _
        myImage As Long, _
     myGraphics As Long, _
           myDc As Long, _
          blend As BLENDFUNCTION

    curWinLong = GetWindowLong(hwnd, GWL_EXSTYLE)
    SetWindowLong hwnd, GWL_EXSTYLE, curWinLong Or WS_EX_LAYERED

      me.ScaleMode = vbPixels
        winSize.cx = Me.ScaleWidth
        winSize.cy = Me.ScaleHeight

   With blend
      .AlphaFormat = AC_SRC_ALPHA
      .BlendFlags = 0
      .BlendOp = AC_SRC_OVER
      .SourceConstantAlpha = 255
   End With

GdipCreateBitmapFromScan0 winSize.cx, winSize.cy, 0, PixelFormat32bppARGB, ByVal 0, myImage
GdipGetImageGraphicsContext myImage, myGraphics
   
'''''рисование

GdipGetDC myGraphics, myDc

UpdateLayeredWindow hwnd, hDC, ByVal 0&, winSize, myDc, srcPoint, 0, blend, ULW_ALPHA

GdipReleaseDC myGraphics, myDc
GdipDeleteGraphics myGraphics
GdipDisposeImage myImage

End Sub
mckey

alexmckey
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 25.04.2005 (Пн) 17:35

Сообщение alexmckey » 25.10.2006 (Ср) 8:40

тишина. tyomitch,ау,вся надежда на тебя,выручай
mckey

alexmckey
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 25.04.2005 (Пн) 17:35

Сообщение alexmckey » 27.10.2006 (Пт) 5:37

tyomitch,помоги пожалуйста очень нужно
mckey

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.10.2006 (Пт) 10:00

tyomitch в разъезде пока.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Efiop
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 06.06.2006 (Вт) 12:14
Откуда: РК

Сообщение Efiop » 27.10.2006 (Пт) 12:19

alexmckey, выложи весь код, может кто поможет.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 27.10.2006 (Пт) 19:17

tyomitch в разъезде пока.
И в запое ;)
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 28.10.2006 (Сб) 21:58

ANDLL писал(а):
tyomitch в разъезде пока.
И в запое ;)

Вернулся :-D


GdipGetDC всегда создаёт write-only DC, залитый цветом (13,12,11), и при освобождении этого DC переносит изменения в настоящую картинку.

Из-за этой фичи, в частности, в GDI+ не работает заливка.

Выход один: пойти противоположным путём (CreateCompatibleDC + GdipCreateFromHDC)
Изображение


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

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

Сейчас этот форум просматривают: AhrefsBot, Mail.ru [бот] и гости: 6

    TopList