Глюк прорисовки списка ComboBox

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

Re: Глюк прорисовки списка ComboBox

Сообщение jangle » 30.03.2009 (Пн) 10:23

Space писал(а):ааааааааа...... я сошла с ума... Доработал код, глюк стал такой, что приводит к ненормальной работе. А что я делаю нестандартно? Открываю список через клик, а не посылкой сообщения, всё остальное тоже вполне стандартно! аааааааа!!!!!!



Space - кончай смешить народ, единственный глюк - это твое непонимание элементарных принципов работы контролов. Описанное тобой поведение СomboBox - совершенное правильное так и должно быть. Никакого глюка отрисовки нету!

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Глюк прорисовки списка ComboBox

Сообщение jangle » 30.03.2009 (Пн) 10:55

Space писал(а):А не используется такая практика, т.к. это редкая необходимость + кривой комбик, который заменяется святой троицей (кто там говорил, что заменил для себя, посмотри в топе... :))


Space - в данном случае проблема в погроммисте. Для начала рекомендую разобраться в механизме перекрытия окно в Win32. Почему происходит описанный тобой "глюк", которого на самом деле нет.
Открывая комбо (а на деле отрисовывая на родителе класс SysListView32, ведь кобик это на самом деле сочетание текстового поля, кнопки и списка) ты перекрываешь клиентской областью окно родителя. После того, как SysListView32 выгружен, что нужно сделать? Нужно отрисовать ранее перекрытую область заново, послав родителю сообщение WM_PAINT. Или как более принято в VB [форма/контрол].Refresh
Вобщем все это детский сад, который непонятно зачем надо объяснять.

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: Глюк прорисовки списка ComboBox

Сообщение awl100Alex » 30.03.2009 (Пн) 11:40

Space писал(а):ааааааааа...... я сошла с ума... Доработал код, глюк стал такой, что приводит к ненормальной работе. А что я делаю нестандартно? Открываю список через клик, а не посылкой сообщения, всё остальное тоже вполне стандартно! аааааааа!!!!!!

Код: Выделить всё
Option Explicit
Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
    ComboDelItem Combo1, KeyCode, Shift
End Sub

Private Sub Form_Load()
Dim i As Long
Combo1.Text = ""
Combo1.AddItem ""
For i = 1 To 5
Combo1.AddItem CStr(i)
Next i
End Sub
   
Public Sub ComboDelItem(Combo As ComboBox, KeyCode As Integer, Shift As Integer)
    If Shift = 2 And (KeyCode = vbKeyDelete Or KeyCode = 110) Then
     If Combo.ListIndex > 0 Then
      Combo.RemoveItem Combo.ListIndex
     End If
    End If
    'коррекция глюка
    Combo.Parent.Refresh
    Frame1.Refresh
End Sub

У меня этот твой код работает без глюков. Только Frame1.Refresh добавил и всё.

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Глюк прорисовки списка ComboBox

Сообщение Williams » 30.03.2009 (Пн) 11:49

А как в эту тему попали "картинки баянов"? :)
И вы думаете, что вас оставят в живых после прочтения этого поста?

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Глюк прорисовки списка ComboBox

Сообщение Space » 30.03.2009 (Пн) 21:35

Хакер, а у тя глюк-то имеется? А то у некоторых людей его нет, непонятно почему.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Глюк прорисовки списка ComboBox

Сообщение jangle » 30.03.2009 (Пн) 21:53

По моему, это неизлечимо :) Вроде уже и объяснили все, а все равно "глюк"

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Глюк прорисовки списка ComboBox

Сообщение Space » 30.03.2009 (Пн) 22:11

да, неизлечимо. Так у тя визуально глюк наблюдается jangle или нет?

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Глюк прорисовки списка ComboBox

Сообщение SLIM » 30.03.2009 (Пн) 23:50

Е мое, не могу на это больше смотреть!

ЭТО - стандартное поведение контрола. Так заложено в контрол изначально. Это не программисты MS не доделали, это они так сделали специально. Программисты намеренно не сделали удаление из раскрытого списка. НАМЕРЕННО. Они сели в широком кругу, и решили, что в данном контроле это не нужно. :alien: :alien: :alien: :alien: :alien: :alien:
Они знали, что появится в 2009 году Space, и сделает все как надо. Потом предложит такой контрол MS, и они его полюбому купят у него.

О, да, забыл. Этот глюк приобрел такие масштабы, что распространился по всему миру. Придется тебе спасать мир от неправильных контролов

Сорри за офф конечно
Пишите жизнь на чистовик.....переписать не удастся.....

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Глюк прорисовки списка ComboBox

Сообщение Space » 31.03.2009 (Вт) 0:41

Нет, никто не совещался. Просто было лень делать. Также как лень было делать BackColor у заголовков ListView, у скроллов контролов и другие вещи. Просто надо было сделать в первую очередь функционал и сдать, получить за него з/п. Вряд ли кто-то в Америке бесплатно лишний раз пальцем пошевелит. А на кой все эти тонкости, как полная раскраска контролов? Плевать. Теперь контролы своей серой стандартностью портят красивые скины программам. А ведь BackColor так просто сделать, всего лишь изменить уже существующий Long. И мучаемся теперь мы. Да, я - исключение из правил. Не нравится - не смотри! :)
ХА-ХА-ХА! (злорадный смех) Space всё сделал. Решение оказалось таким банальным... Мдя... Хорошая мысля приходит опосля... ХА-ХА-ХА...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Глюк прорисовки списка ComboBox

Сообщение Хакер » 31.03.2009 (Вт) 1:08

Также как лень было делать BackColor у заголовков ListView, у скроллов контролов и другие вещи.

Ты гонишь что-ли? Всё это должно быть такого цвета, какой пользователь выставил в настройках темы, а не такого, какой хочется какому-то дебилу-программисту.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Глюк прорисовки списка ComboBox

Сообщение SLIM » 31.03.2009 (Вт) 1:10

Было было совещаение. Я точно знаю. Спроси у Гайдара, он тебе расскажет

тебе знаешь что надо...ты возьми-ка какую-нибудь студию, и это, напиши на голом API какое-нибудь приложение. Поможет
Пишите жизнь на чистовик.....переписать не удастся.....

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Глюк прорисовки списка ComboBox

Сообщение Space » 31.03.2009 (Вт) 1:35

Хакер, это если твоё окно стандартное как двери, и не имеет своего стиля. При разработке красивых игр ты тоже делаешь стандартные скроллы на фоне красочного скина? Или же ты ложишь текстбокс без скроллов и паришься созданием своих скроллов? И не надо обзываться!

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Глюк прорисовки списка ComboBox

Сообщение SLIM » 31.03.2009 (Вт) 1:43

Не дай боже чтобы создатели винды были именно такими
Пишите жизнь на чистовик.....переписать не удастся.....

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Глюк прорисовки списка ComboBox

Сообщение Хакер » 31.03.2009 (Вт) 1:44

При разработке красивых игр (развлекательного софта) контролы и оконная подсистема Windows не используется вообще.

Поскольку в топике не наблюдается продуктивного общения, а наблюдается только пропаганда со стороны Space своих заблуждений и нездоровых взглядов на UI-дизайн, топик закрывается.

Кстати, у нас есть легендарный пользователь Pantalone, котому глюки виделись всюду в VB6. Так вот, ему запретили создавать в этом разделе подобные топики. Если у Pantalone появится последователь, которому будет казаться, что стандартные контролы переполнены глюками, и который будет постоянно об этом кричать, к нему (последователю), возможно, будет применена похожая мера.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Пред.

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

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

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

    TopList  
cron