vbModeless vs API

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

vbModeless vs API

Сообщение bevaine2000 » 09.08.2005 (Вт) 13:02

имеется хендл одного окна, имеется хедл второго окна, необходимо реализовать метод vbModeless, с помощью API-фунукции.
Юзер - Как выравнить содержимое переменной? Хмм...., над этим нужно задуматься...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 09.08.2005 (Вт) 15:34

* Note: In VB6 this same result can be achieved using the new second parameter of the Show command:

frmChild.Show vbModeless, frmMain


BAS Module Code

Add the following code to a BAS module:

--------------------------------------------------------------------------------

Код: Выделить всё
Option Explicit
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Copyright ©1996-2005 VBnet, Randy Birch, All Rights Reserved.
' Some pages may also contain other copyrights by the author.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Distribution: You can freely use this code in your own
'               applications, but you may not reproduce
'               or publish this code on any web site,
'               online service, or distribute as source
'               on any media without express permission.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Const GWL_HWNDPARENT = (-8)

Public Declare Function SetWindowLong Lib "user32" _
    Alias "SetWindowLongA"_
   (ByVal hwnd As Long, ByVal nIndex As Long, _
    ByVal wNewLong As Long) As Long


In the general declarations area of the floating form (not the parent form!) place all of the following code:


--------------------------------------------------------------------------------

Код: Выделить всё
Option Explicit

Private OriginalParenthWnd As Long


Private Sub Form_Load()

   OriginalParenthWnd = SetWindowLong(Me.hwnd, _
                                      GWL_HWNDPARENT, _
                                      parent.hwnd)

End Sub


Private Sub Form_Unload()

  'Restore the original parent before unloading
   Call SetWindowLong(Me.hwnd, GWL_HWNDPARENT, OriginalParenthWnd)

End Sub

bevaine2000
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 159
Зарегистрирован: 15.04.2005 (Пт) 23:45

Сообщение bevaine2000 » 09.08.2005 (Вт) 17:09

Спасибо Konst_One, выручил это то что надо :P :P :P
Юзер - Как выравнить содержимое переменной? Хмм...., над этим нужно задуматься...


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

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

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

    TopList