Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: WS_EX_LAYERED и про алгоритм Добавлено: 19.07.10 00:22  

Автор вопроса:  Winand | Web-сайт: winandfx.narod.ru
Создаю в VB6 всплывающие окна с помощью CreateWindowEx(WS_EX_LAYERED, "STATIC", vbNullString, WS_POPUP, l, t, w, h, 0, 0&, App.hInstance, ByVal 0&)
Однако флаг WS_EX_LAYERED корректно работает в Win7, но не в XP. В последней окно либо не отображается на экране, либо одна тень, если CS_DROPSHADOW задать. В чем проблема? Слоистое окно нужно для прозрачности по цвету и альфа-полупрозрачности.

Второй вопрос вообще тупой. Одна функция вызывает другую, а та запускает трек из плейлиста. Если трек битый или еще какая фигня, то надо перейти к следующему. Значит вторая функция снова должна вызвать первую. Выходит, если, условно говоря, 10000 левых треков, то так и стек может переполниться.
Идея только одна - запускать во второй функции таймер, который позже сам сработает и попытается перейти к следущему треку.

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #1
Добавлено: 19.07.10 02:10
А как он проверяет, что трек битый? Сразу при попытки открыть или долго пыхтит и пытается прочитать, а потом говорит, что не смог?

Если сразу, что почему бы из второй функции не попытаться открыть?
Если второе, то можно после ответа вызывать первую.

Ответить

Номер ответа: 2
Автор ответа:
 Eugy



Вопросов: 0
Ответов: 73
 Профиль | | #2 Добавлено: 19.07.10 02:15
Извини за банальность, но MSDN.
STATIC ...
".. are designed for use in dialog boxes, where the system standardizes their behavior. By using static controls outside dialog boxes, a developer increases the risk that the application might behave in a nonstandard fashion."


в Win7 оно может и работает, но наверняка только при включ. AERO. Мне сейчас не проверить.
Посему, RegisterClassEx в помощь. И не забудь lpfnWndProc.

Ответить

Номер ответа: 3
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #3 Добавлено: 19.07.10 08:38
  1. public void NavigateToTrack (int number)
  2. {
  3.     this.TrackNumber = number;
  4.     while (this.TrackNumber < this.Tracks.Count)
  5.     {
  6.         try
  7.         {
  8.             StartActiveTrack();
  9.             return;
  10.         }
  11.         catch (exception)
  12.         {
  13.             TrackNumber++;
  14.         }
  15.     }
  16. }

Ответить

Номер ответа: 4
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #4 Добавлено: 19.07.10 08:40
Любую рекурсию можно сделать циклом. Любой цикл можно сделать рекурсией (вроде бы)

Ответить

Номер ответа: 5
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #5
Добавлено: 19.07.10 15:20
Eugy, спасибо, помогло. Пришлось еще флаг WS_EX_TRANSPARENT добавить.

С треками видимо ошибка в архитектуре) Функ1 в модуле "плейлист" только выбирает треки, функ2 в основном модуле запускает треки и вызывает функ3 в плейлисте, сообщая ему о результатах запуска трека. В соответствии с текущей логикой программы функ3 должна вызвать функ1, для выбора следущего трека.
Возможно и правда сделать таймер с невысокой задержкой, запускаемый функ3. Тогда юзер сможет видеть продвижение по плейлисту (как в винампе)

Ответить

Номер ответа: 6
Автор ответа:
 UnDeAdZak



Вопросов: 80
Ответов: 476
 Профиль | | #6 Добавлено: 19.07.10 18:50
С треками попробуй сделать ,как в WindowsMediaPlayer: там если подряд несколько левых треков попадается, то он останавливается ,и выводит окошко об ошибке.

Ответить

Номер ответа: 7
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #7
Добавлено: 19.07.10 20:17
UnDeAdZak, я считаю, что окошко об ошибке - это по-<цензоред> :-)
У WMP я увидел (и стащил) только 1 неплохую идею: предпрослушивание треков. Хотя оказалось, что она мне не пригождается

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам