|
| | | |
• III.2. API - Przydatne funkcje API •
- 2.1 Uniwersalna funkcja - SendMessage (...) - opis niektórych argumentów tej funkcji.
- 2.2 SetWindowPos (...) - zmiania rozmiaru okna, jego położenia w płaszczyznach XYZ oraz zmiana stylu okna.
- 2.3 Odczyt aktualnej pozycji jaką ma kursor myszy i wywołanie zdarzeń przycisków myszy.
- 2.4 GetWindow (...) - uchwyt okna w/m pozycji (Z order).
- 2.5 ShowWindow (...) - sposoby pokazywania okien.
- 2.6 GetSystemMetrics (...) - system miar i dane konfiguracyjne systemu miar.
- 2.7 GetLocaleInfo (...) - ustawienia lokalne (m.in. Panel Sterowania/Ustawienia regionalne) dotyczące liczb, waluty, godziny, daty, kraju, języka itp.
| | | | |
|
| | |
|
2.1 Uniwersalna funkcja - SendMessage (...) - opis niektórych argumentów tej funkcji.
Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" _
(ByVal hwnd As Long, _
ByVal Msg As Long, _
wParam As Any, _
lParam As Any) As Long
Zwraca wartości w zależności od użytych argumentów Msg

• Const WM_CLOSE = &H10
Powoduje zamknięcie okna
wParam = 0 ' nieużywany
lParam = 0 ' nieużywany
lRet = SendMessage(hWind, WM_CLOSE, ByVal 0&, ByVal 0&)

• Const WM_GETTEXTLENGTH = &HE
Zwraca długość tekstu okna (bez znaku końca stringu - vbNullChar)
wParam = 0 ' nieużywany
lParam = 0 ' nieużywany
lBf = SendMessage(hWind, WM_GETTEXTLENGTH, _
ByVal 0&, ByVal 0&)

• Const WM_GETTEXT = &HD
Zwraca liczbę znaków tekstu okna
wParam - liczba znaków do skopiowania
lParam - wskaźnik do buforu tekstu
'przygotuj bufor tekstu
sBfText = String(lBf + 1, vbNullChar)
lRet = SendMessage(hWind, WM_GETTEXT, _
ByVal lBf, ByVal sBfText)
sBfText = Left$(sBfText, lRet)

• Const WM_SETTEXT = &HC
Ustawia tekst okna. Przy powodzeniu zwraca TRUE, w przeciwnym wypadku FALSE
wParam = 0 ' nieużywany
lParam - wskaźnik do stringu - tekstu okna.
lRet = SendMessage(hWind, WM_SETTEXT, _
ByVal 0&, ByVal sTitleWind)

• Const WM_SETREDRAW = &HB
W zależności od parametru fRedraw zezwala, lub nie na przemalowanie obszaru okna.
wParam = fRedraw
lParam = 0 ' nieużywany
fRedraw - wartośc parametru wParam
True - zezwala na przemalowania okna
False - nie zezwala na aktualizacje okna
lRet = SendMessage(hWind, WM_SETREDRAW, _
ByVal False, ByVal 0&)

• Const BM_CLICK = &HF5
Powoduje efekt kliknięcia przycisku
wParam = 0 ' nieużywany
lParam = 0 ' nieużywany
lRet = SendMessage(hWind, BM_CLICK, _
ByVal 0&, ByVal 0&)

• Const BM_GETCHECK = &HF0
Dla przycisków typu: BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON, lub BS_3STATE - zwraca stan przycisków.
Dla przycisków innego typu zwraca ZERO
wParam = 0 ' nieużywany
lParam = 0 ' nieużywany
Const BST_UNCHECKED = &H0 | ' nie zaznaczony |
Const BST_CHECKED =&H1 | ' zaznaczony |
Const BST_INDETERMINATE = &H2 | ' nieokreślony (szary) - dla przycisku trójstanowego ' BS_3STATE lub BS_AUTO3STATE |
lRet = SendMessage(hWind, BM_GETCHECK, _
ByVal 0&, ByVal 0&)

• Const BM_SETCHECK = &HF1
Dla przycisku typu BS_CHECKBOX lub BS_RADIOBUTTON - ustawia stan przycisku. Zawsze zwraca ZERO
wParam = fCheck
lParam = 0 ' nieużywany
fCheck - wartośc parametru wParam, określa stan wyboru przycisku
Const BST_UNCHECKED = &H0 | ' nie zaznaczony |
Const BST_CHECKED =&H1 | ' zaznaczony |
Const BST_INDETERMINATE = &H2 | ' nieokreślony (szary) - dla przycisku trójstanowego ' BS_3STATE lub BS_AUTO3STATE |
lRet = SendMessage(hWind, BM_SETCHECK, _
BST_CHECKED, ByVal 0&)

• Const BM_GETSTATE = &HF2
Przyciski wszystkich typów - zwraca kombinację poniższych stałych stanu przycisku
wParam = 0 ' nieużywany
lParam = 0 ' nieużywany
Const BST_UNCHECKED = &0 | ' nie zaznaczony |
Const BST_CHECKED =&1 | ' zaznaczony |
Const BST_INDETERMINATE = &2 | ' nieokreślony (szary) - dla przycisku trójstanowego ' BS_3STATE lub BS_AUTO3STATE |
Const BST_PUSHED = &H4 | ' wciśnięty; If lRet And BST_PUSHED = TRUE |
Const BST_FOCUS = &H8 | ' posiada fokus; If lRet And BST_FOCUS = TRUE |
lRet = SendMessage(hWind, BM_GETSTATE, _
ByVal 0&, ByVal 0&)

• Const BM_SETSTATE = &HF4
Przycisk typu command button - ustawia wygląd przycisku.
Zawsze zwraca ZERO.
wParam = fState
lParam = 0 ' nieużywany
fState - wartośc parametru wParam - stan podświetlenia
fState = False - przycisk jest w stanie normalnym (nie wciśnięty),
fState = True - przycisk zostaje wciśnięty. EFEKT TYLKO WIZUALNY
lRet = SendMessage(hWind, BM_SETSTATE, _
ByVal fState, ByVal 0&)

• Const CB_GETLBTEXTLEN = &H149
Zwraca długość tekstu pozycji listy (bez znaku końca - vbNullChar).
Przy niepowodzeniu zwraca CB_ERR = (-1)
wParam - indeks pozycji listy
lParam = 0 ' nieużywany
lLen = SendMessage(hWind, CB_GETLBTEXTLEN, _
ByVal Index, ByVal 0&)

• Const CB_GETLBTEXT = &H148
Zwraca długość tekstu pozycji listy (bez znaku końca - vbNullChar).
Przy niepowodzeniu zwraca CB_ERR = (-1)
wParam - indeks pozycji listy
lParam - wskaźnik do buforu tekstu
' przygotuj bufor tekstu
sBffText = String(lLen + 1, vbNullChar)
lRet = SendMessage(hWind, CB_GETLBTEXT, _
ByVal Index, ByVal sBffText)
sBffText = Left$(sBffText, lRet)

• Const CB_GETCOUNT = &H146
Zwraca liczbę pozycji w polu listy, przy niepowodzeniu CB_ERR = (-1)
wParam = 0 ' nieużywany
lParam = 0 ' nieużywany
lRet = SendMessage(hWind, CB_GETCOUNT, _
ByVal 0&, ByVal 0&)

• Const CB_SELECTSTRING = &H14D
Zaznacza pozycję listy - zwraca indeks pozycji, przy niepowodzeniu CB_ERR = (-1)
wParam - indeks pozycji startowej do przeszukiwania, dla wParam = -1 przeszukiwanie rozpoczyna się od pozycji początkowej,
lParam - wskaźnik do poszukiwanego stringu - tekstu pozycji listy.
lRet = SendMessage(hWind, CB_SELECTSTRING, _
ByVal -1, ByVal sBfText)

• Const WM_NOTIFY = &H4E
Komunikat powiadamiający okno rodzica o zdarzeniu zachodzącym w kontrolce. Standardowe okna typu Edit, ComboBox, LlistBox, Button, ScrollBars i Static same nie wysyłają tego komunikatu.
wParam = idCtrl - Identyfikator kontrolki wysyłającej komunikat. Nie określa jednoznacznie kontrolki. Dopiero użycie hwndFrom i (lub) idFrom w strukturze NMHDR przekazane w parametrze lParam identyfikują kontrolkę.
lParam = nmh - adres do struktury NHMDR
Private Type NMHDR
hwndFrom As Long - uchwyt okna kontrolki wysyłającej powiadomienie
idFrom As Long - identyfikator kontrolki wysyłającej powiadomienie
code As Long - kod powiadamiania
End Type
• Const TCN_FIRST As Integer = -550
• Const TCN_SELCHANGE = (TCN_FIRST - 1)
Kod powiadamiający rodzica o dokonanej zmianie w kontrolce
Msg = WM_NOTIFY
wParam = idCtrl - identyfikator kontrolki
lParam = nmh - adres struktury NMHDR
nmh.hwndFrom = hSysTabCtl
nmh.idFrom = GetDlgCtrlID(hSysTabCtl)
nmh.code = TCN_SELCHANGE
lRet = SendMessage(hActiveWnd, WM_NOTIFY, _
GetDlgCtrlID(hSysTabCtl), nmh)

Komunikaty przycisków myszy
• Const WM_LBUTTONDOWN = &H201
• Const WM_LBUTTONUP = &H202
• Const WM_LBUTTONDBLCLK = &H203
• Const WM_MBUTTONDOWN = &H204
• Const WM_MBUTTONUP = &H205
• Const WM_MBUTTONDBLCLK = &H206
• Const WM_RBUTTONDOWN = &H207
• Const WM_RBUTTONUP = &H208
• Const WM_RBUTTONDBLCLK = &H209
Powyższe komunikaty są wysyłane, kiedy użytkownik wykonuje określoną akcję (naciska, zwalnia lub wykonuje podwójne kliknięcie) jeżeli kursor myszy znajduje się w obszarze okna - klienta.
Jeżeli mysz nie została przechwycona przez inne okno komunikat trafia do okna nad którym znajduje się kursor myszy. W przeciwnym wypadku komunikat jest wysyłany do okna, które przechwyciło mysz.
wParam = fwKeys -określa, jakie klawisze są wciśnięte.
Parametr ten jest kombinacją poniższych wartosci:
Const MK_LBUTTON = &H1 | ' wciśnięty lewy przycisk myszy |
Const MK_RBUTTON = &H2 | ' wciśnięty prawy przycisk myszy |
Const MK_SHIFT = &H4 | ' wciśnięty klawisz Shift |
Const MK_CONTROL = &H8 | ' wciśnięty klawisz Ctrl |
Const MK_MBUTTON = &H10 | ' wciśnięty środkowy przycisk myszy |
lParam - współrzędne jakie ma kursor myszy względem okna okna. LoWord zawiera współrzędną X, HiWord współrzędną Y. Paremetr ten przekształcany jest w strukturę POINTS.
Type POINTS
x As Integer
y As Integer
End Type

Komunikaty okna klasy TabControl
• Const TCM_FIRST = &H1300
• Const TCM_GETITEMCOUNT = TCM_FIRST + 4
Zwraca liczbę zakładek , przy niepowodzeniu zwaraca 0
wParam = 0 ' nieużywany
lParam = 0 ' nieużywany
• Const TCM_GETITEM = (TCM_FIRST + 5)
Zwraca informacje o zakładkach. Przy powodzeniu zwraca TRUE, w przeciwnym wypadku FALSE
wParam = iItem - indeks zakładki
lParam = pItem - adres do struktury TC_ITEMHEADER (lub TC_ITEM)
Private Type TC_ITEMHEADER
mask As Long
res1 As Long - zarezerwoawny
res2 As Long - zarezerwoawny
pszTxt As String - adres buforu na Tekst, zakończonego znakiem vbNullChar
cchTextMax As Long - wielkość buforu na tekst
iImage As Long - indeks obrazka zakładki, lub -1
End Type
mask - określa, która część TC_ITEMHEADER jest zwracana:
TCIF_TEXT = 1 - zwracana jest część pszText
TCIF_IMAGE - zwracana jest część iImage
TCIF_RTLREADING - tekst jest wyświetlany od prawej do lewej
• Const TCM_FIRST = &H1300
• Const TCM_SETCURSEL = (TCM_FIRST + 12)
Zaznacza określoną zakładkę. Zwraca indeks poprzednio zaznaczonej zakładki, przy niepowodzeniu zwraca -1.
Nie powiadamia rodzica o dokonanej zmianie zakładki.
wParam - indeks zakładki, która ma być zaznaczona
lParam = 0 ' nieużywany
lRet = SendMessage(hSysTabCtl, TCM_SETCURSEL, CLng(5), 0)
ΔΔΔ | | | | |
|
| | |
|
2.2 SetWindowPos (...) - zmiania rozmiaru okna, jego położenia w płaszczyznach XYZ oraz zmiana stylu okna.
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
hWnd - uchwyt okna
hWndInsertAfter - uchwyt okna które ma być bezpośrednio pod, lub jedna ze stałych HWND_BOTTOM, HWND_NOTOPMOST, HWND_TOP, HWND_TOPMOST
X - współrzędna lewej krawędzi okna
Y - współrzędna Y górnej krawędzi okna
cx - szerokość okna
cy - wysokość okna
wFlags - określa właściwości okna. Parametr ten jest kombinacją poniższych wartości:
Const HWND_TOP = 0 | ' okno jest ustawiane na górze w Z-Order |
Const HWND_BOTTOM = 1 | ' pozycja pod innymi oknami, traci status TOPMOST |
Const HWND_TOPMOST = -1 | ' pozycja pod wszystkimu oknami "NON-TOPMOST". ' utrzymuje tą pozycje także po deaktywacji okna |
Const HWND_NOTOPMOST = -2 | ' okno jest ustawiane nad wszystkimu oknami ' "NON-TOPMOST", z wyjątkiem okien "TOPMOST" |
Const SWP_NOSIZE = &H1 | ' ignorowane są argumenty: cx i cy |
Const SWP_NOMOVE = &H2 | ' ignorowane są argumenty: x i y |
Const SWP_NOOWNERZORDER = &H200 | ' nie jest zmieniana pozycja Z-Order |
Const SWP_FRAMECHANGED = &H20 | ' zostanie wysłany komunikat WM_NCCALCSIZE ' i okno zostanie odświeżone |
Const SWP_NOZORDER = &H4 | ' ignorowany jest hWndInsertAfter |
Const SWP_SHOWWINDOW = &H40 | ' pokazuje okno |
Const SWP_HIDEWINDOW = &H80 | ' ukrywa okno |
.................. | ' inne parametry |

Const MY_FLAGS As Long = _
SWP_SHOWWINDOW Or _
SWP_FRAMECHANGED Or _
SWP_NOSIZE Or _
SWP_NOOWNERZORDER Or _
SWP_NOZORDER
Dim lRet As Long
' m.in Flaga SWP_NOSIZE - nie pozwala na zmianę rozmiaru formularza pomimo wstawionych wartości argumentów cx, cy
lRet = SetWindowPos(Me.hwnd, 0&, 100&, 100&, _
300&, 300&, MY_FLAGS)
ΔΔΔ | | | | |
|
| | |
|
2.3 Odczyt aktualnej pozycji jaką ma kursor myszy i wywołanie zdarzeń przycisków myszy
Private Declare Function GetCursorPos Lib "user32" _
(lpPoint As POINTAPI) As Long
Odczytuje jaka jest aktualna pozycja kursora myszy względem współrzędnych ekranu. Przy błędzie zwraca Zero, przy powodzeniu zwraca wartość <> 0.
lpPoint - wskaźnik do struktury POINTAPI zawierającej współrzędne ekranowe kursora myszy
Private Type POINTAPI
X As Long ' współrzędna X punktu
Y As Long ' współrzędna Y punktu
End Type
Dim papi As POINTAPI
lRet = GetCursorPos (papi)
Debug.Print papi.X; papi.Y

