Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Всегда сверху 
:(
    Опции темы
amt
  Дата 9.11.2004, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 26.10.2004
Где: г. Волгоград

Репутация: 3
Всего: 3



Помогите кто может.
Маленький вопросик.
Как сделать чтобы окно формы всегда было поверх остальных окон, даже при потере фокуса?
--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
Vach
Дата 9.11.2004, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 17.10.2003
Где: Санкт-Петербург

Репутация: 8
Всего: 18



Код
Option Explicit

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _
          ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, _
          ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_SHOWWINDOW = &H40

Public Sub SetFormPosition(frmHandl As Long, TopPosition As Boolean)
          If TopPosition Then
               SetWindowPos frmHandl, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_NOSIZE Or SWP_NOMOVE
          Else
               SetWindowPos frmHandl, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE
          End If
End Sub


Удачи.
PM MAIL ICQ   Вверх
Guest
Дата 11.11.2004, 14:52 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Vash,
что-то у меня не получается. Как запустить процедуру SetFormPosition, где к ней надо обратиься?
  Вверх
Mephisto
Дата 11.11.2004, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: 2
Всего: 34



Код

Private Sub Form_Load()
   SetFormPosition(frmMain.hWnd,True)
End Sub

Где frmMain название твое формы, которая должна быть поверх всех.
Чтобы полностью насладится процессом необходимо запускать сам *.exe файл.

Это сообщение отредактировал(а) Mephisto - 11.11.2004, 15:16
PM   Вверх
amt
Дата 12.11.2004, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 26.10.2004
Где: г. Волгоград

Репутация: 3
Всего: 3



Mephisto
Красота!
Спасибо!
--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
Mephisto
  Дата 17.11.2004, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: 2
Всего: 34



Цитата
Mephisto
Красота!
Спасибо!

Да это не мне спасибо. Эт я понял что Vach хотел сказать.

Хотя я бы так написал:
Код

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _
         ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, _
         ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Private Sub Form_Load()
  SetWindowPos Me.hWnd,-1,0,0,0,0,&H1 or &H2
End Sub

PM   Вверх
REVOLT
Дата 17.11.2004, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 5.4.2004
Где: г. Бузулук

Репутация: нет
Всего: нет



Цитата

Код 

Private Sub Form_Load()
  SetFormPosition(frmMain.hWnd,True)
End Sub


А по моему это должно выглядеть так

Код

Private Sub Form_Load()
  SetFormPosition frmMain.hWnd,True
End Sub


PM MAIL WWW ICQ   Вверх
cardinal
Дата 17.11.2004, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(Mephisto @ 17.11.2004, 16:55)
Хотя я бы так написал:

Код

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _
        ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, _
        ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Private Sub Form_Load()
  SetWindowPos Me.hWnd,-1,0,0,0,0,&H1 or &H2
End Sub

А я бы так:
Код

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _
        ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, _
        ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Private Sub Form_Load()
 SetWindowPos Me.hWnd,-1,0,0,0,0,&H3
End Sub
smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
amt
Дата 17.11.2004, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 26.10.2004
Где: г. Волгоград

Репутация: 3
Всего: 3



РеБята, всем С-П-А-С-И-Б-О!
Я запустил код
Цитата
Код 

Private Sub Form_Load()
  SetFormPosition(frmMain.hWnd,True)
End Sub



Где frmMain название твое формы, которая должна быть поверх всех.
Чтобы полностью насладится процессом необходимо запускать сам *.exe файл.


он работает, изменять не хочется , да и нет времени. Он работает!
Но все равно всем спасибо.
--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
REVOLT
Дата 18.11.2004, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 5.4.2004
Где: г. Бузулук

Репутация: нет
Всего: нет



amt
Цитата

Цитата 
Код 

Private Sub Form_Load()
  SetFormPosition(frmMain.hWnd,True)
End Sub



а у тебя эта строка работает
Код

SetFormPosition(frmMain.hWnd,True)


у меня отказывается? зат работает эта
Код

SetFormPosition frmMain.hWnd,True

PM MAIL WWW ICQ   Вверх
Mephisto
Дата 18.11.2004, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: 2
Всего: 34



Код

Private Sub Form_Load()
   SetWindowPos Me.hWnd,-1,0,0,0,0,&H1 or &H2
End Sub

Это правильно. У меня ВБ нет. Пишу и компилирую в уме.

Это сообщение отредактировал(а) Mephisto - 18.11.2004, 17:45
PM   Вверх
REVOLT
Дата 18.11.2004, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 5.4.2004
Где: г. Бузулук

Репутация: нет
Всего: нет



Mephisto, извиняюсь за оффтоп, хороший у тебя ум, мне бы такой... Ладно написать, так ещё ит скомпелировать надо... smile smile
PM MAIL WWW ICQ   Вверх
cardinal
Дата 18.11.2004, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Можно писать так
Код

Call SetFormPosition(frmMain.hWnd,True)

так
Код

SetFormPosition frmMain.hWnd,True

или так
Код

x = SetFormPosition(frmMain.hWnd,True)



--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Mephisto
Дата 22.11.2004, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: 2
Всего: 34



Код
Rem MiznauChemuPrisvoit=HochuFormuPoverhVseh(MouFormu.шВНД, Pravda)


Можно и так. Компилирует, но ничего не делает. Может кто найдет ошибку.
Цитата
Mephisto, извиняюсь за оффтоп, хороший у тебя ум, мне бы такой... Ладно написать, так ещё ит скомпелировать надо...

Приходится ВБ то нет. smile
Ладно, давайте закроем тему. smile
PM   Вверх
cardinal
Дата 23.11.2004, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(Mephisto @ 22.11.2004, 18:06)
Ладно, давайте закроем тему

А если кому что в голову еще придет на тему
Цитата(amt @ 9.11.2004, 21:25)
Как сделать чтобы окно формы всегда было поверх остальных окон, даже при потере фокуса?




--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.1522 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.