📄 uo_xpbutton.sru
字号:
$PBExportHeader$uo_xpbutton.sru
forward
global type uo_xpbutton from commandbutton
end type
type rect from structure within uo_xpbutton
end type
type newmessage from structure within uo_xpbutton
end type
type bitmapinfoheader from structure within uo_xpbutton
end type
type rgbquad from structure within uo_xpbutton
end type
type bitmapinfo from structure within uo_xpbutton
end type
end forward
type rect from structure
long left
long top
long right
long bottom
end type
type NewMessage from structure
Long hWnd
Long uMsg
Long wParam
Long lParam
Boolean Cancel
end type
Type BITMAPINFOHEADER from structure
Long biSize
Long biWidth
Long biHeight
Long biPlanes
Integer biBitCount
Long biCompression
Long biSizeImage
Long biXPelsPerMeter
Long biYPelsPerMeter
Long biClrUsed
Long biClrImportant
End Type
Type RGBQUAD from structure
Uint rgbBlue
Uint rgbGreen
Uint rgbRed
Uint rgbReserved
End Type
Type BITMAPINFO from structure
BITMAPINFOHEADER bmiHeader
RGBQUAD bmiColors[]
End Type
global type uo_xpbutton from commandbutton
integer width = 457
integer height = 128
integer textsize = -9
integer weight = 400
fontcharset fontcharset = ansi!
fontpitch fontpitch = variable!
fontfamily fontfamily = swiss!
string facename = "Arial"
string text = "none"
event ue_paint pbm_paint
event ue_keydown pbm_keydown
event ue_keyup pbm_keyup
event ue_mousedown pbm_lbuttondown
event ue_mousemove pbm_mousemove
event uo_mouseup pbm_lbuttonup
event ue_enable pbm_enable
event ue_resize pbm_size
event readme ( )
end type
global uo_xpbutton uo_xpbutton
type prototypes
// 作者: 张学禹 日期: 2003-9-19
//为当前的应用程序释放鼠标捕获
Function ulong ReleaseCapture() LIBRARY "user32.dll"
//将鼠标捕获设置到指定的窗口
Function ulong SetCapture(ulong hwnd) LIBRARY "user32.dll"
//指定的窗口将鼠标捕获
function ulong GetCapture() library "user32.dll"
//该函数在指定的矩形里写入格式化文本
Function ulong DrawText(ulong hd,ref string lpStr,ulong nCount,ref RECT lpRect,ulong wFormat) LIBRARY "user32.dll" ALIAS FOR "DrawTextA"
//画一个焦点矩形
Function ulong DrawFocusRect(ulong hd,ref RECT lpRect) LIBRARY "user32.dll"
// 设置指定矩形的内容
Function ulong SetRect(ref RECT lpRect,ulong X1,ulong Y1,ulong X2,ulong Y2) LIBRARY "user32.dll"
//将矩形lpRect设为一个空矩形(所有字段都为空)
Function ulong SetRectEmpty(ref RECT lpRect) LIBRARY "user32.dll"
//该函数用指定的画刷为指定的矩形画边框
Function ulong FrameRect(ulong hd,ref RECT lpRect,ulong hBrush) LIBRARY "user32.dll"
//从指定窗口的结构中取得信息
FUNCTION uLong GetWindowuLong(uLong hwnd, uLong nIndex) Alias For GetWindowLongA LIBRARY "USER32.DLL"
//在窗口结构中为指定的窗口设置信息
FUNCTION uLong SetWindowuLong(uLong hwnd, uLong nIndex,uLong dwNewLong) Alias For SetWindowLongA LIBRARY "USER32.DLL"
//该函数CallWindowProc将消息信息传送给指定的窗口过程
Function ulong CallWindowProc(ulong lpPrevWndFunc,ulong hWnd,ulong Msg,ulong wParam,ulong lParam) LIBRARY "user32.dll" ALIAS FOR "CallWindowProcA"
//该函数从给定窗口的属性列表中检索数据句柄
Function ulong GetProp(ulong hwnd,ref string lpString) LIBRARY "user32.dll" ALIAS FOR "GetPropA"
//该函数在指定窗口的属性表中增加一个新项,或者修改一个现有项。
Function ulong SetProp(ulong hwnd,ref string lpString,ulong hData) LIBRARY "user32.dll" ALIAS FOR "SetPropA"
//该函数从指定的窗口的属性表中删除一项。指定的字符串标识了要删除的项。
Function ulong RemoveProp(ulong hwnd,ref string lpString) LIBRARY "user32.dll" ALIAS FOR "RemovePropA"
//该函数确定给定的窗口句柄是否识别一个已存在的窗口
Function ulong IsWindow(ulong hwnd) LIBRARY "user32.dll"
//picture
//该函数在限定的设备上下文窗口的客户区域绘制图标
Function ulong DrawIcon(ulong hd,ulong x1,ulong y1,ulong hIcon) LIBRARY "user32.dll"
//与DrawIcon相比,这个函数提供了更多的功能
Function boolean DrawIconEx(ulong hd,ulong xLeft,ulong yTop,ulong hIcon,ulong cxWidth,ulong cyWidth,ulong istepIfAniCur,ulong hbrFlickerFreeDraw,ulong diFlags) LIBRARY "user32.dll"
FUNCTION ulong DestroyIcon(ulong hIcon) LIBRARY "user32.dll"
//该函数创建一个具有指定颜色的逻辑刷子
Function ulong CreateSolidBrush(ulong crColor) LIBRARY "gdi32.dll"
//将一幅位图从一个设备场景复制到另一个
Function ulong BitBlt(ulong hDestDC,ulong x1,ulong y1,ulong nWidth,ulong nHeight,ulong hSrcDC,ulong xSrc,ulong ySrc,ulong dwRop) LIBRARY "gdi32.dll"
//为指定的设备场景设置背景颜色
Function ulong SetBkColor(ulong hd,ulong crColor) LIBRARY "gdi32.dll"
//创建一个与特定设备场景一致的内存设备场景
Function ulong CreateCompatibleDC(ulong hd) LIBRARY "gdi32.dll"
//删除专用设备场景或信息场景,释放所有相关窗口资源
Function ulong DeleteDC(ulong hd) LIBRARY "gdi32.dll"
//创建一幅与设备有关位图,它与指定的设备场景兼容
Function ulong CreateCompatibleBitmap(ulong hd,ulong nWidth,ulong nHeight) LIBRARY "gdi32.dll"
//该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。
Function ulong SelectObject(ulong hd,ulong hObject) LIBRARY "gdi32.dll"
//用这个函数删除GDI对象
Function ulong DeleteObject(ulong hObject) LIBRARY "gdi32.dll"
//用指定的刷子填充一个矩形
Function ulong FillRect(ulong hd,ref RECT lpRect,ulong hBrush) LIBRARY "user32.dll"
//获取指定窗口的设备场景
FUNCTION ulong GetDC(ulong hwnd) LIBRARY "user32.dll"
//设置当前文本颜色。这种颜色也称为“前景色”
Function ulong SetTextColor(ulong hd,ulong crColor) LIBRARY "gdi32.dll"
//该函数创建一个带有特定宽度、高度和颜色格式的位图。
Function ulong CreateBitmap(ulong nWidth,ulong nHeight,ulong nPlanes,ulong nBitCount,ref Any lpBits) LIBRARY "gdi32.dll"
//取得指定设备场景当前的背景颜色
Function ulong GetBkColor(ulong hd) LIBRARY "gdi32.dll"
//该函数取得指定设备环境的当前正文颜色
Function ulong GetTextColor(ulong hd) LIBRARY "gdi32.dll"
//该函数选择指定的逻辑调色板到一个设备环境中
Function ulong SelectPalette(ulong hd,ulong hPalette,ulong bForceBackground) LIBRARY "gdi32.dll"
//该函数从当前逻辑调色板中映射调色板入口点到系统调色板中
Function ulong RealizePalette(ulong hd) LIBRARY "gdi32.dll"
//释放由调用GetDC或GetWindowDC函数获取的指定设备场景
Function ulong ReleaseDC(ulong hwnd,ulong hd) LIBRARY "user32.dll"
//该函数创建一个指定设备环境的半色调调色板
Function ulong CreateHalftonePalette(ulong hd) LIBRARY "gdi32.dll"
//
Subroutine OleTranslateColor(Long Clr, Long hPal, Ref Long lpcolorref) LIBRARY "oleaut32.dll"
//该函数创建应用程序可以直接写入的、与设备无关的位图(DIB)
Function ulong CreateDIBSection(ulong hD,ref BITMAPINFO pBitmapInfo,ulong un,ulong lplpVoid,ulong handle,ulong dw) LIBRARY "gdi32.dll"
//该函数用来对目前进入指定设备环境的设备无关位图(DIB)颜色表中的项设置RGB(红、绿、蓝)颜色值
Function ulong SetDIBColorTable(ulong hD,ulong un1,ulong un2,ref RGBQUAD pcRGBQuad) LIBRARY "gdi32.dll"
//该函数设置指定设备环境的映射方式,映射方式定义了将逻辑单位转换为设备单位的度量单位,并定义了设备的X、Y轴的方向。
Function ulong SetMapMode(ulong hd,ulong nMapMode) LIBRARY "gdi32.dll"
//该函数获取当前映射方式
Function ulong GetMapMode(ulong hd) LIBRARY "gdi32.dll"
//返回指定窗口客户区矩形的大小
Function ulong GetClientRect(ulong hwnd,ref RECT lpRect) LIBRARY "user32.dll"
//用指定的样式描绘一个矩形的边框
Function boolean DrawEdge(ulong hd,ref RECT qrc,ulong edge,ulong grfFlags) LIBRARY "user32.dll"
//这个函数用于增大或减小一个矩形的大小。
Function ulong InflateRect(ref RECT lpRect,ulong x1,ulong y1) LIBRARY "user32.dll"
//这个函数可为一幅图象或绘图操作应用各式各样的效果
//Function boolean DrawState(ulong hD,ulong hBrush,ulong lpDrawStateProc,ulong lParam,ulong wParam,ulong n1,ulong n2,ulong n3,ulong n4,ulong un) LIBRARY "user32.dll"
FUNCTION boolean DrawState(ulong hDC,ulong hBrush,ulong lpDrawStateProc,ulong lParam,ulong wParam,ulong n1,ulong n2,ulong n3,ulong n4,ulong un) LIBRARY "user32.dll" ALIAS FOR "DrawStateA"
//校验窗口的全部或部分客户区。这样便可告之windows指定的区域不需要重画
FUNCTION ulong ValidateRect(ulong hwnd,ref rect lpRect) LIBRARY "user32.dll"
//载入一个位图、图标或指针
FUNCTION ulong LoadImage(ulong hInst,string lpsz,ulong un1,ulong n1,ulong n2,ulong un2) LIBRARY "user32.dll" ALIAS FOR "LoadImageA"
//获取指定窗口的设备场景
FUNCTION ulong CreatePatternBrush(ulong hBitmap) LIBRARY "gdi32.dll"
//指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
FUNCTION ulong SetBkMode(ulong hdc,ulong nBkMode) LIBRARY "gdi32.dll"
end prototypes
type variables
/*========================================================================*/
//
/*========================================================================*/
//绘制文字 DT
Private:
long DT_BOTTOM = 8//&H8
long DT_CENTER = 1//&H1
long DT_LEFT = 0//&H0
long DT_NOCLIP = 256//&H100
long DT_NOPREFIX = 2048//&H800
long DT_RIGHT = 2//&H2
long DT_SINGLELINE = 32//&H20
long DT_TOP = 0//&H0
long DT_VCENTER = 4//&H4
long DT_WORDBREAK = 16//&H10
//LoadImage
CONSTANT uLong IMAGE_BITMAP = 0
CONSTANT uLong IMAGE_ICON = 1
CONSTANT uLong IMAGE_CURSOR = 2
CONSTANT uLong IMAGE_ENHMETAFILE = 3
CONSTANT uLong LR_DEFAULTCOLOR = 0
CONSTANT uLong LR_MONOCHROME = 1
CONSTANT uLong LR_COLOR = 2
CONSTANT uLong LR_COPYRETURNORG = 4
CONSTANT uLong LR_COPYDELETEORG = 8
CONSTANT uLong LR_LOADFROMFILE = 16
CONSTANT uLong LR_LOADTRANSPARENT = 32
CONSTANT uLong LR_DEFAULTSIZE = 64
CONSTANT uLong LR_VGACOLOR = 128
CONSTANT uLong LR_LOADMAP3DCOLORS = 4096
CONSTANT uLong LR_CREATEDIBSECTION = 8192
CONSTANT uLong LR_COPYFROMRESOURCE = 16384
CONSTANT uLong LR_SHARED = 32768
Constant int WM_GETFONT = 49
//图像句柄
long h_bkpic
long h_normalPic
long h_MovePic
//按钮的凹凸控制常数
CONSTANT uLong BDR_RAISEDOUTER = 1
CONSTANT uLong BDR_SUNKENOUTER = 2
CONSTANT uLong BDR_RAISEDINNER = 4
CONSTANT uLong BDR_SUNKENINNER = 8
CONSTANT uLong BDR_OUTER = 3
CONSTANT uLong BDR_INNER = 12
CONSTANT uLong BF_LEFT = 1
CONSTANT uLong BF_RIGHT = 4
CONSTANT uLong BF_TOP = 2
CONSTANT uLong BF_BOTTOM = 8
CONSTANT uLong BF_RECT = 1
//'DrawIconEx Flags
long DI_MASK = 1
long DI_IMAGE = 2
long DI_NORMAL =3
long DI_COMPAT = 4
long DI_DEFAULTSIZE = 8
//' DrawState constants
long DSS_DISABLED = 32//&H20
long DSS_MONO = 128//&H80
long DSS_NORMAL = 0//&H0
long DSS_RIGHT = 32768//&H8000
long DSS_UNION = 16//&H10
long DST_BITMAP = 4//&H4
long DST_COMPLEX = 0//&H0
long DST_ICON =3// &H3
long DST_PREFIXTEXT = 2//&H2
long DST_TEXT = 1//&H1
long m_hpalHalftone //'Halftone created for default palette use
//窗口消息
long WM_LBUTTONDBLCLK = 515//&H203
long WM_RBUTTONDBLCLK = 518//&H206
long WM_LBUTTONDOWN = 513//&H201
long WM_RBUTTONDOWN = 516//&H204
public:
boolean chimb=false
alignment CaptionAlign = right!
Boolean IconOK =true
string normalPicName = ""
String MovePicName
String BKPicName
integer IconSizeWidth = 16
integer IconSizeHeight = 16
ToolBarAlignment PIC_Align = Alignatleft!
boolean Borderok = true
long BorderColor =16777215// &HFFFFFF
long BorderColorOver = RGB(10, 36, 106)
long BorderColorDown = RGB(10, 36, 106)
long BackColor = RGB(219, 216, 209)
long BackColorOver = RGB(182, 189, 210)
long BackColorDown = RGB(133, 146, 181)
long BackColorIcon = 14737632//&HE0E0E0
long BackColorIconOver = RGB(182, 189, 210)// &HFFFFFF
long BackColorIconDown =15856113// &HF1F1F1
long FontColor = 0
long FontColorOver = 0
long FontColorDown = 0
boolean FontShadow = False
long ShadowColor = 0
integer ShadowSize = 0
boolean MultiLine = False
boolean ShowFocus = False
rowfocusind TOOLTIPTYPE = OFF!
boolean TooltipTitle=false
icon title
int TooltipMaxWidth= 500
long TooltipBKColor=rgb(255,255,231)
long TooltipTextColor=0
Private RECT usrrect,PicRect ,TextRect
private boolean Focus = False
//按钮提示对象
n_tooltip tooltip
end variables
forward prototypes
public subroutine of_paint (integer buttontype)
public subroutine of_refresh ()
public subroutine of_init ()
public subroutine of_setrect ()
public subroutine of_getpichandle ()
public function long of_gettextpro ()
public subroutine of_drawtext (long hd, integer buttontype)
public subroutine of_destroy ()
public subroutine of_gradientfilld (long hdc, rect rect, long ai_colorfrom, long ai_colorto, integer ai_style)
end prototypes
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -