




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、vb編程基礎課什么是api api文木游覽器api函數聲明數據類型與”類型女全”常數結構小結一些api函數集:控件與消息函數、硬件與系統函數、菜單函數、繪圖函數什么是api首先,有必耍向大家講一講,什么是apl所謂api本來是為c和c+程序員寫的。api 說來說去,就是一種慚數,他們包含在一個附加名為dll的動態連接庫文件中。用標準的 定義來講,api就是windows的32位應用程序編程接口,是一系列很復雜的函數,消息和 結構,它使編程人員可以用不同類型的編程語言編制出的運行在windows95和windows nt 操作系統上的應川程序??梢哉f,如果你曾經學過vc,那么api對你來說不是什
2、么問題。 但是如果你沒有學過vc,或者你對windows95的結構體系不熟悉,那么可以說,學習api 將是一件很辛苦的事情。如果你打開windows的system文件夾,你可以發現其中有很多附加名為dll的文件。 一個dll中包含的api函數并不只是一個,數十個,甚至是數百個。我們能都掌握它嘛? 冋答是否定的:不可能掌握。但實際上,我們真的沒必要都掌握,只要重點掌握windos系 統本身口帶的api函數就可以了。但,在其中還應當拋開掉同vb本身口有的函數車復的函 數。如,vb的etattr命令可以獲得文件屬性,setattr可以設置文件屬性。對api來講也有對應的函數 getfileattri
3、butes和setfileattributes,性能都差不多。如此地一算,剩卜來的也就5、600個。 是的,也不少。但,我對以敢跟你說,只要你熟悉地掌握100個,那么你的編程水平比現在 髙出至少要兩倍。盡管人們說vb和windows具有密切的關系,但我認為,api更接近 windowso如果你學會了 api,首耍的收獲便是對windows體系結構的認識。這個收 獲是來自不易的。如果你不依靠api會怎么樣?我可以跟你說,絕人多是高級編程書本(當然這不是書的名程叫 高級而高級的,而是在一開始的本書內容中指明本書的閱讀對象是具有一定vb基礎 的讀者的那些書),首先提的問題一般大都是從api開始。因此
4、可以說,你不學api,你 大概將停留在初級水平,無法往上攀登。唯-的途徑也許就是向別人求救:我快死了,快來 救救我呀,這個怎么辦,那個怎么辦?煩不煩呢?當然,現衣網上好人太多(包插我在內,嘻 嘻),但,你應當明白,通過此途徑,你的手中出不了好的作品。這是因為缺乏這些知識你 的腦子里根本行不成一種總體的設計構思。api文本游覽器返回很多api函數都是很長很長的。想看什么樣子嗎?如下就是作為例子的api ddeclienttransaction 函數:declare function ddeclienttransaction lib huser32n (pdata as byte, by vai
5、cbdata as long, by vai hconv as long, by vai hszltem as long, by vai wfmt as long, by vai wtype as long, by vai dwtimeout as long, pdwresult as long) as long哇!這么長?如果你從來沒有接觸過api,我想你肯定被嚇住了。你也許考慮,該不該繼續 學下去。不過不要擔心,幸運的是microsoft的設計家們為我們提供了有用的工具,這便是api文木査看器。通過api文本查看器,我們町以方便地杏找程序所需要的函數聲明、結構類型和常數,然 后將它復制到剪
6、貼板,最后再粘貼到vb程序的代碼段中。在大多數情況下,只要我們確定 了程序所需要的函數、結構和常數這三個方而后,就可以通過對api文木游覽器的以上操 作將他們加入到程序段中,從而程序中可以使用這些函數了。這些是學習api最基本的常 識問題,它遠遠占不到api的龐大的體系內容。今后我們把精力浪費(這絕不是浪費)在哪里 呢?那就是:什么時候使用什么函數,什么時候使用什么結構類型,什么時候使用什么常數。api函數聲明讓我們回想一下。在vb屮,如何聲明函數呢?我想,如果你正在看此文,那么你絕對能夠 回答得出這個問題。以下便是你應該很熟悉的函數聲明:function setfocus (byvai hw
7、nd as long) as long即,這行代碼定義了名為setfocus的函數,此函數具有一個long型數據類型的參數,并按值 傳遞(byvai),函數執行后將返冋一個long型數據。api函數的聲明也很類似,如,api中的setfocus兩數是這樣寫的:declare function setfocus lib nuser32" alias "setfocus" (byvai hwnd as long) as long有點復雜了一些。是的,是復雜了點。但我可以告訴你,除了這些多出來的部分,其他部分 還是和你以前學到的東西是一樣的。函數在程序中的調用也是一樣。
8、如:dim dl as longdl&=setfoucs(forml .hwnd)但,一點是清楚的。它不象你自己寫的程序那樣能夠看到電面的運行機理,也不像vb 自帶的函數那樣,能夠從vb的聯機幫助中查到其用法。唯一的方法就是去學、查vb以外 的資料。declare語句川于在模塊級別中聲明對動態鏈接庫(dll)中外部過程的引川。對此,傷只 要記住任何api函數聲明都必須寫這個語句就可以了。lib指明包含所聲明過程或函數的動態鏈接庫或代碼資源。也就是說,它說明的是,函數或 過程從何而來的問題。如在上例中,setfocus lib huser32n說明 函數setfocus來自user32.
9、dll文件。主要的dll動 態連接庫文件有:user32.dll windows管理。牛成和管理應用程序的用戶接口。gdi32.dll圖形設備接口。產生windows設備的圖形輸出kemel32.dll系統服務。訪問操作系統的計算機資源。注意,當dll文件不在windows或system文件夾中的時候,必須在函數屮說明其出處(路徑)。如1, setfocus lib “c:mydlluser32”函數聲明中的alias是可選的。表示將被調用的過程在動態鏈接庫(dll)中述有另外的名 稱(別名)。如,alias “setfocus“,說明setfocus函數在user32.dll中的另外一個名稱
10、是, setfocuso怎么兩個名都一樣呢?當然,也可以是不同的。在很多情況下,alias說明的函數 名,即別名最后一個字符經常是字符a,如setwindowstext函數的另一個名稱是setwindowstexta,表示為alias "setwindowstextamo這個a只不過是設計家們的習慣的命名 約定,表示函數屬于ansi版木。那么,別名究竟有什么用途呢?從理論上講,別名提供了用另一個名子調用api的函數方法。 如果你指明了別名,那么 盡管我們按declare語句后血的函數來調用該函數,但在函數的 實際調用上是以別名作為首要選擇的。如,以下兩個函數(function,abc
11、d)聲明都是有效的, 他們調用的是同一個setfocus函數:declare function setfocus lib "user32h "setfocus" (byvai hwnd as long) as longdeclare abcd setfocus lib uuser32n alias "selfocus” (byvai hwnd as long) as long需要注意的是,選用alias的時候,應注意別名的大小寫;如果不選用alias時的時候,函 數名必須注意大小寫,而且不能改動。當然,在很多情況下,山于函數聲明是直接從api 文木游覽器
12、屮拷貝過來的,所以這種錯誤的發生機會是很少的,但您有必要知道這一點。 最后提醉你一句,api聲明(包括結構、常數)必須放在窗體或模塊的”通川(general declarations)段。數據類型與“類型安全”api函數中使川的數據類型慕木上和vb中的一樣。但作為win32的api函數中,不存在 integer數據類型。另外一點是在api函數中看不到boolean數據類型。variant數據類型在api函 數中是以any的形式出現,如data as any。盡管其含義是允許任意參數類型作為一個該 api函數的參數傳遞,但這樣做存在一定的缺點。其原因是,這將會使得對目標參數的所有 類型檢查都會被
13、關閉。這白然會給各種類型的參數調用帶來了產生錯謀的機會。為了強制執行嚴格的類型檢査,并避免上面提到的問題,一個辦法是在函數電使川上而提到 到alias技術。如對api函數getdibits可進行另外一種蘆明方法。如下:getdibits函數的原型:public declare function getdibits lib mgdi32m alias ” getdibits” (byvai ahdc as long, by vai hbitmap as long, by vai nstartscan as long, by vai nnumscans as long, lpbits as any
14、, lpbi as bitmapinfo, by vai wusage as long) as longgetdibits函數的改型:public declare function getdibitslong lib ”gdi32” alias ”getdibits” (byvai ahdc as long, by vai hbitmap as long, by vai nstartscan as long, by vai nnumscans as long, lpbits as long, lpbi as bitmapinfo, by vai wusage as long) as long
15、通過本課程前血所學到的知識,我們已經可以得知原型getdibits函數也好,改型 getdibitslong函數也好,實際將調用的都是alias所指定的getdibits原函數。但你應當看 到,兩者的區別在于,我們在改型的函數中強制指定lpbits參數為long形。這樣就會使得 函數調川屮發生的錯課機率減少到了最小。這種方法叫做“安全類型”聲明。api函數中經常看到的數據類型有:long,string,byte,any.(也就這些吧。) 常數 對于api常數來講,沒有什么太特別的學問。請看vb中的以卞代碼:msg = msgbox(h您好”,vbokcancel)我們知道,vbokcancel
16、這個常數的值等于1。對上面的代碼我們完全可以這樣寫,而不會 影響代碼的功能:msg = msgbox(h 您好”,1)但你大概不太愿意選擇后一種,因為這會使得看懂代碼費勁起來。這種方法也被api采取 了。只是api常數必須在事情z前做好初始化聲明vb木身是看不懂的。其內容仍然來自與 api文木游覽器。具體形式如下等等:public const abm_activate = &h6public const right_ctrl_pressed 二 &h4public const rpc_e_server_d1ed = &h80010007private const rpc
17、_s_call_failed_dne = 1727&在常數的初始化屮,右些程序使川global, global const abm_activate = &h6,但我 認為public完全可以代替它。過去我也用過global,但現在不大用了。一會兒用這個,一會 兒用那個,各程序之間不能保持一致性了,起碼看起來別扭。結構返冋結構是c和c+語言中的說法。在vb中一般稱為自定義數據類型。想必很多朋友都已經 認識它。在api領域里,我更喜歡把它叫做結構,因為api各種結構類空根本不是我定義( 自定義)的。在vb中,api結構同樣由type.end type語句來定義。如,在api中,點
18、(point)結 構的定義方法如下:public type pointapix as long,點在x坐標(橫坐標)上的坐標值y as long,點在y坐標(縱坐標)上的坐標值end type乂如,api屮矩形(rect)結構的定義如下:public type rectleft as long '矩形左上角的x坐標top as long,矩形左上角的y坐標right as long '矩形右卜角的x坐標bottom as long知形右下角的y坐標end type這些內容同樣可以從api文木游覽器中拷貝過來。這些結構中的變量名可隨意改動,而不 會影響結構木身。也就是說,這些成員
19、變量都是虛擬的。女u, pointapi結構可改為如下: public type pointapimyx as long,點在x坐標(橫坐標)上的坐標值myyas long,點在y坐標(縱坐標)上的坐標值end type不過,一般來講,是沒有這種必要的。結構木身是一種數據類型,因此,使用時必須聲明具 體變量為該結構型,才能在程序屮真正使川到該結構。結構的聲明方法和其他數據的聲明方法一樣,如,以下語句把變mypoint聲明為pointapi結構類型:mypoint as pointapi引用結構中的成員變量也十分簡單,在結構名后面加上一個然后緊接著寫要引用的成 員變量即口j。這很象vb中的引用一
20、個對象的某個屬性。如,假如我們把上面已經聲明的 mypoint結構中的x變量的值賦給變量temp&則代碼如下:temp&二my point.x但,特別注意的是,你千萬不要認為上例中的mypoint是一個值。它不是值,而是地址( 指針)。值和地址是完全不同的概念。結構要求按引用傳遞給windows苗數,即所有api 函數中,結構都是按byref傳遞的(在declare語句中byref是默認型)。對于結構的傳遞, 你不要試圖采用by vai,你將一無所獲。山于結構名實際上就是指向這個結構的指針(這個 結構的首地址),所以,你也就傳送特定的結構名就可以了(參見小結,我川紅色字體來突出
21、 了這種傳遞方式)。山于結構傳送的是指針,所以函數將直接對結構進行讀寫操作。這種特性很適合于把函數執 行的結果裝載在結構之中。小結返回以下的程序是為了總結本課中學到的內容而給出的。啟動vb,新建一個項添加一個命 令按鈕,并把下血的代碼拷貝到代碼段中,運行它。private declare function getcursorpos lib uuser32h (ippoint as pointapi) as longprivate type pointapi '定義點(point)結構x as long,點在x坐標(橫坐標)上的坐標值y as long,點在y坐標(縱坐標)上的坐標值en
22、d typesub printcursorpos()dim dl as longdim mypoint as pointapidl&二getcursorpos(mypoint)調用函數,獲取屏幕鼠標坐標debug.print ”x=” & str(mypoint.x) & ” and ” & ny=n & str(mypoint.y)end subprivate sub commandl_click()printcursorposend sub輸出結果為(每次運行都可能得到不同的結果,這得由函數調川時鼠標指針在屏幕屮所處的 位置而決定):x= 240 a
23、nd y= 151程序中,getcursorpos函數用來獲取鼠標指針在屏幕上的位置。 以上例子屮,你可以發現,以參數傳遞的myppint結構的內容在函數調川后發生了實質性變 化。這是由于結構是按byref傳遞的原因。-些api函數集返冋windows api1. 控件與消息函數adjustwindowrect給定一種窗口樣式,計算獲得li標弄戶區矩形所需的窗口大小 anypop叩 判斷屏幕上是否存在任何彈!11式窗口arrangelconicwindows排列一個父窗口的最小化子窗口attachthreadl叩ut連接線程輸入函數begindeferwindowpos啟動構建 係列新窗口位置
24、的過程bringwindowtotop將指定的窗口帶至窗1-1列表頂部cascade windows以層盛方式排列窗口childwindowfrompoint返冋父窗口中包含了指定點的第一個子窗口的句柄clienttoscreen判斷窗口內以客戶區坐標表示的一個點的屏幕坐標closewindow最小化指定的窗口copyrect矩形內容復制deferwindowpos該函數為特定的窗口指定一個新窗口位置destroywindow清除指定的窗口以及它的所有子窗口drawanimatedrects描繪一系列動態矩形enable window指定的窗口里允許或禁止所有鼠標及鍵盤輸入enddeferwi
25、ndowpos同時更新deferwindowpos調川時指定的所有窗口的位置及狀態 enumchildwindows為指定的父窗口枚舉子窗口enumthreadwindows枚舉與指定任務相關的窗口enumwindows枚舉窗li列表屮的所有父窗口equalrect判斷兩個矩形結構是否相同findwindow尋找窗口列表中第一個符合指定條件的頂級窗口findwindowex在窗口列表中尋找與指定條件相符的第一個子窗口flash window閃爍顯示指定窗口getactivewindow獲得活動窗口的句柄getcapture獲得一個窗口的句柄,這個窗口位丁當前輸入線程,且擁有鼠標捕獲(鼠標活 動
26、由它接收)getclassinfo取得wndclass結構(或wndclassex結構)的一個副本,結構中包含 了與指定類有關的信息getclasslong取得窗口類的一個long變量條11getclassname為指定的窗口取得類名getclassword為窗口類収得一個整數變量getclientrect返回指定窗i i客戶區矩形的人小getdesktopwindow獲得代表整個屏幕的一個窗口(桌面窗口)句柄getfocus獲得擁有輸入焦點的窗口的句柄getforegroundwindow獲得詢臺窗口的句柄get last act i vepopup獲得在一個給定父窗口中最近激活過的彈出式窗
27、口的句柄getlasterror針對之前調用的api函數,用這個函數取得擴展錯誤信息getparent判斷指定窗口的父窗口gettopwindow搜索內部窗口列表,尋找隸屬于指定窗口的頭一個窗口的句柄 getupdaterect獲得一個矩形,它描敘了指定窗口中需要更新的那-部分 getwindow獲得一個窗口的句柄,該窗口與某源窗口有特定的關系 getwindowcontexthelpid取得與窗口關聯在一起的幫助場景id getwindowlong從指定窗口的結構中取得信息 getwindowplacement獲得指立窗口的狀態及位置信息getwindowrect獲得整個窗口的范圍矩形,窗口
28、的邊框、標題欄、滾動條及菜單等都在這 個矩形內getwindowtext取得一個窗體的標題(caption)文字,或者一個控件的內容getwindowtextlength調查窗口標題文字或控件內容的長短getwindowword獲得指定窗口結構的信息inflaterect增人或減小一個矩形的大小intersectrect這個函數在ipdestrect里載入一個矩形,它是ipsrclrect與lpsrc2rect兩個矩 形的交集invalidaterect屏蔽一個窗口客八區的全部或部分區域ischild判斷一個窗口是否為另一窗口的子或隸屬窗口islconic判斷窗口是否已最小化isrectemp
29、ty判斷一個矩形是否為空iswindow判斷一個窗口句柄是否有效iswindowenabled判斷窗1-1是否處于活動狀態iswindowunicode判斷一個窗口是否為unicode窗i。這意味著窗口為所有基于文木的消息 都接收unicode文字iswindowvisible判斷窗口是否可見iszoomed判斷窗口是否最大化lockwindowupdate鎖定指定窗口,禁止它更新mapwindowpoints將一個窗口客戶區坐標的點轉換到另一窗口的客八區坐標系統move window改變指定窗口的位置和大小offsetrect通過應用一個指定的偏移,從而止矩形移動起來openicon恢復一個
30、最小化的程序,并將其激活ptlnrect判斷指定的點是否位于矩形內部redrawwindow重畫全部或部分窗口releasecapture為當前的應用程序釋放鼠標捕獲screentoclient判斷屏幕上一個指定點的客戶ix坐標scrollwindow滾動窗口客戶區的全部或一部分scrollwindowex根據附加的選項,滾動窗口客戶區的全部或部分setactivewindow激活指定的窗口setcapture將鼠標捕獲設置到指定的窗口setclasslong為窗口類設置一個long變量條目setclassword為窗口類設置一個條目setfocusapi將輸入焦點設到指定的窗口。如有必要,會
31、激活窗口setforegroundwindow將窗口設為系統的前臺窗口setparent指定一個窗口的新父setrect設置指定矩形的內容setrectempty將矩形設為一個空矩形setwindowcontexthelpid為指定的窗口設置幫助場景(上下文)idsetwindowlong在窗口結構中為指定的窗口設置信息setwindowplacement設置窗i i狀態和位置信息setwindowpos為窗口指定一個新位置和狀態setwindowtext設置窗口的標題文字或控件的內容setwindowword在窗口結構中為指定的窗口設置信息showownedpopups顯示或隱藏由指定窗口所
32、有的全部彈出式窗口showwindow控制窗口的可見性showwindowasync a; showwindow 相似subtractrect裝載矩形iprcdst,它是在矩形iprcsrci中減去lprcsrc2得到的結果tilewindows以平鋪順序排列窗口unionrect裝載一個lpdestrect忖標矩形,它是ipsrcirect和lpsrc2rect聯合起來的結果update window強制立即更新窗口validaterect校驗窗口的金部或部分客戶區windowfrompoint返冋包含了指定點的窗口的句柄。忽略屏蔽、隱藏以及透明窗口2. ®!件與系統函數activ
33、atekeyboardlayout激活一個新的鍵盤布局。鍵盤布局定義了按鍵在一種物理性鍵盤上 的位置與含義beep用于生成簡單的聲咅chartooem將一個字串從ansi字符集轉換到oem字符集clipcursor將指針限制到指定區域convertdefaultlocale將一個特殊的地方標識符轉換成真實的地方idcreatecaret根據指定的信息創建一個插入符(光標),并將它選定為指定窗口的默認插入符destroy caret清除(破壞)一個插入符enumcalendarlnfo枚舉在指定"地方”環境屮可川的口歷信息enumdateformats列舉指定的“當地”設置中可用的長、
34、短h期格式enumsystemcodepages枚舉系統中i_l安裝或支持的代碼頁enumsystemlocales枚舉系統已經安裝或提供支持的'哋方"設置enumtimefonnats枚舉一個指定的地方適丿ij的時間格式exitwindowsex退出windows,并用特定的選項重新啟動expandenvironmentstrings 擴充環境字串freeenvironmentstrings翻譯指定的環境字串塊getacp判斷目前止在生效的ansi代碼頁getasynckeystate判斷函數調用吋指定虛擬鍵的狀態getcaretblinktime判斷插入符光標的閃爍頻率g
35、etcaretpos判斷插入符的當前位置getclipcursor取得一個矩形,用于描述目前為鼠標指針規定的剪切區域getcommandline獲得指向當前命令行緩沖區的一個指針getcomputername取得這臺計算機的名稱getcplnfo取得與指定代碼頁有關的信息getcurrencyformat針對指定的"地方”設置,根據貨幣格式格式化一個數字getcursor獲取口前選擇的鼠標指針的句柄getcursorpos獲収鼠標指針的當前位置getdateformat針對指定的“當地”格式,對一個系統日期進行格式化getdoubleclicktime判斷連續兩次鼠標單擊之間會被處理
36、成雙擊事件的間隔時間 getenvironmentstrings為包含了當前壞境字串設置的一個內存塊分配和返冋一個句柄 getenvironmentvariable取得一個壞境變量的值getlnputstate判斷是否存在任何待決(等待處理)的鼠標或鍵盤事件 getkbcodepage由getoemcp取代,兩者功能完全相同getkeyboardlayout取得一個句柄,描述指定應用程序的鍵盤彳|j局getkeyboardlayoutlist獲得系統適丿ij的所有鍵盤布局的一個列表getkeyboardlayoutname取得為前活動鍵盤布局的名稱getkeyboardstate取得鍵盤上每個
37、虛擬鍵當前的狀態getkeyboardtype 了解與正在使川的鍵盤有關的信息getkeynametext在給出掃描碼的前提下,判斷鍵名get key state針對己處理過的按鍵,在最近一次輸入信息時,判斷指定虛擬鍵的狀態 getlasterror針對之前調用的api函數,用這個函數取得擴展錯誤信息 getlocalelnfo収得與指定“地方”有關的信息getlocaltime取得本地日期和時間getnumberformat針對指定的“地方”,按特定的格式格式化一個數字getoemcp判斷在oem和ansi字符集間轉換的windows代碼頁getqueuestatus判斷應用程序消息隊列中待
38、決(等待處理)的消息類型 getsyscolor判斷指定windows顯示對象的顏色getsystemdefaultlangid取得系統的默認語言idgetsystemdefaultlcid取得當前的默認系統“地方”getsystemlnfo取得與底層硬件平臺有關的信息getsystemmetrics返冋與windows環境有關的信息getsystenipowerstatus獲得與當前系統電源狀態冇關的信息getsystemtime収得當前系統時間,這個時間采用的是“協同壯界時間"(即utc,也叫做 gmt)格式gets yste mti me adj ustment使內部系統時鐘a
39、/個外部的時鐘信號源同步getthreadlocale取得當前線程的地方idgettickcount用于獲取自windows jr!動以來經歷的時間長度(亳秒)gettimeformat針對當前指定的“地方”,按特定的格式格式化一個系統吋間gettimezonelnformation取得與系統吋區設置有關的信息getuserdefaultlangid為當前用戶取得默認語言idgetuserdefaultlcid取得當前用戶的默認“地方”設置getusername取得當前用八的名字getversion判斷當前運行的windows和dos版本getversionex取得與平臺和操作系統有關的版本信
40、息hidecaret在指定的窗口隱藏插入符(光標)isvalidcodepage判斷一個代碼頁是否有效isvalidlocale判斷地方標識符是否有效keybd.event這個函數模擬了鍵盤行動loadkeyboardlayout載入一個鍵盤布局map virtual key根據指定的映射類型,執行不同的掃描碼和字符轉換mapvirtualkeyex根據指定的映射類型,執彳亍不同的扌.:1描碼和字符轉換messagebeep播放-個系統聲咅。系統聲咅的分配方案是在控制而板里決定的 mouse_event模擬一次鼠標事件oemkeyscan判斷oem字符集中的一個ascii字符的掃描碼和shif
41、t鍵狀態oemtochar將oem字符集的一個字串轉換到ansi字符集setcaretblinktime指定插入符(光標)的閃爍頻率setcaretpos指定插入符的位置setcomputername設置新的計算機名setcursor將指定的鼠標指針設為當前指針setcursorpos設置指針的位置setdoubleclicktime設置連續兩次鼠標取擊之間能使系統認為是雙擊事件的間隔時間setenvironmentvariable將一個環境變量設為指定的值setkeyboardstate設置每個虛擬鍵當前在鍵盤上的狀態setlocalelnfo改變用戶“地方”設置信息setlocaltime
42、設置當前地方吋間setsyscolors設置指定窗口顯示對象的顏色setsystemcursor改變任何一個標準系統指針setsystemtime設置當前系統時間setsys temti me adj ust me nt定時添加一個校準值使內部系統時鐘與一個外部的時鐘信號源同 步setthreadlocale為當前線程設置地方settimezonelnformation設置系統時區信息showcaret在指定的窗口里顯示插入符(光標)showcursor控制鼠標指針的可視性swapmousebutton決定是否互換鼠標左右鍵的功能systemparametersinfo獲取和設置數量眾多的wi
43、ndows系統參數systemtimetotzspecificlocalti me將系統時間轉換成地方吋間toascii根據當前的掃描碼和鍵盤信息,將一個虛擬鍵轉換成ascii字符tounicode根據當前的掃描碼和鍵盤信息,將一個虛擬鍵轉換成unicode字符 unloadkeyboardlayout卸載指定的鍵盤布局vkkeyscan針對windows字符集中一個ascii字符,判斷虛擬鍵碼和shif鍵的狀態 宀 7g3. 菜單函數appendmenu在指定的菜氓里添加一個菜旳項checkmenuitem復選或撤消復選指定的菜卩條目checkmenuradioitem指定一個菜卩條目被復選
44、成“旳選"項目createmenu創建新菜單createpop叩menu創建一個空的彈出式菜單deletemenu刪除指定的菜單條廿destroymenu刪除指定的菜單drawmenubar為指定的窗口重1網菜單enablemenuitem允許或禁止指定的菜單條目getmenu取得窗口中一個菜單的句柄getmenucheckmarkdimensions返回一個菜單復選符的人小getmenucontexthelpld取得一個菜單的幫助場景idgetmenudefaultltem判斷菜單屮的哪個條h是默認條hgetmenultemcount返冋菜單屮條h (菜單項)的數量getmenui
45、temid返冋位于菜單中指定位賈處的條目的菜單1dgetmenuitemlnfo取得(接收)與一個菜單條目有關的特定佶息getmenuitemrect在一個矩形中裝載指定菜譏條目的屏幕坐標信息getmenustate取得與指定菜單條目狀態有關的信息getmenustring取得指定菜單條目的字串getsubmenu取得一個彈出式菜單的句柄,它位丁菜單中指定的位置getsystemmenu取得指定窗口的系統菜單的句柄hilitemenuitem控制頂級菜單條0的加亮顯示狀態insertmenu在菜單的指定位置處插入一個菜單條【,并根據需要將其他條丨i向下移動insertmenuitem插入一個新
46、菜單條iismenu判斷指定的句柄是否為一個菜單的句柄loadmenu從指定的模塊或應用程序實例中載入一個菜單loadmenuindirect 載入一個菜單menuitemfrompoint判斷哪個菜單條h包含了屏幕上一個指定的點modifymenu改變菜卩條目removemenu刪除指定的菜單條tlsetmenu設置窗口菜單setmenucontexthelpld設置一個菜單的幫助場景1dsetmenudefaultltem將一個菜單條目設為默認條目setmenuitembitmaps設置一幅特定位圖,令其在指定的菜單條目中使用,代替標準的復選 符號(7)setmenuitemlnfo為一個
47、菜單條目設置指定的信息trackpop叩menu在屏幕的任意地方顯示一個彈出式菜單trackpopupmenuex與trackpopupmenu相似,只是它提供了額外的功能宀兀以下是兒個關于菜單函數的類型定義menuiteminfo這個結構包含了菜單條目的信息tpmparams這個結構用trackpopupmenuex函數以支持額外的功能4. 繪圖函數abortpath拋棄選入指定設備場景中的所有路徑。也取消1=1前止在進行的任何路徑的創建工 作anglearc用一個連接弧畫一-條線arc畫一個圓弧beginpath啟動一個路徑分支canceldc取消另一個線程里的長時間繪圖操作chord畫一
48、個弦closeenhmetafile關閉指定的增強型圖元文件設備場景,并將新建的圖元文件返回一個句柄closefigure描繪到一,個路徑時,關閉當前打開的圖形closemetafile關閉指定的圖元文件設備場呆,并向新建的圖元文件返冋一個句柄copyenhmetafile制作指定增強型圖元文件的一個副本(拷貝)copymetafile制作指定(標準)圖元文件的一個副本createbrushlndirect在一個logbrush數據結構的基礎上創建一個刷子created1bpatternbrush用一幅與設備無關的位圖創建一個刷子,以便指定刷子樣式(圖案)createenhmetafile創建一個增強型的圖元文件設備場景createhatchbmsh創建帶有陰影圖案的一個刷子createmetafile創建一個圖元文件設備場呆createpatternbrush用指定了刷子圖案的一幅位圖創建一個刷子createpen用指定的樣式、寬度和顏色創建一個畫筆createpenlndirect根據指定的logpen結構創建一個畫筆createsolidbru
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 玻璃制品市場推廣策略考核試卷
- 紡織面料色彩搭配技巧考核試卷
- 液化石油氣行業安全生產法律法規應用考核試卷
- 碳排放減少與碳配額管理考核試卷
- 游樂設施項目管理中的團隊溝通考核試卷
- 石材表面處理技術更新考核試卷
- 紡織品的可持續材料開發考核試卷
- 米、面制品消費行為分析考核試卷
- 電動機在不同負載下的性能評估考核試卷
- 景德鎮陶瓷職業技術學院《中國古代文學史四明清文學》2023-2024學年第二學期期末試卷
- 員工面試登記表通用模板
- 部編版2022-2023學年六年級下冊期末語文升學分班??家族e題模擬試卷(二)含解析
- 《老年人權益保障法》法制講座稿
- GB/T 819.1-2000十字槽沉頭螺釘第1部分:鋼4.8級
- GB/T 32249-2015鋁及鋁合金模鍛件、自由鍛件和軋制環形鍛件通用技術條件
- GB/T 25179-2010生活垃圾填埋場穩定化場地利用技術要求
- GB/T 18705-2002裝飾用焊接不銹鋼管
- GB/T 12706.2-2020額定電壓1 kV(Um=1.2 kV)到35 kV(Um=40.5 kV)擠包絕緣電力電纜及附件第2部分:額定電壓6 kV(Um=7.2 kV)到30 kV(Um=36 kV)電纜
- GB 4351.1-2005手提式滅火器第1部分:性能和結構要求
- GA/T 850-2009城市道路路內停車泊位設置規范
- 顯微鏡檢驗報告
評論
0/150
提交評論