Başlangıç > Kodlar > Visual Basic 6 ile Setparent api’si ile bir programı child yapma

Visual Basic 6 ile Setparent api’si ile bir programı child yapma

Geçen günlerden birinde VB forum’da bir arkadaş bir EXE’yi nasıl MDIChild yapacağını sormuştu.
Windows’un SetParent API’si ile handle’ı bilinen herhangi bir kontrolün (bu bir exe de olabilir) Parent nesnesi değiştirilebilir.
Ben bazen bu örneği bir formun kontrollerini başka bir formda göstermek için kullanıyorum.
VB’de bu işlem için kullanılacak kontrollerin hWnd değerini elde edebilmelisiniz.
Herhangi bir EXE veya kontrol için ise bunu yine API’ler ile elde edebilirsiniz.

Arkadaşa cevaben yazdığım örnek şuydu:


Public Declare Function FindWindow Lib “user32.dll” Alias “FindWindowA” (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function SetParent Lib “user32” (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

Public Sub MDIChildAyarla()
Dim hWndChild As Long

hWndChild = FindWindow(“SciCalc”, “Hesap Makinesi”)
If hWndChild = 0 Then
Debug.Print “Hesap Makinesi Çalışmıyor.”
Else
Dim ret As Long
ret = SetParent(hWndChild, MDIForm1.hWnd)
End If
End Sub

Burada FindWindow API’si ile çalışır durumdaki “Hesap Makinesi” bulunuyor ve bunun handle değeri alınıyor.

SetParent’in parametrelerinden ilki child yapılacak kontrolün handle değeri, diğeri de bu kontrolün child yapılacağı kontrolün handle değeri

ret = SetParent(hWndChild, MDIForm1.hWnd)

satırında “Hesap Makinesi” nin handle değeri hWndChild değişkeni ile, “Hesap Makinesi” nin CHILD yapılacağı MDIFormun handle değeri de MDIForm1.hWnd ile belirtiliyor.

Bu işlemler ile yapılabilecek örnekler bayağı geniş bir yelpazede.
Neticede yapmak istediğiniz işin bir kaç farklı yolu muhakkak vardır.

Unutulmaması gereken bir nokta ise, her objenin oluşturulduğunda farklı handle değeri alması.

Kolay Gelsin.


TD Software


Reklamlar
  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: