(FrameRgn или Я) глючит...

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

(FrameRgn или Я) глючит...

Сообщение Опришник » 07.05.2005 (Сб) 22:03

У меня чёта FrameRgn(m_hDC, hRgn, hBrush, I, I) работает не так как надо... возвращает 0 и соответственно не рисует ни фига...
Как такое безобразие можно исправить? :?:
А здесь могла бы быть ваша реклама...)

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 07.05.2005 (Сб) 22:30

мдя.......
А что вы хотели получить?? :?
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

Опришник
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 09.01.2005 (Вс) 0:48
Откуда: localhost

Сообщение Опришник » 07.05.2005 (Сб) 22:33

хотел бы получить результат в виде контура региона на окне...(для этого функция FrameRgn и предназначенна)
А здесь могла бы быть ваша реклама...)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 07.05.2005 (Сб) 23:06

А может мы сможем лучше понять ситуацию и помочь если вы будете так любезны и напишите что указываете в параметрах?
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Опришник
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 09.01.2005 (Вс) 0:48
Откуда: localhost

Сообщение Опришник » 07.05.2005 (Сб) 23:13

Код: Выделить всё

    Dim R As RECT
    tmp = GetWindowRect(hWnd, R)
    Dim m_hDC&, hDC&, hRgn&
    m_hDC = Me.hDC
    hDC = GetWindowDC(hWnd)
    hRgn = CreateRectRgnIndirect(R)
    tmp = GetWindowRgn(hWnd, hRgn)
    If tmp Then
        tmp = OffsetRgn(hRgn, R.Left, R.Top)
    End If
    tmp = SetWindowRgn(Me.hWnd, hRgn, True)

    Dim hBrush&, I&
   
    For I = 32 To 1 Step -1
        hBrush = CreateSolidBrush((I - 1) * &H80808)
        tmp = SelectObject(m_hDC, hBrush)
        tmp = FrameRgn(m_hDC, hRgn, hBrush, I, I)
        tmp = DeleteObject(hBrush)
    Next

    Picture = Image
   
    tmp = ReleaseDC(hWnd, hDC)
А здесь могла бы быть ваша реклама...)

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 08.05.2005 (Вс) 1:15

Опришник

Дебагер в зубы и вперед... реанимировать.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Опришник
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 09.01.2005 (Вс) 0:48
Откуда: localhost

Сообщение Опришник » 08.05.2005 (Вс) 1:32

Ага, вот тока писал тоже самое(а может не совсем тоже) пару часов назад, работало...
А здесь могла бы быть ваша реклама...)

Опришник
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 09.01.2005 (Вс) 0:48
Откуда: localhost

Сообщение Опришник » 08.05.2005 (Вс) 9:49

всё перепробовал, ни фига не работает...
я вот думаю что может я не правильно пользуюсь функцией?
у меня регион окна - это регион, контур которого нада на окне нарисовать...
а может FrameRgn рисует вокруг региона?
и оно пытаеться рисовать там где нельзя рисовать?
А здесь могла бы быть ваша реклама...)

Опришник
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 09.01.2005 (Вс) 0:48
Откуда: localhost

Сообщение Опришник » 08.05.2005 (Вс) 10:01

НАШЁЛ БАГ!!!
попробовал закоментировать SetWindowRgn, всё заработало как надо(контур нарисовался внутри региона, как и надо было),
потом разместил SetWindowRgn после всех этих прорисовок, и всё заработало; результат - окно нужной формы с градиентной рамкой...(с белым фоном)
А здесь могла бы быть ваша реклама...)

Опришник
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 09.01.2005 (Вс) 0:48
Откуда: localhost

Сообщение Опришник » 08.05.2005 (Вс) 23:57

А вот ещё проблемка...
Кто-нибудь может знает как с помощью FrameRgn рисовать инвертированную рамку?
А здесь могла бы быть ваша реклама...)


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 126

    TopList