ShowInTaskBar

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
timsoft
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 181
Зарегистрирован: 18.10.2003 (Сб) 10:50
Откуда: Odessa, Ukraine

ShowInTaskBar

Сообщение timsoft » 18.01.2005 (Вт) 12:51

Использую одну форму в двух программах.
Как сделать, чтобы в одной программе ShowInTaskBar было True, а в другой False?
tim@ Изображение

XairOn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 324
Зарегистрирован: 19.07.2004 (Пн) 20:20
Откуда: Irkutsk region

Сообщение XairOn » 18.01.2005 (Вт) 13:05

Ну например можно по App.EXEName определять какая прога открыла форму и в зависимости от этого True или False

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 18.01.2005 (Вт) 13:06

установи в True или False

или я что-то не понял?
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

timsoft
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 181
Зарегистрирован: 18.10.2003 (Сб) 10:50
Откуда: Odessa, Ukraine

Сообщение timsoft » 18.01.2005 (Вт) 13:13

Дело в том, что ShowInTaskBar изменить можно только в design-time
А мне надо в run-time менять это дело. Хотелось бы в Sub Main или Form_Load
Последний раз редактировалось timsoft 18.01.2005 (Вт) 13:14, всего редактировалось 1 раз.
tim@ Изображение

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 18.01.2005 (Вт) 13:13

Одна форма это конечно хорошо, но лично я практикую хранить данный экземпляр вместе с проектом. На случай модификации - сделаешь изменения, а через пол года старая программа сбойнет.

сделай ее копию.
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

timsoft
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 181
Зарегистрирован: 18.10.2003 (Сб) 10:50
Откуда: Odessa, Ukraine

Сообщение timsoft » 18.01.2005 (Вт) 13:20

kif писал(а):Одна форма это конечно хорошо, но лично я практикую хранить данный экземпляр вместе с проектом.


Это и есть один проект, просто для разных уровней доступа используются разные модули. Например, склад пополняет кладовщик. Ему нужен доступ только к складу. Администратор контролирует больше, у него больше форм открывается и т.д.
tim@ Изображение

Selektor
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 26.12.2006 (Вт) 13:01

Сообщение Selektor » 30.04.2008 (Ср) 20:49

Это так, для тех кто ищет. На буржуинском сайте натолкнулся. :idea:

Change the ShowInTaskbar property at runtime
The ShowInTaskbar property lets you decide whether a form is visible in Windows taskbar or not. However, this property is read-only at runtime, so it seems that you can't change this setting while the program is running. Luckly, you just need to change the window's style, using a pair of API functions, and you can stuff all the code in just one line:

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_APPWINDOW = &H40000

Private Sub Form_Load()
' hide this form from the taskbar
SetWindowLong Me.hWnd, GWL_EXSTYLE, (GetWindowLong(hWnd, _
GWL_EXSTYLE) And Not WS_EX_APPWINDOW)
End Sub
The next example demonstate that you can use the same approach to force a form to display itself in the taskbar:

Private Sub Form_Load()
' show this form on the taskbar
SetWindowLong Me.hWnd, GWL_EXSTYLE, (GetWindowLong(hWnd, _
GWL_EXSTYLE) Or WS_EX_APPWINDOW)
End Sub
Notice that changing the form's style in this way works only when the form hasn't become visible yet, so you should put this code in the Form_Load event procedure.


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

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

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

    TopList