PUBLIC frm
frm = CREATEOBJECT("Tform")
frm.Visible = .T.
* end of main
DEFINE CLASS Tform As Form
* Icon Ids
#DEFINE IDI_APPLICATION 32512
#DEFINE IDI_ASTERISK 32516
#DEFINE IDI_ERROR 32513
#DEFINE IDI_EXCLAMATION 32515
#DEFINE IDI_HAND IDI_ERROR
#DEFINE IDI_INFORMATION IDI_ASTERISK
#DEFINE IDI_QUESTION 32514
#DEFINE IDI_WARNING IDI_EXCLAMATION
#DEFINE IDI_WINLOGO 32517
Width=400
Height=130
AutoCenter = .T.
Caption = " Drawing standard Windows Icons"
ADD OBJECT cmd As CommandButton WITH;
Caption="Draw", Width=80, Height=27
PROCEDURE Init
THIS.declare
THIS.Resize
PROCEDURE Resize
WITH THIS.cmd
.Left = Int((ThisForm.Width - .Width)/2)
.Top = THIS.Height - .Height - 20
ENDWITH
ThisForm.DrawIcons
PROCEDURE DrawIcons
THIS._draw(IDI_APPLICATION, 20,20)
THIS._draw(IDI_HAND, 60,20)
THIS._draw(IDI_QUESTION, 100,20)
THIS._draw(IDI_EXCLAMATION, 140,20)
THIS._draw(IDI_ASTERISK, 180,20)
THIS._draw(IDI_WINLOGO, 220,20)
THIS._draw(IDI_WARNING, 260,20)
THIS._draw(IDI_ERROR, 300,20)
THIS._draw(IDI_INFORMATION, 340,20)
PROTECTED PROCEDURE _draw(lnIconId, X,Y)
LOCAL hWindow, hdc, hicon
hWindow = THIS.HWnd && GetFocus() for older VFP versions
hdc = GetDC(hWindow)
hicon = LoadIcon(0, lnIconId)
IF hicon <> 0
= DrawIcon(hdc, X,Y, hicon)
ENDIF
= ReleaseDC(hWindow, hdc)
PROCEDURE declare
DECLARE INTEGER GetFocus IN user32
DECLARE INTEGER GetDC IN user32 INTEGER hWindow
DECLARE INTEGER LoadIcon IN user32;
INTEGER hInstance, INTEGER lpIconName
DECLARE SHORT DrawIcon IN user32;
INTEGER hDC, INTEGER X, INTEGER Y, INTEGER hIcon
DECLARE INTEGER ReleaseDC IN user32;
INTEGER hWindow, INTEGER hdc
PROCEDURE Paint
ThisForm.DrawIcons
PROCEDURE Moved
ThisForm.DrawIcons
PROCEDURE cmd.Click
ThisForm.DrawIcons
ENDDEFINE
|