Liste Kutusuna Yatay Kaydırma Çubuğu Eklemek!
Aralarından seçim yapabileceğimiz verileri listelemek için Liste kutularını kullanırız. Ama eminim aranızda bu kontrolün bir özelliğinden çok yakınanlarınız vardır. Bildiğiniz gibi bu kontrol yatay kaydırma çubuklarını kabul etmez. Ama artık şu meşhur Api fonksiyonlarından birini kullanarak bunun üstesinden gelebiliriz. SendMessage(hWnd%, LB_SETHORIZONTALEXTENT, wParam%, lParam&)hWnd% - Liste kutusunun kontrolünü alırwParam% - Liste kutusunun kaç piksele kadar kaydırılabileceğini tayin eder.lParam% - KullanılmazNot: Bu Api fonksiyonu sadece büyük harflerle yazılan sabitle kullanılır. Bu fonksiyonu daha iyi açıklayabilmek için üzerinde bir liste kutusu bir de komut butonu olan bir form yaratın, sonra da aşağıdaki kodları ilgili yerlere girin.
'Formun General - Declarations bölümüne yazılacak ve her sabit tek satırda olacakDeclare Function SendMessage& Lib "user" (ByVal hWnd%, ByVal wMsg%, ByVal wParam%, ByVal lParam&)Declare Function GetFocus Lib "User" () As IntegerSub Command1_Click ()Const LB_SETHORIZONTALEXTENT = &H400 + 21 'Sabitler...Const NUL = &O0ScaleMode = 3List1.SetFocusListHwnd% = GetFocus()' İlk karşımıza gelecek değişkenListString1$ = "Visual Basic"' Bu değişkeni görebilmek için ise liste kutusunu yana doğru biraz kaydırmalısınız.ListString2$ = "Center"ExtraPixels% = TextWidth(ListString2$)BoxWidth% = TextWidth(ListString1$) + 50' Liste kutumuzun boyutlarını tekrar belirleyelimList1.Move List1.Left, List1.Top, BoxWidth%' Yatak kaydırma çubuğumuzu ekleyelim ve sınırlarını çizelimX& = SendMessage(ListHwnd%, LB_SETHORIZONTALEXTENT, BoxWidth% + ExtraPixels%, NUL)' Örneğimizi liste kutusuna ekleyelim....List1.AddItem ListString1$ + ListString2$End SubBu kadar kolay!
Aralarından seçim yapabileceğimiz verileri listelemek için Liste kutularını kullanırız. Ama eminim aranızda bu kontrolün bir özelliğinden çok yakınanlarınız vardır. Bildiğiniz gibi bu kontrol yatay kaydırma çubuklarını kabul etmez. Ama artık şu meşhur Api fonksiyonlarından birini kullanarak bunun üstesinden gelebiliriz. SendMessage(hWnd%, LB_SETHORIZONTALEXTENT, wParam%, lParam&)hWnd% - Liste kutusunun kontrolünü alırwParam% - Liste kutusunun kaç piksele kadar kaydırılabileceğini tayin eder.lParam% - KullanılmazNot: Bu Api fonksiyonu sadece büyük harflerle yazılan sabitle kullanılır. Bu fonksiyonu daha iyi açıklayabilmek için üzerinde bir liste kutusu bir de komut butonu olan bir form yaratın, sonra da aşağıdaki kodları ilgili yerlere girin.
'Formun General - Declarations bölümüne yazılacak ve her sabit tek satırda olacakDeclare Function SendMessage& Lib "user" (ByVal hWnd%, ByVal wMsg%, ByVal wParam%, ByVal lParam&)Declare Function GetFocus Lib "User" () As IntegerSub Command1_Click ()Const LB_SETHORIZONTALEXTENT = &H400 + 21 'Sabitler...Const NUL = &O0ScaleMode = 3List1.SetFocusListHwnd% = GetFocus()' İlk karşımıza gelecek değişkenListString1$ = "Visual Basic"' Bu değişkeni görebilmek için ise liste kutusunu yana doğru biraz kaydırmalısınız.ListString2$ = "Center"ExtraPixels% = TextWidth(ListString2$)BoxWidth% = TextWidth(ListString1$) + 50' Liste kutumuzun boyutlarını tekrar belirleyelimList1.Move List1.Left, List1.Top, BoxWidth%' Yatak kaydırma çubuğumuzu ekleyelim ve sınırlarını çizelimX& = SendMessage(ListHwnd%, LB_SETHORIZONTALEXTENT, BoxWidth% + ExtraPixels%, NUL)' Örneğimizi liste kutusuna ekleyelim....List1.AddItem ListString1$ + ListString2$End SubBu kadar kolay!