uo_win32api.sru 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396
  1. $PBExportHeader$uo_win32api.sru
  2. forward
  3. global type uo_win32api from nonvisualobject
  4. end type
  5. end forward
  6. global type uo_win32api from nonvisualobject
  7. end type
  8. global uo_win32api uo_win32api
  9. type prototypes
  10. FUNCTION Boolean StrectchBlt(ULong hDCdest,Int x1,Int y1,Int w1,Int h1,ULong hDCsrc,Int x2,Int y2,Int w2,Int h2,ULong lParam) LIBRARY "Gdi32.dll"
  11. FUNCTION Long SetWindowPos(Long hwnd,Long ord,Long X,Long Y,Long dx,Long dy,Long uflag) LIBRARY "user32"
  12. FUNCTION UInt GetDriveTypeA(String drive) LIBRARY "kernel32.dll" alias for "GetDriveTypeA;Ansi"
  13. FUNCTION ULong GetCurrentDirectory(ULong buflen,REF String dir) LIBRARY "kernel32.dll" ALIAS FOR "GetCurrentDirectoryA;Ansi"
  14. FUNCTION UInt GetWindowsDirectoryA(REF String dir,UInt buflen) LIBRARY "kernel32.dll" alias for "GetWindowsDirectoryA;Ansi"
  15. FUNCTION UInt GetSystemDirectoryA(REF String dir,UInt buflen) LIBRARY "kernel32.dll" alias for "GetSystemDirectoryA;Ansi"
  16. FUNCTION Long ExitWindowsEx(Long uflag,Long nouse) LIBRARY "user32.dll"
  17. FUNCTION ULong FindWindowA(ULong ClassName,String windowname) LIBRARY "user32.dll" alias for "FindWindowA;Ansi"
  18. FUNCTION Long SetParent(Long childwin,Long parentwin) LIBRARY "user32.dll"
  19. FUNCTION Long WnetAddConnectionA(String path,String pwd,String drv) LIBRARY "mpr.dll" alias for "WnetAddConnectionA;Ansi"
  20. FUNCTION Long FindWindowEx(Long ph,Long ch,REF String cn,REF String wn) LIBRARY "user32.dll" alias for "FindWindowEx;Ansi"
  21. FUNCTION Long ShowWindow(Long hwnd,Long nCmdShow) LIBRARY "user32.dll"
  22. FUNCTION Long Sleep(Long ms) LIBRARY "kernel32.dll"
  23. FUNCTION Long PlaySound(String Filename,Int Mod,Int Flags) LIBRARY "winmm.dll" alias for "PlaySound;Ansi"
  24. FUNCTION UInt GetModuleFileNameA(ULong hModule,REF String lpFilename,ULong nSize) LIBRARY "kernel32.dll" alias for "GetModuleFileNameA;Ansi"
  25. SUBROUTINE keybd_event(UInt bvk,UInt bscan,Long dwflags,Long dwextrainfo ) LIBRARY 'user32.dll'
  26. function long GetWindowLong(ulong hWnd,int nIndex) library "user32.dll" Alias for "GetWindowLongA"
  27. function long SetWindowLong (ulong hWnd,int nIndex,long dwNewLong ) library "user32.dll" Alias for "SetWindowLongA"
  28. function long GetSystemMenu (ulong hWnd,int bRevert ) library "user32.dll"
  29. function Boolean EnableMenuItem (ulong hMenu,int uIDEnableItem,int uEnable) library "user32.dll"
  30. FUNCTION ulong BitBlt(ulong hDestDC,ulong x,ulong y,ulong nWidth,ulong nHeight,ulong hSrcDC,ulong xSrc,ulong ySrc,ulong dwRop) LIBRARY "gdi32.dll"
  31. FUNCTION ulong CreateCompatibleBitmap(ulong hdc,ulong nWidth,ulong nHeight) LIBRARY "gdi32.dll"
  32. FUNCTION ulong CreateCompatibleDC(ulong hdc) LIBRARY "gdi32.dll"
  33. FUNCTION ulong CreatePen(ulong nPenStyle,ulong nWidth,ulong crColor) LIBRARY "gdi32.dll"
  34. FUNCTION ulong DeleteDC(ulong hdc) LIBRARY "gdi32.dll"
  35. FUNCTION ulong DeleteObject(ulong hObject) LIBRARY "gdi32.dll"
  36. FUNCTION ulong GetBkColor(ulong hdc) LIBRARY "gdi32.dll"
  37. FUNCTION ulong GetBkMode(ulong hdc) LIBRARY "gdi32.dll"
  38. FUNCTION ulong IntersectClipRect(ulong hdc,ulong X1,ulong Y1,ulong X2,ulong Y2) LIBRARY "gdi32.dll"
  39. FUNCTION ulong MoveToEx(ulong hdc,ulong x,ulong y,ref s_xls_point lpPoint) LIBRARY "gdi32.dll" alias for "MoveToEx;Ansi"
  40. FUNCTION ulong LineTo(ulong hdc,ulong x,ulong y) LIBRARY "gdi32.dll"
  41. FUNCTION ulong PatBlt(ulong hdc,ulong x,ulong y,ulong nWidth,ulong nHeight,ulong dwRop) LIBRARY "gdi32.dll"
  42. FUNCTION ulong SelectObject(ulong hdc,ulong hObject) LIBRARY "gdi32.dll"
  43. FUNCTION ulong SetBkMode(ulong hdc,ulong nBkMode) LIBRARY "gdi32.dll"
  44. FUNCTION ulong SetBkColor(ulong hdc,ulong crColor) LIBRARY "gdi32.dll"
  45. FUNCTION ulong CreateBitmap(long nWidth,long nHeight,long nPlanes,long nBitCount,long lpBits) LIBRARY "gdi32.dll"
  46. FUNCTION ulong GetPixel(ulong hdc,ulong x,ulong y) LIBRARY "gdi32.dll"
  47. FUNCTION ulong GetObjectBitmap( ulong hgdiobj, int cbBuffer, ref s_xls_bitmap bm ) library "gdi32.dll" alias for "GetObjectA;Ansi"
  48. FUNCTION ulong Rectangle(ulong hdc,ulong X1,ulong Y1,ulong X2,ulong Y2) LIBRARY "gdi32.dll"
  49. FUNCTION ulong RectVisible(ulong hdc,ref s_xls_rect lpRect) LIBRARY "gdi32.dll" alias for "RectVisible;Ansi"
  50. FUNCTION ulong StretchBlt(ulong hdc,ulong x,ulong y,ulong nWidth,ulong nHeight,ulong hSrcDC,ulong xSrc,ulong ySrc,ulong nSrcWidth,ulong nSrcHeight,ulong dwRop) LIBRARY "gdi32.dll"
  51. //取得系统固有资源
  52. FUNCTION ulong GetStockObject(ulong nIndex) LIBRARY "gdi32.dll"
  53. FUNCTION ulong TextOut(ulong hdc,ulong x,ulong y,ref string lpString,ulong nCount) LIBRARY "gdi32.dll" ALIAS FOR "TextOutA;Ansi"
  54. FUNCTION ulong CreateFontIndirect(ref s_xls_font lpLogFont) LIBRARY "gdi32.dll" ALIAS FOR "CreateFontIndirectA;Ansi"
  55. FUNCTION ulong GetDeviceCaps(ulong hdc,ulong nIndex) LIBRARY "gdi32.dll"
  56. FUNCTION ulong GetTextColor(ulong hdc) LIBRARY "gdi32.dll"
  57. FUNCTION ulong SetTextColor(ulong hdc,ulong crColor) LIBRARY "gdi32.dll"
  58. // User32.dll
  59. //弹出菜单
  60. FUNCTION ulong TrackPopupMenu(ulong hMenu,ulong wFlags,ulong x,ulong y,ulong nReserved,ulong hwnd,ref s_xls_rect lprc) LIBRARY "user32.dll" alias for "TrackPopupMenu;Ansi"
  61. FUNCTION ulong ClientToScreen(ulong hwnd,ref s_xls_point lpPoint) LIBRARY "user32.dll" alias for "ClientToScreen;Ansi"
  62. FUNCTION boolean DrawEdge(ulong hdc,ref s_xls_rect qrc,ulong edge,ulong grfFlags) LIBRARY "user32.dll" alias for "DrawEdge;Ansi"
  63. 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"
  64. FUNCTION ulong FillRect( ulong hdc, ref s_xls_rect qrc, ulong hbrush ) LIBRARY "user32.dll" alias for "FillRect;Ansi"
  65. FUNCTION ulong GetDC(ulong hwnd) LIBRARY "user32.dll"
  66. FUNCTION ulong GetSysColor(ulong nIndex) LIBRARY "user32.dll"
  67. FUNCTION ulong GetSysColorBrush( ulong nIndex ) LIBRARY "user32.dll"
  68. FUNCTION ulong GetWindowDC(ulong hwnd) LIBRARY "user32.dll"
  69. FUNCTION ulong InvalidateRect(ulong hwnd,ref s_xls_rect lpRect,ulong bErase) LIBRARY "user32.dll" alias for "InvalidateRect;Ansi"
  70. FUNCTION ulong LoadImage(ulong hInst,ref string lpsz,ulong un1,ulong n1,ulong n2,ulong un2) LIBRARY "user32.dll" ALIAS FOR "LoadImageA;Ansi"
  71. FUNCTION ulong ReleaseDC(ulong hwnd,ulong hdc) LIBRARY "user32.dll"
  72. FUNCTION ulong WindowFromPoint(ulong xPoint,ulong yPoint) LIBRARY "user32.dll"
  73. //设置鼠标扑获
  74. FUNCTION ulong SetCapture(ulong hwnd) LIBRARY "user32.dll"
  75. FUNCTION ulong ReleaseCapture() LIBRARY "user32.dll"
  76. FUNCTION ulong GetCapture() LIBRARY "user32.dll"
  77. //调入dll库
  78. FUNCTION ulong LoadLibrary(ref string lpLibFileName) LIBRARY "kernel32.dll" ALIAS FOR "LoadLibraryA;Ansi"
  79. FUNCTION ulong FreeLibrary(ulong hLibModule) LIBRARY "kernel32.dll"
  80. FUNCTION ulong GetComputerName(ref string lpBuffer,ref ulong nSize) LIBRARY "kernel32.dll" ALIAS FOR "GetComputerNameA;Ansi"
  81. FUNCTION ulong SetCurrentDirectory(ref string lpPathName) LIBRARY "kernel32.dll" ALIAS FOR "SetCurrentDirectoryA;Ansi"
  82. end prototypes
  83. type variables
  84. Constant Int GWL_STYLE = -16
  85. Constant ULong WS_CAPTION = 12582912
  86. Constant ULong WS_CHILD = 1073741824
  87. Constant UInt MF_BYPOSITION = 1024
  88. Constant ULong WS_MINIMIZEBOX = 131072
  89. Constant ULong WS_MAXIMIZEBOX = 65536
  90. Constant ULong WS_MAXIMIZE = 16777216
  91. Constant ULong WS_MINIMIZE = 536870912
  92. Constant ULong WS_VISIBLE = 268435456
  93. Constant ULong WS_VSCROLL = 2097152
  94. Constant ULong WS_SYSMENU = 524288
  95. Constant ULong WS_HSCROLL = 1048576
  96. Constant ULong WS_OVERLAPPED = 0
  97. Constant ULong WS_TILED = WS_OVERLAPPED
  98. Constant Int GWL_EXSTYLE = -20
  99. Constant Int WM_CLOSE = 16
  100. Constant ULong SC_CLOSE = 61536
  101. Constant ULong MF_GRAYED = 1
  102. Constant ULong MF_DISABLED = 2
  103. Constant ULong MF_ENABLED = 0
  104. //位图结构大小
  105. constant long US_BITMAP_SIZE = 28
  106. // API CONST
  107. constant long TPM_LEFTBUTTON = 0
  108. constant long TPM_RIGHTBUTTON = 2
  109. constant long TPM_LEFTALIGN = 0
  110. constant long TPM_CENTERALIGN = 4
  111. constant long TPM_RIGHTALIGN = 8
  112. // DrawEdge /* 3D border styles */
  113. constant long BDR_RAISEDOUTER = 1
  114. constant long BDR_SUNKENOUTER = 2
  115. constant long BDR_RAISEDINNER = 4
  116. constant long BDR_SUNKENINNER = 8
  117. constant long BDR_OUTER = 3
  118. constant long BDR_INNER = 12 // 0x000c
  119. constant long EDGE_RAISED = BDR_RAISEDOUTER + BDR_RAISEDINNER
  120. constant long EDGE_SUNKEN = BDR_SUNKENOUTER + BDR_SUNKENINNER
  121. constant long EDGE_ETCHED = BDR_SUNKENOUTER + BDR_RAISEDINNER
  122. constant long EDGE_BUMP = BDR_RAISEDOUTER + BDR_SUNKENINNER
  123. //* Border flags */
  124. constant long BF_LEFT = 1
  125. constant long BF_TOP = 2
  126. constant long BF_RIGHT = 4
  127. constant long BF_BOTTOM = 8
  128. constant long BF_TOPLEFT = BF_TOP + BF_LEFT
  129. constant long BF_TOPRIGHT = BF_TOP + BF_RIGHT
  130. constant long BF_BOTTOMLEFT = BF_BOTTOM + BF_LEFT
  131. constant long BF_BOTTOMRIGHT = BF_BOTTOM + BF_RIGHT
  132. constant long BF_RECT = BF_LEFT + BF_TOP + BF_RIGHT + BF_BOTTOM
  133. constant long BF_DIAGONAL = 16 // 0x0010
  134. // For diagonal lines, the BF_RECT flags specify the end point of the
  135. // vector bounded by the rectangle parameter.
  136. constant long BF_DIAGONAL_ENDTOPRIGHT = BF_DIAGONAL + BF_TOP + BF_RIGHT
  137. constant long BF_DIAGONAL_ENDTOPLEFT = BF_DIAGONAL + BF_TOP + BF_LEFT
  138. constant long BF_DIAGONAL_ENDBOTTOMLEFT = BF_DIAGONAL + BF_BOTTOM + BF_LEFT
  139. constant long BF_DIAGONAL_ENDBOTTOMRIGHT= BF_DIAGONAL + BF_BOTTOM + BF_RIGHT
  140. constant long BF_MIDDLE = 2048 // 0x0800 /* Fill in the middle */
  141. constant long BF_SOFT = 4096 // 0x1000 /* For softer buttons */
  142. constant long BF_ADJUST= 8192 // 0x2000 /* Calculate the space left over */
  143. constant long BF_FLAT = 16384// 0x4000 /* For flat rather than 3D borders */
  144. constant long BF_MONO = 32768 // 0x8000 /* For monochrome borders */
  145. //系统颜色
  146. constant long COLOR_SCROLLBAR = 0
  147. constant long COLOR_BACKGROUND = 1
  148. constant long COLOR_ACTIVECAPTION = 2
  149. constant long COLOR_INACTIVECAPTION = 3
  150. constant long COLOR_MENU = 4
  151. constant long COLOR_WINDOW = 5
  152. constant long COLOR_WINDOWFRAME = 6
  153. constant long COLOR_MENUTEXT = 7
  154. constant long COLOR_WINDOWTEXT = 8
  155. constant long COLOR_CAPTIONTEXT = 9
  156. constant long COLOR_ACTIVEBORDER = 10
  157. constant long COLOR_INACTIVEBORDER = 11
  158. constant long COLOR_APPWORKSPACE = 12
  159. constant long COLOR_HIGHLIGHT = 13
  160. constant long COLOR_HIGHLIGHTTEXT = 14
  161. constant long COLOR_BTNFACE = 15
  162. constant long COLOR_BTNSHADOW = 16
  163. constant long COLOR_GRAYTEXT = 17
  164. constant long COLOR_BTNTEXT = 18
  165. constant long COLOR_INACTIVECAPTIONTEXT =19
  166. constant long COLOR_BTNHIGHLIGHT = 20
  167. //DrawState 参数
  168. constant long DST_BITMAP = 4
  169. constant long DSS_DISABLED = 32
  170. //GetSys
  171. constant long LOGPIXELSX = 88 /* Logical pixels/inch in X */
  172. constant long LOGPIXELSY = 90
  173. constant long TRANSPARENT = 1
  174. //BitBlt 参数
  175. constant long srccopy = 13369376
  176. constant long notsrccopy = 3342344
  177. constant long SRCAND = 8913094
  178. constant long SRCPAINT = 15597702
  179. constant long DSTINVERT = 5570569
  180. constant long SYSTEM_FONT = 13 //getstockobject(... )
  181. // LoadImage 参数
  182. constant long IMAGE_BITMAP = 0
  183. constant long IMAGE_ICON = 1
  184. constant long IMAGE_CURSOR = 2
  185. constant long LR_DEFAULTCOLOR = 0
  186. constant long LR_MONOCHROME = 1
  187. constant long LR_COLOR = 2
  188. constant long LR_COPYRETURNORG = 4
  189. constant long LR_COPYDELETEORG = 8
  190. constant long LR_LOADFROMFILE =16
  191. constant long LR_LOADTRANSPARENT= 32
  192. constant long LR_DEFAULTSIZE = 64
  193. constant long LR_VGACOLOR = 128
  194. constant long LR_LOADMAP3DCOLORS = 4096
  195. constant long LR_CREATEDIBSECTION =8192
  196. constant long LR_COPYFROMRESOURCE = 16384
  197. constant long LR_SHARED = 32768
  198. end variables
  199. forward prototypes
  200. PUBLIC FUNCTION Long u_sleep (Long ms)
  201. PUBLIC FUNCTION Long u_playsound (String Filename, Integer Mod, Integer Flags)
  202. PUBLIC FUNCTION ULong u_findwindowa (UnsignedLong ClassName, String windowname)
  203. PUBLIC FUNCTION UInt u_getwindowsdirectorya (REF String dir, UnsignedInteger buflen)
  204. PUBLIC FUNCTION UInt u_getsystemdirectorya (REF String dir, UnsignedInteger buflen)
  205. PUBLIC FUNCTION String u_getcurrentdirectory ()
  206. PUBLIC FUNCTION Integer u_getmodulefilenamea (REF String arg_currentdir, REF String arg_runname, REF String arg_msg)
  207. PUBLIC FUNCTION Long u_setwindowpos (Long arg_handle)
  208. public function long of_drawarrow (unsignedlong dc, long lx, long ly, long acolor, boolean isenabled)
  209. public function window of_getparentwin (powerobject apo_1)
  210. public function unsignedlong of_loadbitmap (string bmpname, ref unsignedlong cx, ref unsignedlong cy)
  211. end prototypes
  212. PUBLIC FUNCTION Long u_sleep (Long ms);
  213. RETURN Sleep(ms)
  214. END FUNCTION
  215. PUBLIC FUNCTION Long u_playsound (String Filename, Integer Mod, Integer Flags);
  216. RETURN PlaySound(Filename,Mod,Flags)
  217. END FUNCTION
  218. PUBLIC FUNCTION ULong u_findwindowa (UnsignedLong ClassName, String windowname);
  219. RETURN FindWindowA( ClassName, windowname)
  220. END FUNCTION
  221. PUBLIC FUNCTION UInt u_getwindowsdirectorya (REF String dir, UnsignedInteger buflen);
  222. RETURN GetWindowsDirectoryA(dir,buflen)
  223. END FUNCTION
  224. PUBLIC FUNCTION UInt u_getsystemdirectorya (REF String dir, UnsignedInteger buflen);
  225. RETURN GetSystemDirectoryA( dir, buflen)
  226. END FUNCTION
  227. PUBLIC FUNCTION String u_getcurrentdirectory ();
  228. String dir
  229. dir = Space(255)
  230. GetCurrentDirectory(255,dir)
  231. RETURN dir
  232. END FUNCTION
  233. PUBLIC FUNCTION Integer u_getmodulefilenamea (REF String arg_currentdir, REF String arg_runname, REF String arg_msg);
  234. String ls_Buffer
  235. ls_Buffer = Space(255)
  236. Long i = 0
  237. IF Handle(GetApplication()) <> 0 THEN // //已编译
  238. i = GetModuleFileNameA(Handle(GetApplication()),ls_Buffer,255)
  239. IF i = 0 THEN
  240. arg_msg = '获取应用程序路径失败!'
  241. RETURN i
  242. END IF
  243. arg_currentdir = ls_Buffer
  244. DO
  245. arg_currentdir = Right(arg_currentdir,Len(arg_currentdir) -Pos(arg_currentdir,"\") )
  246. LOOP UNTIL Pos(arg_currentdir,"\") = 0
  247. arg_runname = arg_currentdir //运行程序名
  248. arg_currentdir = Left(ls_Buffer,Len(ls_Buffer) - Len(arg_currentdir)) //运行目录
  249. ELSE
  250. arg_msg = '获取应用程序路径失败,应用程序没有编译!'
  251. RETURN i
  252. END IF
  253. RETURN i
  254. END FUNCTION
  255. PUBLIC FUNCTION Long u_setwindowpos (Long arg_handle);
  256. RETURN SetWindowPos(arg_handle,-1,0,0,0,0,3)
  257. END FUNCTION
  258. public function long of_drawarrow (unsignedlong dc, long lx, long ly, long acolor, boolean isenabled);long newpen, oldpen
  259. //定义结构休变量,oldpoint ( 用以保存上次画笔的起始位置== x,y 坐标 )
  260. s_xls_point oldpoint
  261. //画带有子菜单项的下拉图标( 黑色的向下标识的三角符号 )
  262. if isenabled then //true 画黑色有效三角标识, false 画3D灰色无效三角标识
  263. //CreatePen: 用指定的样式-- 0 、宽度-- 1 和 颜色 --acolor 创建一个画笔
  264. newpen = CreatePen( 0, 1, acolor )
  265. //SelectObject: 当前选定的画笔决定了在设备场景中描绘的线段颜色及样式,一次选入设备场景的只能有一个对象
  266. // dc: 一个设备场景的句柄 newpen: 一个画笔、位图、刷子、字体或区域的句柄
  267. oldpen = SelectObject( dc, newpen )
  268. //MoveToEX: 为指定的设备场景指定一个新的当前画笔位置。前一个位置保存在lpPoint ( oldpoint )中
  269. MoveToEX( dc, lx, ly, oldpoint )
  270. // 用当前画笔画一条线,从当前位置连到一个指定的点。这个函数调用完毕,当前位置变成x,y点
  271. LineTo( dc, lx + 5, ly )
  272. MoveToEX( dc, lx + 1, ly + 1, oldpoint )
  273. LineTo( dc, lx + 4, ly + 1 )
  274. MoveToEX( dc, lx + 2, ly + 2, oldpoint )
  275. LineTo( dc, lx + 3, ly + 2 )
  276. else //false 画3D灰色无效三角标识
  277. // GetSysColor: 判断指定windows显示对象的颜色. COLOR_BTNSHADOW: 按钮的3D阴影
  278. // COLOR_BTNHIGHLIGHT: 按钮的3D加亮区
  279. newpen = CreatePen( 0, 1, GetSysColor( COLOR_BTNSHADOW ) )
  280. oldpen = SelectObject( dc, newpen )
  281. MoveToEX( dc, lx, ly, oldpoint )
  282. LineTo( dc, lx + 5, ly )
  283. MoveToEX( dc, lx + 1, ly + 1, oldpoint )
  284. LineTo( dc, lx + 4, ly + 1 )
  285. MoveToEX( dc, lx + 2, ly + 2, oldpoint )
  286. LineTo( dc, lx + 3, ly + 2 )
  287. newpen = SelectObject( dc, oldpen )
  288. //DeleteObject: 用这个函数删除GDI对象,比如画笔、刷子、字体、位图、区域以及调色板等等。
  289. //对象使用的所有系统资源都会被释放
  290. DeleteObject( newpen )
  291. newpen = CreatePen( 0, 1, GetSysColor( COLOR_BTNHIGHLIGHT ) )
  292. oldpen = SelectObject( dc, newpen )
  293. MoveToEX( dc, lx + 4, ly + 1, oldpoint )
  294. LineTo( dc, lx + 6, ly + 1 )
  295. MoveToEX( dc, lx + 3, ly + 2, oldpoint )
  296. LineTo( dc, lx + 5, ly + 2 )
  297. MoveToEX( dc, lx + 3, ly + 3, oldpoint )
  298. LineTo( dc, lx + 4, ly + 3 )
  299. end if
  300. newpen = SelectObject( dc, oldpen )
  301. DeleteObject( newpen )
  302. return 0
  303. end function
  304. public function window of_getparentwin (powerobject apo_1);PowerObject lpo_tmp
  305. Window lw_tmp
  306. lpo_tmp = aPo_1.GetParent()
  307. Do While lpo_tmp.TypeOf() <> Window!
  308. lpo_tmp= aPo_1.GetParent()
  309. Loop
  310. lw_tmp = lpo_tmp
  311. Return lw_tmp
  312. end function
  313. public function unsignedlong of_loadbitmap (string bmpname, ref unsignedlong cx, ref unsignedlong cy);//根据lht_nvo_toolbar_button的 of_setbmp() 函数传送的图片名,将图片信息载入内存中
  314. ulong ll_inst
  315. //us_bitmap : 位图的结构体
  316. s_xls_bitmap lus_bmp
  317. ulong ll_bmp
  318. setnull( ll_inst )
  319. //LoadImage: 载入一个位图、图标或指针 ( 载入工具栏所需的图片 )
  320. ll_bmp = LoadImage( ll_inst, bmpname, 0, 0, 0, LR_LOADFROMFILE )
  321. if ll_bmp = 0 then return 0
  322. //GetObjectBitmap: 取得对指定对象进行说明的一个结构. US_BITMAP_SIZE: 位图结构大小
  323. GetObjectBitmap( ll_bmp, US_BITMAP_SIZE, lus_bmp )
  324. cx = lus_bmp.bmwidth
  325. cy = lus_bmp.bmheight
  326. //
  327. return ll_bmp
  328. end function
  329. on uo_win32api.create
  330. call super::create
  331. TriggerEvent( this, "constructor" )
  332. end on
  333. on uo_win32api.destroy
  334. TriggerEvent( this, "destructor" )
  335. call super::destroy
  336. end on