Найдите ошибку, пожалуйста...

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

Найдите ошибку, пожалуйста...

Сообщение Павлуша » 07.01.2006 (Сб) 21:42

вот кусочек кода:
Код: Выделить всё

Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (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 dwRop As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

Dim hwndTB As Long
Dim hWndSB As Long
Dim hDcSB As Long
Dim mRect As RECT
Dim hDcTmp As Long
Dim hBmpTmp As Long
Dim hBmpTmp2 As Long
Dim nWidth As Long
Dim nHeight As Long
Dim sPath As String


Private Sub Form_Load()

hwndTB = FindWindow("Shell_TrayWnd", "")
hWndSB = FindWindowEx(hwndTB, 0, "button", vbNullString)

hDcSB = GetWindowDC(hWndSB)

Call GetWindowRect(hWndSB, mRect)

nWidth = mRect.Right - mRect.Left
nHeight = mRect.Bottom - mRect.Top
hDcTmp = CreateCompatibleDC(hDcSB)
hBmpTmp = CreateCompatibleBitmap(hDcTmp, nWidth, nHeight)

sPath = App.Path & "\temp.bmp"
hBmpTmp2 = SelectObject(hDcTmp, LoadPicture(sPath))
End Sub



Private Sub Form_Unload(Cancel As Integer)

hBmpTmp = SelectObject(hDcTmp, hBmpTmp2)
DeleteObject hBmpTmp
DeleteDC hDcTmp
End Sub

Private Sub tmrPaint_Timer()
Call BitBlt(hDcSB, 0, 0, nWidth, nHeight, hDcTmp, 0, 0, SRCCOPY)

End Sub



Скажите, почему вместо рисунка вылетает просто черный прямоугольник вместо кнопки пуск?

Вот рисунок:
Вложения
temp.zip
Рисунок - temp.bmp
(332 байт) Скачиваний: 20
Пошли все на фиг, я фея! :flower:

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 07.01.2006 (Сб) 21:51

Ты не объявил SRCCOPY... Либо напиши Const SRCCOPY As Long = 13369376, либо юзай vbSrcCopy вместо него
Нет меня больше

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 07.01.2006 (Сб) 21:55

A.A.Z. Нет, ошибка в отсутствии инструкции Option Explicit :lol:
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 07.01.2006 (Сб) 21:56

Это уже ошибка в ДНК (ц) ;)
Нет меня больше

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 07.01.2006 (Сб) 21:57

только Option Explicit?
такого быть не может...

блин... может!
Спасибо за помощь...
Пошли все на фиг, я фея! :flower:


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

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

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

    TopList