Очень много вопросов... (+)

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

Очень много вопросов... (+)

Сообщение DDK » 20.02.2005 (Вс) 12:51

И так, т.к. никто мне толком ничего не ответил на вопрос о создании меню у компонента systray.ocx, решил я пойти другим путём. Тобиш "ломом". Хочу сделать простую форму в виде меню и потом просто "проявлять" и "прятать" её в нужном месте экрана так, что бы она была похожа на обыкновенное трей-меню. Но вот тут возникает куча вопросов:
1) Как сделать так, что бы форма была поверх таск-бара ?!
2) Как узнать положение в твипах или лучше в пикселях, где точно расположился значок, созданный SysTray.ocx ?!

И вот ещё вопрос офф-топ, но мне очень нужен ответ:
1) Как узнать макс. разрешение экрана, но ! С УЧЁТОМ таких приложений как Миранды, Аськи проч. прилипающих прог ?! Т.е. если я прилеплю Миранду или аську к правому краю десктопа, то все остальные Виндовые окна типа эксплорера и проводника (да все) будут при развёртке упираться в миранду и всё... Я понятно объяснил ?! У меня тут есть вариант - быстро развернуть форму весь экран, снять показания высоты и ширины и потом привести её в нормальный маленький вид... но вот вопрос - а не будет ли этот фокус виден на медленных машинах ?!... На Пне 4-м то это есессно не будет заметно, а вот на пне втором допустим... ?!.

И ещё последний вопрос:
У меня у главной формы [BorderStyle = 4 - FixedToolWindow], соответственно из ClipControls у меня отображаются только "Закрыть"... Вопрос:
1) А как возвернуть туда клипконтрол "Свернуть" ?
2) Как добавить туда новую свою кнопочку (именно - "GotoTray" и "?") ?! Очень НАДО !!!

ЗЫ: Заранее благодарю ! И сорьте, что так много вопросов получилось, но имхо в одно теме будет лучше их задать...
Яндекс - найдётся всё. Google - найдёт всё, что не нашёл яндекс.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 20.02.2005 (Вс) 12:56

По поводу последнего вопроса есть даже пример:

Ship
Новичок
Новичок
 
Сообщения: 35
Зарегистрирован: 15.01.2005 (Сб) 0:53

Сообщение Ship » 20.02.2005 (Вс) 13:17

У меня у главной формы [BorderStyle = 4 - FixedToolWindow], соответственно из ClipControls у меня отображаются только "Закрыть"...

Если BorderStyle = 4 нужно для того чтобы нельзя было менять размер формы, то лучше используй BorderStyle = 1, тогда можно будет добавить кнопки: ? (WhatsThisButton = True) и свернуть
(MinButton = True).

Насчет кнопки свернуть в трей скорее всего API юзать надо.

DDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 10.11.2004 (Ср) 17:55
Откуда: Moscow ct.

Сообщение DDK » 20.02.2005 (Вс) 13:22

Ship писал(а):лучше используй BorderStyle = 1

Так в том-то и фишка, что мне нужен именно этот (BorderStyle = 4) тип бордера... по дизайну подходит.
Яндекс - найдётся всё. Google - найдёт всё, что не нашёл яндекс.

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 21.02.2005 (Пн) 12:02

С такими требованиями,
я вижу только одно решение, выставить форму в ноль и прорисовать её самому...

Public Function DrawingProturberantWindow(ByVal PicBox As Object)
Dim X As Long, Y As Long, W As Long, H As Long
PicBox.BorderStyle = 0
W = PicBox.Width - 15
H = PicBox.Height - 15
PicBox.Cls
PicBox.Line (X, Y)-(W, Y), QBColor(7)
PicBox.Line (X + 15, Y + 15)-(W, Y + 15), QBColor(15)
PicBox.Line (X, Y)-(X, H), QBColor(7)
PicBox.Line (X + 15, Y + 15)-(X + 15, H), QBColor(15)
PicBox.Line (X, H)-(W, H), QBColor(0)
PicBox.Line (X + 15, H - 15)-(W - 15, H - 15), QBColor(8)
PicBox.Line (W, Y)-(W, H + 15), QBColor(0)
PicBox.Line (W - 15, Y + 15)-(W - 16, H), QBColor(8)
End Function

Дорисовать Title,buttons, MouseMove.... и т.д.
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 21.02.2005 (Пн) 12:12

На 98SE и выше есть такая фича, как градиентный заголовок. В XP-шном стиле окна рисуются вообще иначе. Может не изобретать велосипед и использовать API для рисования окон?

По вопросу 2.1 - SystemParametersInfo.
По вопросу 1.2 - tyomitch давал пример
Все остальное есть в форуме, искать надо.
Lasciate ogni speranza, voi ch'entrate.

fallen
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 06.04.2003 (Вс) 22:06

Сообщение fallen » 21.02.2005 (Пн) 12:56

по поводу 1.1 - SetWindowPos

а чтобы показывать форму как всплывающее меню, лучше узнать местоположение курсора во время нажатия мышки по иконке трея и в зависимости от этих координат располагать окно (в принципе так и действует pop-up меню, его положение зависит не от раположения иконки трея, а от курсора)


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

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

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

    TopList