Private Declare Function SetCursorPos Lib "user32" _
(ByVal X As Long, _
ByVal Y As Long) As Long
Przesuwa kursor myszy w nowe położenie X;Y w/m współrzędnych ekranowych. Jeżeli nowe współrzędne nie zawierają się w obszarze ekranu system automatycznie dopasowuje skrajne położenia kursora myszy.
Przy błędzie zwraca Zero, przy powodzeniu zwraca wartość <> 0.
X - nowa współrzędna X punktu,
Y - nowa współrzędna Y punktu
lRet = SetCursorPos(100, 200)

Private Declare Sub mouse_event Lib "user32.dll" _
(ByVal dwFlags As Long, _
ByVal dx As Long, _
ByVal dy As Long, _
ByVal cButtons As Long, _
ByVal dwExtraInfo As Long)
Symuluje ruch kursora myszy, lub kliknięcie przycisku myszy.
Nie zwraca żadnej wartości.
dwFlags - kombinacja stałych określa aspekt ruchu lub zdarzenia przycisku myszy MOUSEEVENTF_ABSOLUTE = &H8000 Jeżeli flaga ta nie jest ustawiona, to wartości dx i dy odnoszą się do aktualnej pozycji kursora myszy.
Jeżeli jest ustawiona to wartości dx i dy odnosza się do absolutnej pozycji, gdzie górny-lewy narożnik ma współrzędne (0,0), a dolny-prawy (65535,65535).
Const MOUSEEVENTF_MOVE = &H1 | ' zachodzi ruch myszy |
Const MOUSEEVENTF_LEFTDOWN = &H2 | ' lewy przycisk jest wciśnięty |
Const MOUSEEVENTF_LEFTUP = &H4 | ' lewy przycisk jest jest zwolniony |
Const MOUSEEVENTF_RIGHTDOWN = &H8 | ' prawy przycisk jest wciśnięty |
Const MOUSEEVENTF_RIGHTUP = &H10 | ' prawy przycisk jest jest zwolniony |
Const MOUSEEVENTF_MIDDLEDOWN = &H20 | ' środkowy przycisk jest wciśnięty |
Const MOUSEEVENTF_MIDDLEUP = &H40 | ' środkowy przycisk jest zwolniony |
Const MOUSEEVENTF_WHEEL = &H80 | ' Windows NT: Gdy mysz posiada kółko, dane ' o ruchu myszy uzyskać można z dwData |
Const WHEEL_DELTA = 120 | ' stała zwracana w dwData, że zostało ' kliknięte kółko myszy |
dwData - jeżeli w dwFlags jest ustawiony MOUSEEVENTF_WHEEL, wtedy dodatnia wartość oznacza, że kółko obracane jest do przodu; ujemne, że kółko obracane jest do tyłu (w stronę do użytkownika). Przy kliknięciu kółkiem zwracana jest wartość WHEEL_DELTA = 120
dwExtraInfo - dodatkowa 32-bitowa wartość zwracana przez funkcję GetMessageExtraInfo będąca danymi związanymi ze zdarzeniami myszy.

ΔΔΔ | | | | |
|
| | |
|
2.4 GetWindow (...) - uchwyt okna w/m pozycji (Z order).
Private Declare Function GetWindow Lib "user32" _
(ByVal hwnd As Long, _
ByVal wCmd As Long) As Long
Zwraca uchwyt okna w/g pozycji nakładających się okien (Z order), lub uchwyt właściciela (Ovner), przy niepowodzeniu zwraca Null (Zero)
hWnd - uchwyt okna
uCmd - zależność pomiędzy oknem hWnd, a oknem którego uchwyt chcemy uzyskać
Const GW_HWNDFIRST = 0 | ' zwraca uchwyt okna takiego samego typu w hierarchii, ale będące na najwyższym poziomie (Z-order), |
Const GW_HWNDLAST = 1 | ' zwraca uchwyt okna takiego samego typu w hierarchii, ale będące na najniższym poziomie (Z-order), |
Const GW_HWNDNEXT = 2 | ' zwraca uchwyt okna takiego samego typu w hierarchii, ale będące poniżej na poziomie (Z-order), |
Const GW_HWNDPREV = 3 | ' zwraca uchwyt okna takiego samego typu w hierarchii, ale będące powyżej na poziomie (Z-order), |
Const GW_OWNER = 4 | ' zwraca uchwyt okna będącego właścicielem okna, jeżeli okno takie istnieje, |
Const GW_CHILD = 5 | ' zwraca uchwyt dziecka najwyższego poziomu. Jeżeli okno (hwnd) nie jest rodzicem zwraca Null (Zero). Nie są przeszukiwane okna będące następnymi potomkami okna dziecka. |

hWind = GetWindow(Me.hwnd, GW_CHILD)
hWind = GetWindow(hWind , GW_HWNDNEXT) ' ...itd.
ΔΔΔ | | | | |
|
| | |
|
2.5 ShowWindow (...) - sposoby pokazywania okien.
Private Declare Function ShowWindow Lib "user32" _
(ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
Pokazuje okno w/g określonego stanu. Jeżeli okno było ukryte zwraca ZERO, jeżeli było widoczne zwraca wartość różną od Zera,
hWnd - uchwyt okna
nCmdShow - sposób pokazania okna
Const SW_HIDE = 0 | ' ukrywa okno i aktywuje następne |
Const SW_SHOWNORMAL = 1 | ' aktywuje i wyświetla okno, przywraca rozmiar i położenie dla okien zmaksymalizowanych lub zminimalizowanych |
Const SW_SHOWMINIMIZED = 2 | ' aktywuje i wyświetla zminimalizowane okno |
Const SW_SHOWMAXIMIZED = 3 | ' aktywuje i wyświetla zmaksymalizowane okno |
Const SW_MAXIMIZE = SW_SHOWMAXIMIZED |
Const SW_SHOWNOACTIVATE = 4 | ' wyświetla okno w ostatnim położeniu, Okno aktywne jest dalej oknem aktywnym |
Const SW_SHOW = 5 | ' aktywuje i wyświetla okno, zachowuje bieżącą wielkość i położenie |
Const SW_MINIMIZE = 6 | ' minimalizuje okno i aktywuje następne w/g Z-Order |
Const SW_SHOWMINNOACTIVE = 7 | ' wyświetla okno jako zminimalizowane, aktualnie aktywne okno jest dalej oknem aktywnym |
Const SW_SHOWNA = 8 | ' wyświetla okno zachowując bieżącą wielkość i położenie, aktywne okno jest dalej oknem aktywnym |
Const SW_RESTORE = 9 | ' aktywuje i wyświetla okno. Jeżeli okno jest zminimalizowane lub zmaksymalizowane przywracana jest oryginalna wielkość |
Const SW_SHOWDEFAULT = 10 | ' pokazuje okno w oparciu o strukturę STARTUPINFO |

lRet = ShowWindow(Me.hwnd, SW_HIDE)
ΔΔΔ | | | | |
|
| | |
|
2.6 GetSystemMetrics (...) - system miar i dane konfiguracyjne systemu miar.
Private Declare Function GetSystemMetrics Lib "user32" _
(ByVal nIndex As Long) As Long
Zwraca różne wielkości systemu miar (szerokości i wysokości wyświetlanych elementów okien) oraz inne dane konfiguracyjne systemu miar. Wszystkie wielkości odnoszące się do wielkości obiektów podawane są w pikselach.
nIndex - określa wartość jaka ma zostać zwrócona,
Const SM_CYMINTRACK = 35 | ' Minimalna wysokość ramki okna podczas zmiany rozmiaru poniżej której użytkownik nie może zmniejszyć okna |
Const SM_CXDOUBLECLK = 36 | ' Szerokość obszaru w/m pozycji kursora myszy przy pierwszym kliknięciu, aby drugie zostało uznane za podwójne kliknięcie |
Const SM_CYDOUBLECLK = 37 | ' Wysokość obszaru w/m pozycji kursora myszy przy pierwszym kliknięciu, aby drugie zostało uznane za podwójne kliknięcie |
Const SM_CXICONSPACING = 38 | ' Szerokość komórek siatki w których umieszczone zostaną ikony przy ustawianiu położenia ikon >= SM_CXICON |
Const SM_CYICONSPACING = 39 | ' Wysokość komórek siatki w których umieszczone zostaną ikony przy ustawianiu położenia ikon >= SM_CYICON |
Const SM_MENUDROPALIGNMENT = 40 | ' TRUE lub <> 0 jeżeli rozwijane menu jest wyrównywane do prawej w/m odpowiadającego menu, zwraca FALSE lub = 0 jeżeli do lewej |
Const SM_PENWINDOWS = 41 | ' TRUE lub <> 0 (uchwyt pióra) jeżeli załadowane jest pióro, FALSE lub 0 w przeciwnym wypadku |
Const SM_DBCSENABLED = 42 | ' TRUE lub <> 0 jeżeli ustawiona jest obsługa znaków dwubajtowych (DBCS), FALSE lub 0 w przeciwnym wypadku |
Const SM_CMOUSEBUTTONS = 43 | ' liczba przycisków myszy, Zero jeżeli brak myszy |
Const SM_CMETRICS = 44 | ' Win 95/98: zwraca liczbę (numer) systemu miar. |
Const SM_SECURE = 44 | ' TRUE jeżeli jest system zabezpieczeń, w przeciwnym wypadku FALSE |
Const SM_CXEDGE = 45 | ' Szerokość obramowania 3-D okna |
Const SM_CYEDGE = 46 | ' Wysokość obramowania 3-D okna |
Const CXMINSPACING = 47 | ' Szerokość komórek siatki w których umieszczone zostaną zminimalizowane okna >= SM_CXMINIMIZED |
Const SM_CYMINSPACING = 48 | ' Wysokość komórek siatki w których umieszczone zostaną zminimalizowane okna >= SM_CYMINIMIZED. |
Const SM_CXSMICON = 49 | ' Szerokość małej ikony |
Const SM_CYSMICON = 50 | ' Wysokość małej ikony |
Const CYSMCAPTION = 51 | ' Wysokość małego paska tytułowego okna |
Const SM_CXSMSIZE = 52 | ' Szerokość małego przycisku Min/Max/X |
Const SM_CYSMSIZE = 53 | ' Wysokość małego przycisku Min/Max/X |
Const SM_CXMENUSIZE = 54 | ' Szerokość przycisku w menu (np. przycisk zamknij okna dziecka) w wielodokumentowych interfejsach |
Const SM_CYMENUSIZE = 55 | ' Wysokość przycisku w menu (np. przycisk zamknij okna dziecka) w wielodokumentowych interfejsach |
Const SM_ARRANGE = 56 | ' Pozycja początkowa i kierunek w jaki system ustawia zminimalizowane okna |
' • Pozycja początkowa: |
Const ARW_BOTTOMLEFT = 0 | ' od dolnego lewego narożnika ekranu (domyślne ustawienie) |
Const ARW_BOTTOMRIGHT = 1 | ' od dolnego prawego narożnika ekranu |
Const ARW_TOPLEFT = 2 | ' od górnego lewego narożnika ekranu |
Const ARW_TOPRIGHT = 3 | ' od górnego prawego narożnika ekranu |
Const ARW_HIDE = 8 | ' okna są ukrywane |
' • Kierunek: |
Const ARW_DOWN = 4 | ' w dół |
Const ARW_LEFT = 0 | ' w lewo |
Const ARW_RIGHT = 4 | ' w prawo |
Const ARW_UP = 0 | ' w górę |
Const ARW_STARTRIGHT = ARW_BOTTOMRIGHT |
Const ARW_STARTTOP = ARW_TOPLEFT |
Const SM_CXMINIMIZED = 57 | ' Szerokość obszaru do którego dopasowane zostaje zminimalizowane okno |
Const SM_CYMINIMIZED = 58 | ' Wysokość obszaru do którego dopasowane zostaje zminimalizowane okno |
Const SM_CXMAXTRACK = 59 | ' Maksymalna szerokość ramki okna podczas zmiany rozmiaru, powyżej której użytkownik nie może powiększyć okna |
Const SM_CYMAXTRACK = 60 | ' Maksymalna wysokość ramki okna podczas zmiany rozmiaru, powyżej której użytkownik nie może powiększyć okna |
Const SM_CXMAXIMIZED = 61 | ' Domyślna szerokość okna najwyższego poziomu do jakiej można je zmaksymalizować |
Const SM_CYMAXIMIZED = 62 | ' Domyślna wysokość okna najwyższego poziomu do jakiej można je zmaksymalizować |
Const SM_NETWORK = 63 | ' Najmniej znaczący bit jest ustawiany dla pracy w sieci, w przeciwnym wypadku jest zerowany |
Const SM_CLEANBOOT = 67 | ' Sposób uruchomienia systemy 0 - normalny; 1 - bezpieczny; 2 - bezpieczny (sieciowy) |
Const SM_CXDRAG = 68 | ' Szerokość obszaru rozpoczęcia przeciągania (zmiany wielkości) okna |
Const SM_CYDRAG = 69 | ' Wysokość obszaru rozpoczęcia przeciągania (zmiany wielkości) okna |
Const SM_SHOWSOUNDS = 70 | ' TRUE or nonzero if the user requires an application to present information visually in situations where it would otherwise present the information only in audible form; FALSE, or zero, otherwise. |
Const SM_CXMENUCHECK = 71 | ' Domyślna szerokość pola wyboru w odniesieniu do bitmapy menu |
Const SM_CYMENUCHECK = 72 | ' Domyślna wysokość pola wyboru w odniesieniu do bitmapy menu |
Const SM_SLOWMACHINE = 73 | ' TRUE jeżeli komputer posiada za wolny procesor, w przeciwnym wypadku FALSE |
Const SM_MIDEASTENABLED = 74 | ' TRUE jeżeli system nie obsługuje języka hebrajskiego i arabskiego |
' • Począwszy od Windows NT 4.0 i Windows 98 |
Const SM_MOUSEWHEELPRESENT = 75 | ' TRUE lub <> 0 jeżeli zainstalowana jest obsługa kółka myszy, w przeciwnym wypadku FALSE lub Zero |
' • Począwszy od Windows NT 5.0 i Windows 98 |
Const SM_XVIRTUALSCREEN 76 | ' Położenie lewej krawędzi wirtualnego ekranu |
Const SM_YVIRTUALSCREEN 77 | ' Położenie górnej krawędzi wirtualnego ekranu |
Const SM_CXVIRTUALSCREEN 78 | ' Szerokość wirtualnego ekranu |
Const SM_CYVIRTUALSCREEN 79 | ' Wysokość wirtualnego ekranu |
Const SM_CMONITORS 80 | ' Ilość monitorów (ekranów) na pulpicie |
Const SM_SAMEDISPLAYFORMAT 81 | ' TRUE jeżeli wszystkie monitory (ekrany) mają ustawiony taki sam format wyświetlania kolorów |

lRet = GetSystemMetrics(SM_CYSMICON)
ΔΔΔ | | | | |
|
| | |
|
2.7 GetLocaleInfo (...) - ustawienia lokalne (m.in. Panel Sterowania/Ustawienia regionalne) dotyczące liczb, waluty, godziny, daty, kraju, języka itp.
Private Declare Function GetLocaleInfo Lib "kernel32" _
Alias "GetLocaleInfoA" _
(ByVal Locale As Long, _
ByVal LCType As Long, _
ByVal lpLCData As String, _
ByVal cchData As Long) As Long
Private Const LOCALE_USER_DEFAULT = &H400
Private Const LOCALE_SYSTEM_DEFAULT = &H800
Private Const LOCALE_NEUTRAL = &H0

' Zwraca ilość znaków zapisanych do docelowego buforu lpLCData, jeżeli parametr cchData równa sie ZERO, zwraca wielkość buforu potrzebnego na przyjęcie zwracanej wartości.
' lpLCData zawiera zwracaną wartość ustawień lokalnych (m.in. Panel Sterowania/Ustawienia Regionalne) dotyczących: liczby, waluty, godziny, daty, kraju, języka itp.
Const LOCALE_ILANGUAGE = &H1 | 'language ID |
Const LOCALE_SLANGUAGE = &H2 | 'localized name of language |
Const LOCALE_SENGLANGUAGE = &H1001 | 'English name of language |
Const LOCALE_SABBREVLANGNAME = &H3 | 'abbreviated language name |
Const LOCALE_SNATIVELANGNAME = &H4 | 'native name of language |
Const LOCALE_ICOUNTRY = &H5 | 'country code |
Const LOCALE_SCOUNTRY = &H6 | 'localized name of country |
Const LOCALE_SENGCOUNTRY = &H1002 | 'English name of country |
Const LOCALE_SABBREVCTRYNAME = &H7 | 'abbreviated country name |
Const LOCALE_SNATIVECTRYNAME = &H8 | 'native name of country |
Const LOCALE_IDEFAULTLANGUAGE = &H9 | 'default language id |
Const LOCALE_IDEFAULTCOUNTRY = &HA | 'default country code |
Const LOCALE_IDEFAULTCODEPAGE = &HB | 'default code page |
Const LOCALE_SLIST = &HC | 'list item separator |
Const LOCALE_IMEASURE = &HD | 'metric system |
Const LOCALE_SDECIMAL = &HE | 'decimal separator |
Const LOCALE_STHOUSAND = &HF | 'thousand separator |
Const LOCALE_SGROUPING = &H10 | 'digit grouping |
Const LOCALE_IDIGITS = &H11 | 'number of fractional digits |
Const LOCALE_ILZERO = &H12 | 'leading zeros for decimal |
Const LOCALE_SNATIVEDIGITS = &H13 | 'native ascii 0-9 |
Const LOCALE_SCURRENCY = &H14 | 'local monetary symbol |
Const LOCALE_SINTLSYMBOL = &H15 | 'international monetary symbol |
Const LOCALE_SMONDECIMALSEP = &H16 | 'monetary decimal separator |
Const LOCALE_SMONTHOUSANDSEP = &H17 | 'monetary thousand separator |
Const LOCALE_SMONGROUPING = &H18 | 'monetary grouping |
Const LOCALE_ICURRDIGITS = &H19 | 'local monetary digits |
Const LOCALE_IINTLCURRDIGITS = &H1A | 'international monetary digits |
Const LOCALE_ICURRENCY = &H1B | 'positive currency mode |
Const LOCALE_INEGCURR = &H1C | 'negative currency mode |
Const LOCALE_SDATE = &H1D | 'date separator |
Const LOCALE_STIME = &H1E | 'time separator |
Const LOCALE_SSHORTDATE = &H1F | 'short date format string |
Const LOCALE_SLONGDATE = &H20 | 'long date format string |
Const LOCALE_STIMEFORMAT = &H1003 | 'time format string |
Const LOCALE_IDATE = &H21 | 'short date format ordering |
Const LOCALE_ILDATE = &H22 | 'long date format ordering |
Const LOCALE_ITIME = &H23 | 'time format specifier |
Const LOCALE_ICENTURY = &H24 | 'century format specifier |
Const LOCALE_ITLZERO = &H25 | 'leading zeros in time field |
Const LOCALE_IDAYLZERO = &H26 | 'leading zeros in day field |
Const LOCALE_IMONLZERO = &H27 | 'leading zeros in month field |
Const LOCALE_S1159 = &H28 | 'AM designator |
Const LOCALE_S2359 = &H29 | 'PM designator |
Const LOCALE_SDAYNAME1 = &H2A | 'long name for Monday |
Const LOCALE_SDAYNAME2 = &H2B | 'long name for Tuesday |
Const LOCALE_SDAYNAME3 = &H2C | 'long name for Wednesday |
Const LOCALE_SDAYNAME4 = &H2D | 'long name for Thursday |
Const LOCALE_SDAYNAME5 = &H2E | 'long name for Friday |
Const LOCALE_SDAYNAME6 = &H2F | 'long name for Saturday |
Const LOCALE_SDAYNAME7 = &H30 | 'long name for Sunday |
Const LOCALE_SABBREVDAYNAME1 = &H31 | 'abbreviated name for Monday |
Const LOCALE_SABBREVDAYNAME2 = &H32 | 'abbreviated name for Tuesday |
Const LOCALE_SABBREVDAYNAME3 = &H33 | 'abbreviated name for Wednesday |
Const LOCALE_SABBREVDAYNAME4 = &H34 | 'abbreviated name for Thursday |
Const LOCALE_SABBREVDAYNAME5 = &H35 | 'abbreviated name for Friday |
Const LOCALE_SABBREVDAYNAME6 = &H36 | 'abbreviated name for Saturday |
Const LOCALE_SABBREVDAYNAME7 = &H37 | 'abbreviated name for Sunday |
Const LOCALE_SMONTHNAME1 = &H38 | 'long name for January |
Const LOCALE_SMONTHNAME2 = &H39 | 'long name for February |
Const LOCALE_SMONTHNAME3 = &H3A | 'long name for March |
Const LOCALE_SMONTHNAME4 = &H3B | 'long name for April |
Const LOCALE_SMONTHNAME5 = &H3C | 'long name for May |
Const LOCALE_SMONTHNAME6 = &H3D | 'long name for June |
Const LOCALE_SMONTHNAME7 = &H3E | 'long name for July |
Const LOCALE_SMONTHNAME8 = &H3F | 'long name for August |
Const LOCALE_SMONTHNAME9 = &H40 | 'long name for September |
Const LOCALE_SMONTHNAME10 = &H41 | 'long name for October |
Const LOCALE_SMONTHNAME11 = &H42 | 'long name for November |
Const LOCALE_SMONTHNAME12 = &H43 | 'long name for December |
Const LOCALE_SMONTHNAME13 = &H100E | 'long name for 13th month |
Const LOCALE_SABBREVMONTHNAME1 = &H44 | 'abbreviated name for January |
Const LOCALE_SABBREVMONTHNAME2 = &H45 | 'abbreviated name for February |
Const LOCALE_SABBREVMONTHNAME3 = &H46 | 'abbreviated name for March |
Const LOCALE_SABBREVMONTHNAME4 = &H47 | 'abbreviated name for April |
Const LOCALE_SABBREVMONTHNAME5 = &H48 | 'abbreviated name for May |
Const LOCALE_SABBREVMONTHNAME6 = &H49 | 'abbreviated name for June |
Const LOCALE_SABBREVMONTHNAME7 = &H4A | 'abbreviated name for July |
Const LOCALE_SABBREVMONTHNAME8 = &H4B | 'abbreviated name for August |
Const LOCALE_SABBREVMONTHNAME9 = &H4C | 'abbreviated name for September |
Const LOCALE_SABBREVMONTHNAME10 = &H4D | 'abbreviated name for October |
Const LOCALE_SABBREVMONTHNAME11 = &H4E | 'abbreviated name for November |
Const LOCALE_SABBREVMONTHNAME12 = &H4F | 'abbreviated name for December |
Const LOCALE_SABBREVMONTHNAME13 = &H100F | 'abbreviated name for 13th month |
Const LOCALE_SPOSITIVESIGN = &H50 | 'positive sign |
Const LOCALE_SNEGATIVESIGN = &H51 | 'negative sign |
Const LOCALE_IPOSSIGNPOSN = &H52 | 'positive sign position |
Const LOCALE_INEGSIGNPOSN = &H53 | 'negative sign position |
Const LOCALE_IPOSSYMPRECEDES = &H54 | 'monetary symb. precedes pos. amount |
Const LOCALE_IPOSSEPBYSPACE = &H55 | 'monetary symb. sep. by space from pos. amount |
Const LOCALE_INEGSYMPRECEDES = &H56 | 'monetary symb. precedes neg. amount |
Const LOCALE_INEGSEPBYSPACE = &H57 | 'monetary symb. sep. by space from neg. amount |
Const LOCALE_SSORTNAME = &H1013 | 'full localized name of the sort (locale ID) |
Const LOCALE_INEGNUMBER = &H1010 | 'negative number mode |
Const LOCALE_SENGCURRNAME = &H1007 | 'full English name currency associated |
Const LOCALE_SNATIVECURRNAME = &H1008 | 'native name currency associated |
Const LOCALE_SYEARMONTH = &H1006 | 'Year/Month formatting string for the locale |
Const LOCALE_ICALENDARTYPE = &H1009 | 'Current calendar type |
Const LOCALE_IOPTIONALCALENDAR = &H100B | 'Additional calendar types |
Const LOCALE_IFIRSTDAYOFWEEK = &H100C | 'first day in a week |
Const LOCALE_IFIRSTWEEKOFYEAR = &H100D | 'first week of the year |
Const LOCALE_IPAPERSIZE = &H100A | 'Default paper size associated |
Const LOCALE_IDEFAULTEBCDICCODEPAGE = &H1012 | 'default EBCDIC code page associated |

' przykładowe wywołanie:
Private Sub btnTest_Click()
Dim sBff As String
Dim lRet As Long
' pobierz wielkość buforu
lRet = GetLocaleInfo(LOCALE_USER_DEFAULT, _
LOCALE_SLANGUAGE, _
vbNullChar, 0&)
' przygotuj bufor
sBff = String(lRet, vbNullChar)
lRet = GetLocaleInfo(LOCALE_USER_DEFAULT, _
LOCALE_SLANGUAGE, _
sBff, lRet)
If lRet = 0 Then
MsgBox "Błąd odczytu !"
Else
MsgBox Left$(sBff, lRet - 1)
End If
End Sub
ΔΔΔ | | | | |
|
| |