Başlıksız Userform'da Minimize Maksimize Komutu Vermek

Katılım
7 Nisan 2011
Mesajlar
17
Excel Vers. ve Dili
2003
Başlıksız Userform'da Minimize ve Maksimize Komutu Vermek

Merhaba,
Bilgisayarda işlem yaparken formu kapatmadan işimi halledip tekrar formu açabilmenin yolunu bulmaya çalışıyorum. Ancak bu konuda verilmiş bütün örnekler başlıklı userform için. Benimse kullandığım userform başlıksız bu nedenle örneklerde verilen kodlar işime yaramıyor.Başlıksız bir userformda, formun üzerine ekleyeceğimiz bir butona, minimize maksimize komutu verdirebilmek mümkünmüdür acaba?

Gerçek Minimize: Minimize Buttona bastıktan sonra Userform Görev Çubuğu'na geçsin.
Doğru Maksimize: Maksimize Buttona basınca bütün ekran boyu değilde, Ekran büyüklüğüne göre Görev Çubuğu'nun üstüne kadar büyüsün.

Userform açıldığında nasıl olmasını istediğimi resimlerlerle açıklıyorum:

Böyle Olmamalı:
Böyle Olmamalı Userform Görev Çubuğu'nu kapatıyor.jpg
Böyle Olmalı:
Böyle Olmalı Userform Görev Çubuğu'nun üstünde ve.jpg
 
Son düzenleme:
Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Selam,

yeni bir modüle:
Kod:
Public Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Userforma:
Kod:
Dim g_hForm

Private Sub UserForm_Initialize()
g_hForm = FindWindow(vbNullString, Me.Caption)
SetWindowLong g_hForm, -16, &H20000 Or &H10000 Or &H84C80080
End Sub
3 tane CommandButton var olduğunu farz edelim:

Kod:
Private Sub CommandButton1_Click()
ShowWindow g_hForm, 1 'minimize için
End Sub

Private Sub CommandButton2_Click()
ShowWindow g_hForm, 2 'simge durumu için
End Sub

Private Sub CommandButton3_Click()
ShowWindow g_hForm, 3 'maximize için
End Sub
 
Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Sorun değilde, düşündüğüm gibi olmadı.
Yazdığınız şekilde Userform başlıksız değil.
Üsteki görev çubuğu olmayacaktı.
Selam,
Ben yanlış mı anlıyorum, bilmiyorum. Benim verdiğim kodlar zaten başlıksız yapmıyor. Zaten formunuz başlıksız değil mi?

ilk mesajınızda
Benimse kullandığım userform başlıksız
demişsiniz. Userformu başlıksız yapmak için;

Kod:
Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) 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 Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" _
(ByVal hwnd As Long) As Long

Private Const WS_BORDER = &H800000
Private Const GWL_STYLE = (-16)
Kod:
Private Sub UserForm_Activate()
Dim hwnd As Long, FormStyle As Long
hwnd = FindWindowA(vbNullString, Me.Caption)
SetWindowLong hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) And Not WS_BORDER
DrawMenuBar hwnd
End Sub
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,786
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Alternatif kod

Private Declare Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Sub UserForm_Initialize()
Me.Caption = " "
Dim hWnd As Long
hWnd = FindWindowA(vbNullString, Me.Caption)
SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) Or &H35000
End Sub
 
Üst