|
Прорисовка системных иконок на форме |
|
|
Все вы знаете про функцию MsgBox (ссылка для незнающих эту функцию). При использовании этой функции вы также можете вывести одну из четырех иконок, которые заставляют пользователя обратить внимание. Данный пример как раз и позволяет вытащить системные иконки и расположить их на вашей форме. Public Enum enStockIcons
IDI_APPLICATION = 32512&
IDI_CRITICAL = 32513&
IDI_QUESTION = 32514&
IDI_EXCLAMATION = 32515&
IDI_INFORMATION = 32516&
IDI_WINLOGO = 32517&
IDI_UNKNOWN = 32518&
End Enum
Private Declare Function LoadIconApi Lib "user32" Alias "LoadIconA"
(ByVal hInstance As Long, ByVal lpIconName As Long) As Long
Private Declare Function DrawIconApi Lib "user32" Alias "DrawIcon"
(ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
Private Sub Form_Paint()
Dim hIcon As Long
'здесь вы можете определить, какую иконку
загрузить
hIcon = LoadSystemIcon(IDI_QUESTION)
If hIcon > 0 Then
'заменяя цифры 10,10 вы определяете
месторасположение иконки на форме
Call DrawIcon(Me.hdc, 10, 10, hIcon)
End If
End Sub
Public Function LoadSystemIcon(ByVal StockIcon As enStockIcons) As Long
Dim lRet As Long
lRet = LoadIconApi(0, StockIcon)
If Err.LastDllError = 0 Then
LoadSystemIcon = lRet
End If
End Function
Public Sub DrawIcon(ByVal mHdc As Long, ByVal xPos As Long, ByVal yPos As Long, ByVal
hIcon As Long)
Dim lRet As Long
lRet = DrawIconApi(mHdc, xPos, yPos, hIcon)
If (Err.LastDllError > 0) Or (lRet = 0) Then
Debug.Print "DrawIcon failed"
End If
End Sub
|
|
|
|
|
|
|