初級精講篇06api2常用api_第1頁
初級精講篇06api2常用api_第2頁
初級精講篇06api2常用api_第3頁
初級精講篇06api2常用api_第4頁
初級精講篇06api2常用api_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、附錄 A常用的 Windows API 調(diào)用本附錄列出了 PowerBuilder 常用 Windows API 系統(tǒng)調(diào)用 同時給出了這些函數(shù)的功格式以及應(yīng)用示例 下表首先給出常用 API 調(diào)用的名稱和扼要功能 讀者需要能詳細(xì)了解某個函數(shù)的格式和示例時 可通過庫號在本節(jié)中找到相應(yīng)詳細(xì)說明表A常用的 Windows API 系統(tǒng)序號函數(shù)功能1234567891011121314151617181920212223242526272829303132Arc()Beep() BringWindowToTop() Chord() CloseHandle() CloseWindow() CopyFile

2、A() CreateDirectoryA()DeleteFileA()在窗口上畫一條弧線讓計算機(jī)按指定的頻率和周期將窗口放置在最前面繪制弦圖打開對象的句柄最小化窗口文件創(chuàng)建目錄刪除文件刪除指定菜單的菜單項(xiàng)關(guān)閉窗口Delete()DestroyWindow() DllRegisterServer() Ellipse() ExitWindowsEx() FatalExit() FindWindowA() FreeLibrary() GetBkColor() GetCapture() GetComputerNameA() GetClassNameA() GetCurrentDirectoryA()

3、GetCurrentThread() GetCursor() GetCursorPos() GetDC()GetKeyboardState() GetKeyState() GetModuleHandleA()GetPixel()觸發(fā) OCX 控件完成自繪制橢圓過程通知 Windows 關(guān)閉操作系統(tǒng)立即應(yīng)用程序根據(jù)窗口標(biāo)題查找窗口從活動內(nèi)存中卸載一個 DLL 獲得指定窗口的背景顏色獲得鼠標(biāo)所在窗口的句柄獲得執(zhí)行應(yīng)用程序的計算機(jī)的名稱獲得指定窗口或?qū)ο蟮念惷@得當(dāng)前工作目錄獲得當(dāng)前線程的句柄獲得光標(biāo)的句柄獲得光標(biāo)的位置獲得指定窗口的設(shè)備上下文獲得鍵盤的狀態(tài)獲得鍵盤上指定按鍵的狀態(tài)獲得活動內(nèi)存中指定

4、模塊或動態(tài)獲得窗口上指定像素的顏色獲得系統(tǒng)菜單或窗口菜單的句柄庫的句柄GetSystem()GetSystemTime()獲得系統(tǒng)時間 并存放到一個結(jié)構(gòu)中續(xù)表序號函數(shù)功能33343536373839404142434445464748GetThreadPriority() GetSystemMetrics() GetUserNameA() GetVolumnInformationA() GetWindowsDirectoryA() GlobalMemoryStatus() LineTo()LoadLibraryA() mciSendStringA() MessageBoxA() Mouse_E

5、vent() MoveToEx() MoveWindow() Pie()Polygon()PostMessageA()獲得指定線程的優(yōu)先級獲得屏幕的分辨率 以像素為獲得當(dāng)前用戶的登錄名稱獲得硬盤的參數(shù)信息獲得缺省的 Windows 目錄獲得內(nèi)存的詳細(xì)信息從當(dāng)前位置到指置繪制一條直線將 32 位 DLL 加載到活動內(nèi)存中和.AVI 文件顯示一個消息框和操作鼠標(biāo)將光標(biāo)移動到指置同時保存移動前的光標(biāo)位置移動 放大或縮小窗口繪制餅圖繪制多邊形向創(chuàng)建指定窗口的線索處理該消息繪制矩形鼠標(biāo)向創(chuàng)建指定窗口的線索理該消息鎖定鼠標(biāo)修改計算機(jī)的名稱設(shè)置當(dāng)前目錄設(shè)置光標(biāo)的位置一條消息但不等待線索495051Recta

6、ngle()ReleaseCapture() SendMessageA()一條消息但等待線索處52535455565758596061SetCapture() SetComputerNameA() SetCurrentDirectoryA() SetCursorPos() SetFocus() SetKeyboardState() SetPixel() SetThreadPriority() Sleep() SndPlaySoundA() WaveOutGetNumDevs() SwapMouseButton()WinExec()將輸入焦點(diǎn)設(shè)置到指定對象或窗口上設(shè)置鍵盤的狀態(tài)設(shè)置窗口上指定像素

7、的顏色設(shè)置線程的優(yōu)先級睡眠指定的時間.WAV 文件6263交換鼠標(biāo)的左右按鈕運(yùn)行指定的可執(zhí)行文件使用這些函數(shù)時 首先將它們?yōu)橥獠咳趾瘮?shù) 然后在中調(diào)用 在下面的本書分寫在多行上所有格式中 函數(shù)的都應(yīng)該在一行內(nèi)書寫 由于排版需要注意的是 所有類參數(shù) 由關(guān)鍵字 Ref 指明 在傳遞之前都必須分配足夠的內(nèi)存否則可能數(shù)GPF 錯誤 參看函數(shù) GetComputerNameA()的說明下面分別介紹這些函1功Arc()能 在窗口上畫一條弧線格式 Function boolean Arc(ulong hwnd,long r1,long r2,long r3,long r4,long a1, long a2,

8、long a3,long a4) Library"Gdi32.dll"示例Boolean rtnulong l_handle, l_device long lv8l_handle = handle(w_main) l_device = GetDC(l_handle)lv = 10,40,300,220,0,0,180,0/ w_main 是一個示例窗口/獲得窗口的設(shè)備上下文/數(shù)組賦值rtn = Arc(l_device, lv1, lv2, lv3, lv4, lv5, lv6, lv7, lv8)Beep()能 讓計算機(jī)按指定的頻率和周期格式 Function boole

9、an Beep(long freq,long dur) Library"Kernel32.dll"示例Boolean rtnLong ll_freq, ll_dur ll_freq = 500ll_dur = 20rtn = Beep(ll_freq, ll_dur)BringWindowToTop()能 將窗口放置在最前面格式 Function boolean BringWindowToTop(ulong w_handle) Library"User32.dll"示例Boolean rtn ulong l_handlel_handle = handle

10、(w_win2) /獲得窗口的句柄rtn = BringWindowToTop(l_handle)Chord()能 繪制弦圖 弦圖由橢圓的一部分和一個線段組成格式 Function boolean Chord(ulong hwnd,long x1,long y1,long x2,long y2,long r1, long r2, long r3, long r4) Library"Gdi32.dll"示例boolean rtnulong l_handle, l_device long lv8l_handle = handle(w_main)2功3功4功l_device =

11、GetDC(l_handle) l_device = GetDC(handle(w_main) lv = 5,5,200,200,0,0,200,300rtn = Chord(l_device, lv1, lv2, lv3, lv4, lv5, lv6, lv8)CloseHandle()lv7,5功能打開對象的句柄格式 Function boolean CloseHandle(ulong w_handle) Library"Kernel32.dll"示例boolean rtn ulong l_handlertn = CloseHandle(l_handle) /l_han

12、dle 為窗口或?qū)ο蟮木浔鶦loseWindow()能 最小化窗口格式 Function boolean CloseWindow(ulong w_handle) Library"User32.dll"示例boolean rtn ulong l_handle string ls_wnamels_wname = "<窗口標(biāo)題>" /請?zhí)鎿Q為要最小化的窗口的準(zhǔn)確標(biāo)題l_handle = FindWindowA(0, ls_wname) /由窗口標(biāo)題找到窗口句柄rtn = CloseWindow(l_handle)CopyFileA()6功7功能文件

13、 源文件和目標(biāo)文件的名稱參數(shù)都采用方式 如果 flag 參數(shù)設(shè)置為 True那么文件時不覆蓋已有的文件 如果 flag 參數(shù)設(shè)置為 False那么文件時覆蓋已有的文件格式 Function boolean CopyFileA(ref string cfrom, ref string cto, boolean flag) Library"Kernel32.dll"示例string l_from, l_to boolean l_flag, rtnl_flag l_froml_to = false= c:Windowsforest.bmp /指定源文件c:test.bmp/指定目

