ش | ی | د | س | چ | پ | ج |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
تابع ChooseFont :
یک کادر محاوره ای فونت ایجاد می کند که به کاربر امکان می دهد ویژگیهای یک فونت منطقی را انتخاب کند. این ویژگیها شامل یک خانواده فونت و سبک فونت مرتبط ، اندازه نقطه ، جلوه ها ( زیر خط ، خط روی کاراکتر و رنگ متن ) یک اسکریپت ( یا مجموعه کاراکتر ) است.
Boolean :
ChooseFont(lpcf)
lpcf :
نشانگری به ساختار CHOOSEFONT که حاوی اطلاعاتی است که برای مقداردهی اولیه کادر محاوره ای استفاده می شود. هنگامیکه ChooseFont بر می گرداند. این ساختار حاوی اطلاعاتی در مورد انتخاب فونت کاربر است.
حاوی اطلاعاتی است که تابع ChooseFont برای مقداردهی اولیه کادر محاوره ای فونت استفاده می کند. پس از بستن کادر محاوره ای توسط کاربر ، سیستم اطلاعات مربوط به انتخاب کاربر در این ساختار را بر می گرداند
-متد Application.hWndAccessApp :
استفاده از متد hWndAccessApp برای تعیین دستگیره معین شده توسط ویندوز به پنجره اصلی مایکروسافت اکسس
hDC :
تعیین ویژگیهای یک فونت
Private Type LOGFONT
lfHeight As Long
lfWidth As Long
lfEscapement As Long
lfOrientation As Long
lfWeight As Long
lfItalic As Byte
lfUnderline As Byte
lfStrikeOut As Byte
lfCharSet As Byte
lfOutPrecision As Byte
lfClipPrecision As Byte
lfQuality As Byte
lfPitchAndFamily As Byte
lfFaceName(LF_FACESIZE) As Byte
End Type
تابع MulDiv :
دو مقدار 32 بیتی را ضرب می کند و سپس نتیجه 64 بیتی را بر یک مقدار 32 بیتی سوم تقسیم می کند. نتیجه نهایی به نزدیکترین عدد صحیح گرد می شود.
Kernel32.lib
Private Function MulDiv(In1 As Long, In2 As Long, In3 As Long) As Long
Dim lngTemp As Long
On Error GoTo MulDiv_err
If In3 <> 0 Then
دو مقدار 32 بیتی را ضرب می کند :
lngTemp = In1 * In2
نتیجه 64 بیتی را بر یک مقدار 32 بیتی سوم تقسیم می کند :
lngTemp = lngTemp / In3
Else
lngTemp = -1
End If
MulDiv_end:
MulDiv = lngTemp
Exit Function
MulDiv_err:
lngTemp = -1
Resume MulDiv_err
End Function
تابع GetDeviceCaps :
اطلاعات مربوط به دستگاه ( Device ) را برای دستگاه مشخص شده بازیابی می کند.
Gdi32.lib
LOGPIXELSY
Number of pixels per logical inch along the screen height. In a system with multiple display monitors, this value is the same for all monitors
LF.lfHeight = -MulDiv(CLng(f.Height), GetDeviceCaps(GetDC(hWndOwner), LOGPIXELSY), 72)
StringToByte(f.Name, LF.lfFaceName())
Private Sub StringToByte(InString As String, ByteArray() As Byte) Dim intLbound As Long Dim intUbound As Long Dim intLen As Long Dim intX As Long intLbound = LBound(ByteArray) intUbound = UBound(ByteArray) intLen = LenB(InString) If intLen > intUbound - intLbound Then intLen = intUbound - intLbound For intX = 1 To intLen ByteArray(intX - 1 + intLbound) = AscB(MidB(InString, intX, 1)) Next End Sub
Dim abData() As Byte Dim Str As String Dim i As Long Str = "Hello world!" ' Convert string to bytes abData = StrConv(Str, vbFromUnicode) For i = 0 To UBound(abData) Debug.Print Hex(abData(i)); "='" & Chr(abData(i)) & "'" Next ' Convert bytes to string Str = StrConv(abData, vbUnicode) Debug.Print "'" & Str & "'"
Private Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Private Declare PtrSafe Function GetDeviceCaps Lib "gdi32" (ByVal hDC As LongPtr, ByVal nIndex As Long) As Long
Private Declare PtrSafe Function GetDC Lib "user32" (ByVal hWnd As LongPtr) As LongPtr
Private Declare PtrSafe Function ReleaseDC Lib "user32" (ByVal hWnd As LongPtr, ByVal hDC As LongPtr) As Long
Private Declare PtrSafe Function GetActiveWindow Lib "user32" () As LongPtr
Private Declare PtrSafe Function MonitorFromWindow Lib "user32" _ (ByVal hWnd As LongPtr, ByVal dwFlags As Long) As LongPtr
Private Declare PtrSafe Function GetMonitorInfo Lib "user32" Alias "GetMonitorInfoA" _ (ByVal hMonitor As LongPtr, ByRef lpMI As MONITORINFOEX) As Boolean
Private Declare PtrSafe Function CreateDC Lib "gdi32" Alias "CreateDCA" _ (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As LongPtr) As LongPtr
Private Declare PtrSafe Function DeleteDC Lib "gdi32" (ByVal hDC As LongPtr) As Long