14、標(biāo)文件rtn = CopyFileA(l_from, l_to, l_flag) /MessageBox("CreateDirectoryA()文件結(jié)果", string(rtn)8功能 創(chuàng)建目錄 第一個參數(shù)指明要創(chuàng)建的目錄 第二個參數(shù)在 Windows NT 中使用在Windows 95 Windows 98 中忽略該參數(shù) 下面的示例中 我們在 C 盤的根目錄下創(chuàng)建目錄 ZCF格式 Function boolean CreateDirectoryA(ref string pathname, int sa) Library "Kernel32.dll"示

15、例boolean rtn string l_dirl_dir rtn =If r= "C:ZCF"CreateDirectoryA(l_dir, 0)henMessageBox("else創(chuàng)建新的目錄", "新目錄為 C:ZCF")MessageBox("創(chuàng)建目錄", "創(chuàng)建過程失敗") end ifDeleteFileA()能 刪除文件 下面的示例中 用戶在單行編輯框中輸入一個文件名后文件刪除格式 Function boolean DeleteFileA(ref string filename

16、) Library"Kernel32.dll"示例string l_file boolean rtnl_file = string(sle_deletefile.text) rtn = DeleteFileA(l_file)MessageBox("刪除文件", string(rtn)9功代碼將該10功Delete()能 刪除指定菜單的菜單項(xiàng) 如果該菜單項(xiàng)下還有子菜單 則函數(shù)刪除菜單的句柄 并子菜單所占用的內(nèi)存格式 Function boolean Delete(ulong mhand, uint upos, uint flag) Library &quo

17、t;User32.dll"示例ulong m_handle boolean rtn(handle(w_main), false) / 首先獲得系統(tǒng)菜單的句柄m_handle = GetSystem(m_handle, 1, 0) / 第二個參數(shù) 這里為 1 指定要刪除菜/單項(xiàng)在菜單中的位置Messagebox("菜單句柄", string(m_handle)Messagebox("菜單刪除結(jié)果", string(rtn)DestroyWindow()rtn = Delete11功能 關(guān)閉窗口 該函數(shù)向指定窗口一條刪除窗口的消息格式 Functi

18、on boolean DestroyWindow(ulong w_handle) Library "User32.dll"示例boolean rtn ulong l_handleopen(w_win2) / 打開一個測試窗口l_handle = handle(w_win2)/獲得窗口的句柄rtn = DestroyWindow(l_handle) /關(guān)閉窗口DllRegisterServer()12功能 觸發(fā) OCX 控件完成自真實(shí)的 OCX 的名稱過程 實(shí)際使用時 將格式中 ocxname 替換為格式 Function long DllRegisterServer() L

19、ibrary"c:windowsocxname.ocx"示例Long ll_rtnll_rtn = DllRegisterServer() /通常返回 0 表示 OCX 已經(jīng)Ellipse()能 繪制橢圓格式 Function boolean Ellipse(ulong hwnd,long x1,long y1,long x2,long y2) Library "Gdi32.dll"示例Boolean rtnulong l_handle, l_device long lv4l_handle = handle(w_main) l_device = GetD

20、C(l_handle) lv = 5,5,300,300rtn = Ellipse(l_device, lv1, lv2, lv3, lv4)ExitWindowsEx()能 通知 Windows 關(guān)閉操作系統(tǒng)13功14功格式 Function boolean ExitWindowsEx(uint dw "User32.dll"示例boolean rtn, uint u) Libraryrtn = ExitWindowsEx(0,0) / 兩個參數(shù) 0 告訴 Windows 立即關(guān)閉系統(tǒng)FatalExit()能 立即應(yīng)用程序 不做任何工作 各種對象依然保留在內(nèi)存中 調(diào)用該函

21、數(shù)時 通常會導(dǎo)致 GPF 錯誤 一般在調(diào)試應(yīng)用程序時使用格式 SubRoutine FatalExit(int exitcode) Library"Kernel32.dll"15功示例int rtnrtn = MessageBox("該 API 調(diào)用將產(chǎn)生 GPF 錯誤!","一定要做嗎 ", Exc YesNo!,2)If rtn = 1 Thention!,MessageBox("再次警告!","執(zhí)行該 API 調(diào)用后 必須重新啟動系統(tǒng)FatalExit(1) End IfFindWindowA()能

22、 根據(jù)窗口標(biāo)題查找窗口格式 Function ulong FindWindowA(ulong classname,string windowname) Library "User32.dll"示例ulong l_handle string ls_wnamels_wname = "<窗口標(biāo)題>" /比如 無標(biāo)題 - 記事本l_handle = FindWindowA(0, ls_wname)FreeLibrary()")16功17功能 從活動內(nèi)存中卸載一個 DLL 警告 卸載正在使用的 DLL 時將格式 SubRoutine Free

23、Library(ulong libhandle) Library "Kernel32.dll"示例ulong modhandlemodhandle = LoadLibrary("<32 位 dll 文件名>") /通常在另一個FreeLibrary(modhandle)GetBkColor()能 獲得指定窗口的背景顏色格式 Function ulong GetBkColor (ulong hwnd) Library"Gdi32.dll"示例ulong l_handle, l_device, l_color l_handle

24、 = handle(w_main)l_device = GetDC(l_handle) /獲得設(shè)備上下文l_color = GetBkColor(l_device) /獲得背景顏色GetCapture()能 獲得鼠標(biāo)所在窗口的句柄格式 Function ulong GetCapture( ) Library "User32.dll"示例ulong l_handleGPF過程中加載庫18功19功l_handle = GetCapture( )GetComputerNameA()能 獲得執(zhí)行應(yīng)用程序的計算機(jī)的名稱 需要注意的是 名稱參數(shù) cname 必須分20功GPF 錯誤 實(shí)

25、際上配足夠的內(nèi)存 否則在應(yīng)用程序時可能會所有外部函數(shù)的類參數(shù)都必須分配足夠的內(nèi)存格式 Function boolean GetComputerNameA(ref string cname,ref long nbuf) Library "Kernel32.dll"示例string ls_compname long ll_bufll_buf = 25 /設(shè)置 cname 參數(shù)的長度ls_compname = space(ll_buf) /為 ls_compname 參數(shù)分配空間GetComputerNameA(ls_compname, ll_buf) MessageBox(&q

26、uot;計算機(jī)名稱", ls_compname)GetClassNameA()能 獲得指定窗口或?qū)ο蟮念惷袷?Function long GetClassNameA(ulong hwnd, ref string cname, int buf) Library "User32.dll"示例string l_class long rtn ulong l_handlel_handle = handle(w_main) l_class = space(50)rtn = GetClassNameA(l_handle,l_class,50) Messagebox("

27、;類名", l_class)GetCurrentDirectoryA()能 獲得當(dāng)前工作目錄格式 Function ulong GetCurrentDirectoryA(ulong BufferLen, ref string currentdir) Library"Kernel32.dll"示例string ls_curdir ulong l_buf l_buf = 100ls_curdir = space(l_buf) /為參數(shù)分配空間GetCurrentDirectoryA(l_buf, ls_curdir) MessageBox("當(dāng)前目錄&quo

28、t;, ls_curdir)GetCurrentThread()21功22功23功能 獲得當(dāng)前線程的句柄格式 Function ulong GetCurrentThread() Library"Kernel32.dll"示例ulong rtnrtn = GetCurrentThread() MessageBox("當(dāng)前線程句柄", string(rtn)GetCursor()能 獲得光標(biāo)的句柄格式 Function ulong GetCursor( ) Library"User32.dll示例ulong l_cursorl_cursor = G

29、etCursor( )GetCursorPos()能 獲得光標(biāo)的位置 參數(shù) mousepos 是一個結(jié)構(gòu) 它包括兩個分量ypos格式 Function boolean GetCursorPos(ref mousepos) Library"User32.dll"示例mousepos mouseloc GetCursorPos(mouseloc)Messagebox("光標(biāo)位置",24功25功long xpos, long"X="+string(mouseloc.xpos)+"Y="+string(mouseloc.y

30、pos)26功GetDC()能 獲得指定窗口的設(shè)備上下文 如果想執(zhí)行圖形外部函數(shù)調(diào)用 必須獲得設(shè)備上下文格式 Function ulong GetDC(ulong hwnd) library "User32.dll"示例ulong l_handle, l_device l_handle = handle(w_main) l_device = GetDC(l_handle)MessageBox("設(shè)備上下文", string(l_device)GetKeyboardState()能 獲得鍵盤的狀態(tài) 該函數(shù)按照字符的 ASCII 碼表示 將鍵盤上每個鍵的狀態(tài)

31、保存到包含 256 個整數(shù)元素的數(shù)組中 值 0 表示相應(yīng)鍵沒有被按下格式 Function boolean GetKeyboardState(ref integer kbarray256)Library "User32.dll"27功示例boolean rtn integer ipkey256rtn = GetKeyboardState(ipkey)GetKeyState()能 獲得鍵盤上指定按鍵的狀態(tài) 值 0 表示相應(yīng)鍵沒有被按下格式 Function int GetKeyState(integer VirtualKeycode) Library "User32

32、.dll"示例int rtnrtn = GetKeyState(65) / 65 = A if rtn = 0 thenMessageBox("按鍵狀態(tài)","字母 A 沒有按下 ")else28功MessageBox("按鍵狀態(tài)","字母 A 被按下end ifGetModuleHandleA()能 獲得活動內(nèi)存中指定模塊或動態(tài)放該函數(shù)獲得其句柄的模塊或動態(tài)")29功庫的句柄 可以使用 FreeLibrary()函數(shù)釋庫格式 Function long GetModuleHandleA(string mo

33、dname) Library "Kernel32.dll"示例ulong rtnrtn = GetModuleHandleA("User32.dll") MessageBox("返回代碼", string(rtn)GetPixel()能 獲得窗口上指定像素的顏色格式 Function ulong GetPixel(ulong hwnd, long xpos, long ypos) Library "Gdi32.dll"示例請參看 SetPixel()函數(shù)30功31功GetSystem()能 獲得系統(tǒng)菜單或窗口菜單的

34、句柄格式 Function boolean GetSystem "User32.dll"示例boolean flagulong l_handle, m_handle(ulong mhandle, boolean flag) Libraryl_handle = handle(w_main)flag = falsem_handle = GetSystem(l_handle, flag)Messagebox("返回值", string(m_handle)GetSystemTime()能 獲得系統(tǒng)時間 并存放到一個結(jié)構(gòu)中 SystemTime 結(jié)構(gòu)的分量為 ui

35、nt year uint monthuint dayofweek uint day uint hour uint minute uint second uint millisecond格式 SubRoutine GetSystemTime(ref systemtime systimeptr) Library "Kernel32.dll"示例systemtime s_systimestring l_day, l_date, l_time GetSystemTime(s_systime)l_date = string(s_systime.year) +"/"

36、+ string(s_systime.day) &+"/"+string(s_systime.month) /日期 年/月/日l_time = string(s_systime.hour) +":"+ string(s_systime.minute) &+":"+ string(s_systime.second) +":"+ string(s_lisecond)/時 分 秒 毫秒32功CHOOSE CASE CASE 1l_day CASE 2l_day CASE 3l_day

37、 CASE 4l_day CASE 5l_day CASE 6l_day CASE 7l_dayEND CHOOSEs_systime.dayofweek"日"="一"="二"="三"="四"="五"="六"=Messagebox("系統(tǒng)時間",l_date + "GetThreadPriority()能 獲得指定線程的優(yōu)先級 線程的缺省優(yōu)先級為 0大于 0 的值優(yōu)先級更高 因" + l_day + "&q

38、uot; + l_time)33功而線程將獲得的 CPU 時間格式 Function int GetThreadPriority(ulong hthread) Library"Kernel32.dll"示例ulong l_handleinteger rtnl_handle = GetCurrentThread()rtn = GetThreadPriority(l_handle) MessageBox("當(dāng)前線程的優(yōu)先級", string(rtn)GetSystemMetrics()34功能 獲得屏幕的分辨率 以像素為嚴(yán)格按照書上的式樣書寫請注意 該函數(shù)區(qū)

39、分大小寫 函數(shù)名稱要格式 Function int GetSystemMetrics(int indexnum) Library"User32.dll"示例int l_xx, l_yyl_xx = GetSystemMetrics(0)/獲得 X 方向分辨率l_yy = GetSystemMetrics(1) /獲得 Y 方向分辨率Messagebox("屏幕分辨率", string(l_xx) + " , " + string(l_yy)35功GetUserNameA()能 獲得當(dāng)前用戶的登錄名稱格式 Function boolea

40、n GetUserNameA(ref string uname, ref ulong slength) Library "ADVAPI32.DLL"示例string ls_username string ls_var ulong lu_val boolean rtnlu_val = 255ls_username = Space( 255 ) /分配足夠的空間rtn = GetUserNameA(ls_username, lu_val)Messagebox("GetUserNameA", "用戶名為 " + string(ls_user

41、name)GetVolumnInformationA()能 獲得硬盤的參數(shù)信息格式 Function boolean GetVolumeInformation(ref string lpRootPathName,ref36功stringlpVolumeNameBuffer,ulong nVolumeNameSize,ref ulong lpVolumeSerialNumber,ref ulong lpumComponentLength,ref ulong lpFileSystemFlags,ref stringlpFileSystemNameBuffer, ulong nFileSystemN

42、ameSize)Library "Kernel32.dll"示例boolean rtnstring lprootpathname = "c:" /驅(qū)動器string lpVolumeNameBuffer = space(256) /分配足夠的空間ulong nVolumeNameSize = 256ulong lpVolumeSerialNumberulong lpumComponentLengthsetnull(lpVolumeSerialNumber)lpumComponentLength = 256ulong lpFileSystemFlags s

43、etnull(lpFileSystemFlags)string lpFileSystemNameBuffer = space(256) /分配足夠的空間ulong nFileSystemNameSize = 256rtn = GetVolumeInformationA(lpRootPathName, lpVolumeNameBuffer,&&nVolumeNameSize,lpVolumeSerialNumber, lpumComponentLength,lpFileSystemFlags, lpFileSystemNameBuffer, nFileSystemNameSize

44、)sle_1.text sle_2.text sle_3.text sle_4.text sle_5.text sle_6.text sle_7.textsle_8.text=lprootpathname /路徑名lpVolumeNameBuffer string(nVolumeNameSize)string(lpVolumeSerialNumber)string(lpumComponentLength)string(lpFileSystemFlags)string(lpFileSystemNameBuffer) string(nFileSystemNameSize)37功GetWindows

45、DirectoryA()能 獲得缺省的 Windows 目錄格式 Function ulong GetWindowsDirectoryA(ref string wdir, ulong buf) Library "Kernel32.dll"示例ulong l_buf string windir l_buf = 144windir = space(144) GetWindowsDirectoryA(windir, l_buf) MessageBox("當(dāng)前目錄", windir)GlobalMemoryStatus()能 獲得內(nèi)存的詳細(xì)信息 該函數(shù)使用的 M

46、emory 結(jié)構(gòu)包括下述分量38功ulongm_lengthulong m_loadedulong m_totalphysulong m_availphysulongm_totalpagefilem_availvirtualulongm_availpagefileulongm_totalvirtualulong格式 SubRoutine GlobalMemoryStatus(ref memory mem2) Library"Kernel32.dll"示例memory sysmem GlobalMemoryStatus(sysmem)Messagebox("內(nèi)存大小

47、", string(sysmem.m_length)Messagebox("已加載內(nèi)存", string(sysmem.m_loaded) Messagebox("總的物理內(nèi)存", string(sysmem.m_totalphys)Messagebox("總的可用內(nèi)存", string(sysmem.m_availphys) Messagebox("總的頁面數(shù)", string(sysmem.m_totalpagefile) Messagebox("可用頁面數(shù)", string(sy

48、smem.m_availpagefile) Messagebox("總的虛擬內(nèi)存", string(sysmem.m_totalvirtual) Messagebox("可用虛擬內(nèi)存", string(sysmem.m_availvirtual)LineTo()39功能 從當(dāng)前位置到指置繪制一條直線格式 Function boolean LineTo(ulong hwnd,long wx, long wy) Library"Gdi32.dll"示例請參看 MoveToEx()函數(shù)LoadLibraryA()能 將 32 位 DLL 加

49、載到活動內(nèi)存中格式 Function ulong LoadLibraryA(string modname) Library"Kernel32.dll"示例ulong modhandle/當(dāng) DLL 庫在 DOS 搜索路徑上時 可以不指定路徑modhandle = LoadLibraryA("c:windowsmydll.dll") If modhandle > 0 Then40功MessageBox("返回值", "加載else句柄 = " + string(modhandle)MessageBox(&quo

50、t;函數(shù)執(zhí)行結(jié)果","不能加載指定模塊") end ifmciSendStringA()41功能和.AVI 文件格式 Function long mciSendStringA(string cmd, REF string rtn, long size, long wnd) Library"winmm.dll"示例string s_errortext string filename filename ="c:spin.avi"mciSendStringA("open"+Filename+"type

51、AVIaliastestwait",s_errortext, 0,0)mciSendStringA ("Window test handle "wait",s_errortext, 0, 0)+ string(handle(w_main) + "mciSendStringA mciSendStringA mciSendStringAMessageBoxA()("Put test destination wait",s_errortext, 0, 0)("Play test wait", s_errorte

52、xt, 0, 0)("Close test", s_errortext, 0, 0)42功能 顯示一個消息框格式 Function long MessageBoxA(ulong hwnd, ref string text, ref string title, ulong style) Library"User32.dll"示例long rtnulong handle1, style1 string text1string title1handle1 = handle(parent)text1 = "這是一個 API Messagebox&quo

53、t; title1 = "API MessageBox" style1 = 0rtn = MessageBoxA(handle1,text1,title1,style1)Mouse_Event()43功能和操作鼠標(biāo) 該函數(shù)能夠移動鼠標(biāo)指針 按下鼠標(biāo)按鈕 并且能夠完成用戶使用鼠標(biāo)能夠完成的一切任務(wù) 下面的示例將鼠標(biāo)指針左移 100 個像素移 70 個像素格式 SubRoutine Mouse_Event(ulong dwflag,ulong dx,ulong dy,ulong cbutton,ulong dwextra) Library"User32.dll&quo

54、t;示例int lflaglflag = 1 /1 = 移動鼠標(biāo)指針, 7 = 按下左按鈕, 25 = 按下右按鈕mouse_event(lflag,-80,-50,0,0)MoveToEx()能 將光標(biāo)移動到指置 同時保存移動前的光標(biāo)位置 函數(shù)使用的 prepos構(gòu)包含下述分量 long xpos, long ypos格式 Function boolean MoveToEx(ulong hwnd,long wx, long wy,ref prepos prepos2) Library"Gdi32.dll"示例ulong l_handle, l_deviceprepos p

55、reviouspos /用于保存光標(biāo)移動前的位置l_handle = handle(w_main)l_device = GetDC(l_handle) MoveToEx(l_device,200,200,previouspos) /將光標(biāo)移動到 200,200 處LineTo(l_device,300,300) /在當(dāng)前位置和 300,300 之間畫一條直線MoveWindow()能 移動 放大或縮小窗口格式 Function boolean MoveWindow(ulong whand,int wx,int wy,int ww,int wh,boolean上44功結(jié)45功wflag) Lib

56、rary"User32.dll"示例boolean rtnulong l_handle, l_device l_handle = handle(w_main)/10-X 位置 20-Y 位置 100-寬度 200-高度rtn = MoveWindow(l_handle,10,20,100,200,true) MessageBox("返回值",string(rtn)Pie()能 繪制餅圖格式 Function boolean Pie(ulong hwnd,long x1,long y1,long x2,long y2,long x3,long y3,lon

57、g x4,long y4) Library"Gdi32.dll"示例Boolean rtnulong l_handle,l_device long lv8lv = 10,50,290,220,0,0,80,0l_handle = handle(w_main) l_device = GetDC(l_handle)rtn = Pie(l_device,lv1,lv2,lv3,lv4,lv5,lv6,lv7,lv8)Polygon()能 繪制多邊形 該函數(shù)使用的結(jié)構(gòu) poly 包含下述分量 long xpos5, long ypos5數(shù)組的大小與多邊形邊的條數(shù)相關(guān) 示例中邊的條數(shù)

58、為 5格式 Function boolean Polygon(hdc, ref struct poly poly2, int cnt) Library "Gdi32.dll"示例ulong l_handle, l_device int pcntl_handle = handle(w_main) l_device = GetDC(l_handle) pcnt = 5poly poly3poly3.xpos = 50,100,150,200,250 poly3.ypos = 50,100,150,200,250Polygon(l_device,poly3,pcnt)PostMessageA()46功47功48功能 向創(chuàng)建指定窗口的線索一條消息 但不等待線索處理該消息格式 Function boolean PostMessageA(ulong

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論