程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> VB編程基本課教程

VB編程基本課教程

編輯:VB綜合教程

VB編程基本課教程。本站提示廣大學習愛好者:(VB編程基本課教程)文章只能為提供參考,不一定能成為您想要的結果。以下是VB編程基本課教程正文


VB編程基本課
甚麼是API API文本旅游器 
API函數聲明 數據類型與"類型平安" 
常 數 結 構 
小 結 一些API函數集: 控件與新聞函數、硬件與體系函數、菜單函數、畫圖函數 
甚麼是API  
起首,有需要向年夜家講一講,甚麼是API。所謂API原來是為C和C++法式員寫的。API說來講去,就是一種函數,他們包括在一個附加名為DLL的靜態銜接庫文件中。用尺度的界說來說,API就是Windows的32位運用法式編程接口,是一系列很龐雜的函數,新聞和構造,它使編程人員可以用分歧類型的編程說話編制出的運轉在Windows95和Windows NT操作體系上的運用法式。可以說,假如你已經學過VC,那末API對你來講不是甚麼成績。然則假如你沒有學過VC,或許你對Windows95的構造系統不熟習,那末可以說,進修API將是一件很辛勞的工作。
假如你翻開WINDOWS的SYSTEM文件夾,你可以發明個中有許多附加名為DLL的文件。一個DLL中包括的API函數其實不只是一個,數十個,乃至是數百個。我們能都控制它嘛?答復能否定的∶弗成能控制。但現實上,我們真的沒需要都控制,只需重點控制Windos體系自己自帶的API函數便可以了。但,在個中還應該拋開失落同VB自己自有的函數反復的函數。如,VB
的etAttr敕令可以取得文件屬性,SetAttr可以設置文件屬性。對API來說也有對應的函數
GetFileAttributes和SetFileAttributes,機能都差不多。如斯地一算,剩上去的也就5、600個。是的,也很多。但,我可以敢跟你說,只需你熟習地控制100個,那末你的編程程度比如今凌駕至多要兩倍。雖然人們說VB和WINDOWS具有親密的關系,但我以為,API更接近
WINDOWS。假如你學會了API,重要的收成就是對WINDOWS系統構造的熟悉。這個收成是來自不容易的。
假如你不依附API會怎樣樣?我可以跟你說,絕年夜多是高等編程書本(固然這不是書的名程叫高等而高等的,而是在一開端的《本書內容》中指明《本書的浏覽對象是具有必定VB基本的讀者》的那些書),起首提的成績普通年夜都是從API開端。是以可以說,你不學API,你年夜概將逗留在低級程度,沒法往上攀緣。獨一的門路或許就是向他人求救∶我快逝世了,快來救救我呀,這個怎樣辦,誰人怎樣辦?煩不煩呢?固然,如今網上大好人太多(包含我在內,嘻嘻),但,你應該明確,經由過程此門路,你的手中出不了好的作品。這是由於缺少這些常識你的頭腦裡基本行不成一種整體的設計構想。 
API文本旅游器 [前往]
許多API函數都是很長很長的。想看甚麼模樣嗎?以下就是作為例子的API DdeClientTransaction函數∶
Declare Function DdeClientTransaction Lib "user32" (pData As Byte, ByVal cbData As Long, ByVal hConv As Long, ByVal hszItem As Long, ByVal wFmt As Long, ByVal wType As Long, ByVal dwTimeout As Long, pdwResult As Long) As Long
哇!這麼長?假如你歷來沒有接觸過API,我想你確定被嚇住了。你或許斟酌,該不應持續學下去。不外不要擔憂,榮幸的是Microsoft的設計家們為我們供給了有效的對象,這就是API
文本檢查器。
經由過程API文本檢查器,我們可以便利地查找法式所須要的函數聲明、構造類型和常數,然後將它復制到剪貼板,最初再粘貼到VB法式的代碼段中。在年夜多半情形下,只需我們肯定了法式所須要的函數、構造和常數這三個方面後,便可以經由過程對API文本旅游器的以上操作將他們參加到法式段中,從而法式中可使用這些函數了。這些是進修API最根本的知識成績,它遠遠占不到API的宏大的系統內容。往後我們把精神糟蹋(這毫不是糟蹋)在哪裡呢?那就是∶
甚麼時刻應用甚麼函數,甚麼時刻應用甚麼構造類型,甚麼時刻應用甚麼常數。 
API函數聲明 
讓我們回憶一下。在VB中,若何聲明函數呢?我想,假如你正在看此文,那末你相對可以或許答復得出這個成績。以下就是你應當很熟習的函數聲明∶
Function SetFocus (ByVal hwnd As Long) As Long
即,這行代碼界說了名為SetFocus的函數,此函數具有一個Long型數據類型的參數,並按值傳遞(ByVal),函數履行後將前往一個Long型數據。
API函數的聲明也很相似,如,API中的SetFocus 函數是如許寫的∶
Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
有點龐雜了一些。是的,是龐雜了點。但我可以告知你,除這些多出來的部門,其他部門照樣和你之前學到的器械是一樣的。函數在法式中的挪用也是一樣。如:
Dim dl As Long
dl&=SetFoucs(Form1.Hwnd)
但,一點是清晰的。它不象你本身寫的法式那樣可以或許看到外面的運轉機理,也不像VB
自帶的函數那樣,可以或許從VB的聯機贊助中查到其用法。獨一的辦法就是去學、查VB之外的材料。
Declare 語句用於在模塊級別中聲明對靜態鏈接庫 (DLL) 中內部進程的援用。對此,你只需記住任何API函數聲明都必需寫這個語句便可以了。
Iib 指明包括所聲明進程或函數的靜態鏈接庫或代碼資本。也就是說,它解釋的是,函數或進程從何而來的成績。
如在上例中,SetFocus Lib "user32"解釋 函數 SetFocus 來自 user32.dll文件。重要的dll靜態銜接庫文件有∶
user32.dll Windows治理。生成和治理運用法式的用戶接口。
GDI32.dll 圖形裝備接口。發生Windows裝備的圖形輸入
Kernel32.dll 體系辦事。拜訪操作體系的盤算機資本。
留意,當DLL文件不在Windows或System文件夾中的時刻,必需在函數中解釋其出處(
途徑)。如,SetFocus Lib "c:\Mydll\user32"
函數聲明中的Alias 是可選的。表現將被挪用的進程在靜態鏈接庫 (DLL) 中還有別的的稱號(別號)。如,Alias "SetFocus" ,解釋SetFocus函數在User32.dll中的別的一個稱號是,
SetFocus。怎樣兩個名都一樣呢?固然,也能夠是分歧的。在許多情形下,Alias解釋的函數名,即別號最初一個字符常常是字符A,如SetWindowsText函數的另外一個稱號是
SetWindowsTextA,表現為Alias "SetWindowsTextA"。這個A只不外是設計家們的習氣的定名商定,表現函數屬於ANSI版本。
那末,別號畢竟有甚麼用處呢?從實際上講,別號供給了用另外一個名子挪用API的函數辦法。假如你指清楚明了別號,那末 雖然我們按Declare語句前面的函數來挪用該函數,但在函數的現實挪用上是以別號作為重要選擇的。如,以下兩個函數(Function,ABCD)聲明都是有用的,他們挪用的是統一個 SetFocus函數∶
Declare Function SetFocus Lib "user32" "SetFocus" (ByVal hwnd As Long) As Long
Declare ABCD SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
須要留意的是,選用Alias的時刻,應留意別號的年夜小寫;假如不選用Alias 時的時刻,函數名必需留意年夜小寫,並且不克不及修改。固然,在許多情形下,因為函數聲明是直接從API
文本旅游器中拷貝過去的,所以這類毛病的產生機遇是很少的,但您有需要曉得這一點。
最初提示你一句,API聲明(包含構造、常數)必需放在窗體或模塊的"通用(General Declarations)段。 
數據類型與"類型平安" 
API函數中應用的數據類型根本上和VB中的一樣。但作為WIN32的API函數中,不存在Integer
數據類型。別的一點是在API函數中看不到Boolean數據類型。 Variant數據類型在API函數中是以Any的情勢湧現,如Data As Any。雖然其寄義是許可隨意率性參數類型作為一個該API函數的參數傳遞,但如許做存在必定的缺陷。其緣由是,這將會使得對目的參數的一切類型檢討都邑被封閉。這天然會給各類類型的參數挪用帶來了發生毛病的機遇。
為了強迫履行嚴厲的類型檢討,並防止下面提到的成績,一個方法是在函數裡應用下面提到到Alias技巧。如對API函數 GetDIBits 可停止別的一種聲明辦法。以下∶
GetDIBits函數的原型∶
Public Declare Function GetDIBits Lib "gdi32" Alias "GetDIBits" (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long
GetDIBits函數的改型∶
Public Declare Function GetDIBitsLong Lib "gdi32" Alias "GetDIBits" (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Long, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long
經由過程本課程後面所學到的常識,我們曾經可以得知原型 GetDIBits函數也好,改型 GetDIBitsLong函數也好,現實將挪用的都是Alias所指定的 GetDIBits原函數。但你應該看到,二者的差別在於,我們在改型的函數中強迫指定lpBits參數為Long形。如許就會使得函數挪用中產生的毛病機率削減到了最小。這類辦法叫做"平安類型"聲明。
API函數中常常看到的數據類型有∶Long,String,Byte,Any....(也就這些吧。) 
常 數 
關於API常數來說,沒有甚麼太特殊的學問。請看VB中的以下代碼∶
Msg = MsgBox("您好", vbOKCancel)
我們曉得, vbOKCancel這個常數的值等於1。對下面的代碼我們完整可以如許寫,而不會影響代碼的功效∶
Msg = MsgBox("您好", 1)
但你年夜概不太情願選擇後一種,由於這會使得看懂代碼費力起來。這類辦法也被API采用了。只是API常數必需在工作之前做好初始化聲明VB自己是看不懂的。其內容依然來自與API
文本旅游器。詳細情勢以下等等∶
Public Const ABM_ACTIVATE = &H6 
Public Const RIGHT_CTRL_PRESSED = &H4 
Public Const RPC_E_SERVER_DIED = &H80010007
Private Const RPC_S_CALL_FAILED_DNE = 1727& 
在常數的初始化中,有些法式應用Global,如Global Const ABM_ACTIVATE = &H6,但我以為Public完整可以取代它。曩昔我也用過Global,但如今不年夜用了。一會兒用這個,一會兒用誰人,各法式之間不克不及堅持分歧性了,最少看起來別扭。 
結 構 [前往]
構造是C和C++說話中的說法。在VB中普通稱為自界說數據類型。想必許多同伙都曾經熟悉它。在API范疇裡,我更愛好把它叫做構造,由於API各類構造類型基本不是我界說(
自界說)的。
在VB中,API構造異樣由TYPE.......END TYPE語句來界說。如,在API中,點(Point)構造的界說辦法以下:
Public Type POINTAPI
X As Long '點在X坐標(橫坐標)上的坐標值
Y As Long '點在Y坐標(縱坐標)上的坐標值
End Type
又如,API中矩形(Rect)構造的界說以下∶
Public Type RECT
Left As Long '矩形左上角的X坐標
Top As Long '矩形左上角的Y坐標
Right As Long '矩形右下角的X坐標
Bottom As Long '矩形右下角的Y坐標
End Type
這些內容異樣可以從API文本旅游器中拷貝過去。這些構造中的變量名可隨便修改,而不會影響構造自己。也就是說,這些成員變量都是虛擬的。如,POINTAPI構造可改成以下∶
Public Type POINTAPI
MyX As Long '點在X坐標(橫坐標)上的坐標值
MyY As Long '點在Y坐標(縱坐標)上的坐標值
End Type
不外,普通來說,是沒有這類需要的。構造自己是一種數據類型,是以,應用時必需聲明詳細變量為該構造型,能力在法式中真正應用到該構造。構造的聲明辦法和其他數據的聲明辦法一樣,如,以下語句把變MyPoint聲明為POINTAPI構造類型∶
MyPoint As POINTAPI
援用構造中的成員變量也非常簡略,在構造名前面加上一個".",然後緊接著寫要援用的成員變量便可。這很象VB中的援用一個對象的某個屬性。如,假設我們把下面曾經聲明的MyPoint構造中的X變量的值賦給變量Temp&
則代碼以下∶
Temp&=MyPoint.X
但,特殊留意的是,你萬萬不要以為上例中的MyPoint是一個值。它不是值,而是地址(
指針)。值和地址是完整分歧的概念。構造請求按援用傳遞給WINDOWS函數,即一切API
函數中,構造都是按ByRef傳遞的(在Declare語句 中ByRef是默許型)。關於構造的傳遞,你不要試圖采取ByVal,你將一無所得。因為構造名現實上就是指向這個構造的指針(這個構造的首地址),所以,你也就傳送特定的構造名便可以了(拜見小結,我用白色字體來凸起了這類傳遞方法)。
因為構造傳送的是指針,所以函數將直接對構造停止讀寫操作。這類特征很合適於把函數履行的成果裝載在構造當中。 
小 結 [前往]
以下的法式是為了總結本課中學到的內容而給出的。啟動VB,新建一個項目,添加一個敕令按鈕,並把上面的代碼拷貝到代碼段中,運轉它。 
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI '界說點(Point)構造
X As Long '點在X坐標(橫坐標)上的坐標值
Y As Long '點在Y坐標(縱坐標)上的坐標值
End Type
Sub PrintCursorPos( )
Dim dl AS Long
Dim MyPoint As POINTAPI
dl&= GetCursorPos(MyPoint) '挪用函數,獲得屏幕鼠標坐標
Debug.Print "X=" & Str(MyPoint.X) & " and " & "Y=" & Str(MyPoint.Y)
End Sub
Private Sub Command1_Click()
PrintCursorPos
End Sub
輸入成果為(每次運轉都能夠獲得分歧的成果,這得由函數挪用時鼠標指針在屏幕中所處的地位而決議)∶
X= 240 and Y= 151
法式中,GetCursorPos函數用來獲得鼠標指針在屏幕上的地位。
以上例子中,你可以發明,以參數傳遞的MyPpint構造的內容在函數挪用後產生了本質性變更。這是因為構造是按ByRef傳遞的緣由。 
一些API函數集 [前往]
Windows API
1.控件與新聞函數 
AdjustWindowRect 給定一種窗口款式,盤算取得目的客戶區矩形所需的窗口年夜小 
AnyPopup 斷定屏幕上能否存在任何彈出式窗口 
ArrangeIconicWindows 分列一個父窗口的最小化子窗口 
AttachThreadInput 銜接線程輸出函數 
BeginDeferWindowPos 啟動構建一系列新窗口地位的進程 
BringWindowToTop 將指定的窗口帶至窗口列表頂部 
CascadeWindows 以層疊方法分列窗口 
ChildWindowFromPoint 前往父窗口中包括了指定點的第一個子窗口的句柄 
ClientToScreen 斷定窗口內以客戶區坐標表現的一個點的屏幕坐標 
CloseWindow 最小化指定的窗口 
CopyRect 矩形內容復制 
DeferWindowPos 該函數為特定的窗口指定一個新窗口地位 
DestroyWindow 消除指定的窗口和它的一切子窗口 
DrawAnimatedRects 描寫一系列靜態矩形 
EnableWindow 指定的窗口裡許可或制止一切鼠標及鍵盤輸出 
EndDeferWindowPos 同時更新DeferWindowPos挪用時指定的一切窗口的地位及狀況
EnumChildWindows 為指定的父窗口列舉子窗口 
EnumThreadWindows 列舉與指定義務相干的窗口 
EnumWindows 列舉窗口列表中的一切父窗口 
EqualRect 斷定兩個矩形構造能否雷同 
FindWindow 尋覓窗口列表中第一個相符指定前提的頂級窗口 
FindWindowEx 在窗口列表中尋覓與指定前提符合的第一個子窗口 
FlashWindow 閃耀顯示指定窗口 
GetActiveWindow 取得運動窗口的句柄 
GetCapture 取得一個窗口的句柄,這個窗口位於以後輸出線程,且具有鼠標捕捉(鼠標運動由它吸收) 
GetClassInfo 獲得WNDCLASS構造(或WNDCLASSEX構造)的一個正本,構造中包括了與指定類有關的信息 
GetClassLong 獲得窗口類的一個Long變量條目 
GetClassName 為指定的窗口獲得類名 
GetClassWord 為窗口類獲得一個整數變量 
GetClientRect 前往指定窗口客戶區矩形的年夜小 
GetDesktopWindow 取得代表全部屏幕的一個窗口(桌面窗口)句柄 
GetFocus 取得具有輸出核心的窗口的句柄
GetForegroundWindow 取得前台窗口的句柄 
GetLastActivePopup 取得在一個給定父窗口中比來激活過的彈出式窗口的句柄 
GetLastError 針對之前挪用的api函數,用這個函數獲得擴大毛病信息 
GetParent 斷定指定窗口的父窗口 
GetTopWindow 搜刮外部窗口列表,尋覓附屬於指定窗口的頭一個窗口的句柄 
GetUpdateRect 取得一個矩形,它描敘了指定窗口中須要更新的那一部門 
GetWindow 取得一個窗口的句柄,該窗口與某源窗口有特定的關系 
GetWindowContextHelpId 獲得與窗口聯系關系在一路的贊助場景ID 
GetWindowLong 從指定窗口的構造中獲得信息 
GetWindowPlacement 取得指定窗口的狀況及地位信息 
GetWindowRect 取得全部窗口的規模矩形,窗口的邊框、題目欄、轉動條及菜單等都在這個矩形內 
GetWindowText 獲得一個窗體的題目(caption)文字,或許一個控件的內容 
GetWindowTextLength 查詢拜訪窗口題目文字或控件內容的長短 
GetWindowWord 取得指定窗口構造的信息 
InflateRect 增年夜或減小一個矩形的年夜小 
IntersectRect 這個函數在lpDestRect裡載入一個矩形,它是lpSrc1Rect與lpSrc2Rect兩個矩形的交集
InvalidateRect 屏障一個窗口客戶區的全體或部門區域 
IsChild 斷定一個窗口能否為另外一窗口的子或附屬窗口
IsIconic 斷定窗口能否已最小化 
IsRectEmpty 斷定一個矩形能否為空 
IsWindow 斷定一個窗口句柄能否有用 
IsWindowEnabled 斷定窗口能否處於運動狀況 
IsWindowUnicode 斷定一個窗口能否為Unicode窗口。這意味著窗口為一切基於文本的新聞都吸收Unicode文字 
IsWindowVisible 斷定窗口能否可見 
IsZoomed 斷定窗口能否最年夜化 
LockWindowUpdate 鎖定指定窗口,制止它更新 
MapWindowPoints 將一個窗口客戶區坐標的點轉換到另外一窗口的客戶區坐標體系 
MoveWindow 轉變指定窗口的地位和年夜小 
OffsetRect 經由過程運用一個指定的偏移,從而讓矩形挪動起來 
OpenIcon 恢復一個最小化的法式,並將其激活 
PtInRect 斷定指定的點能否位於矩形外部 
RedrawWindow 重畫全體或部門窗口
ReleaseCapture 為以後的運用法式釋放鼠標捕捉 
ScreenToClient 斷定屏幕上一個指定點的客戶區坐標 
ScrollWindow 轉動窗口客戶區的全體或一部門 
ScrollWindowEx 依據附加的選項,轉動窗口客戶區的全體或部門 
SetActiveWindow 激活指定的窗口 
SetCapture 將鼠標捕捉設置到指定的窗口 
SetClassLong 為窗口類設置一個Long變量條目 
SetClassWord 為窗口類設置一個條目 
SetFocusAPI 將輸出核心設到指定的窗口。若有需要,會激活窗口 
SetForegroundWindow 將窗口設為體系的前台窗口 
SetParent 指定一個窗口的新父 
SetRect 設置指定矩形的內容 
SetRectEmpty 將矩形設為一個空矩形 
SetWindowContextHelpId 為指定的窗口設置贊助場景(高低文)ID 
SetWindowLong 在窗口構造中為指定的窗口設相信息 
SetWindowPlacement 設置窗口狀況和地位信息
SetWindowPos 為窗口指定一個新地位和狀況 
SetWindowText 設置窗口的題目文字或控件的內容 
SetWindowWord 在窗口構造中為指定的窗口設相信息 
ShowOwnedPopups 顯示或隱蔽由指定窗口一切的全體彈出式窗口 
ShowWindow 掌握窗口的可見性 
ShowWindowAsync 與ShowWindow類似 
SubtractRect 裝載矩形lprcDst,它是在矩形lprcSrc1中減去lprcSrc2獲得的成果 
TileWindows 以平鋪次序分列窗口 
UnionRect 裝載一個lpDestRect目的矩形,它是lpSrc1Rect和lpSrc2Rect結合起來的成果 
UpdateWindow 強迫立刻更新窗口 
ValidateRect 校驗窗口的全體或部門客戶區 
WindowFromPoint 前往包括了指定點的窗口的句柄。疏忽屏障、隱蔽和通明窗口
2.硬件與體系函數
ActivateKeyboardLayout 激活一個新的鍵盤結構。鍵盤結構界說了按鍵在一種物感性鍵盤上的地位與寄義 
Beep 用於生成簡略的聲響 
CharToOem 將一個字串從ANSI字符集轉換到OEM字符集 
ClipCursor 將指針限制到指定區域 
ConvertDefaultLocale 將一個特別的處所標識符轉換成真實的處所ID 
CreateCaret 依據指定的信息創立一個拔出符(光標),並將它選定為指定窗口的默許拔出符 
DestroyCaret 消除(損壞)一個拔出符 
EnumCalendarInfo 列舉在指定“處所”情況中可用的日歷信息 
EnumDateFormats 羅列指定的“本地”設置中可用的長、短日期格局 
EnumSystemCodePages 列舉體系中已裝置或支撐的代碼頁 
EnumSystemLocales 列舉體系曾經裝置或供給支撐的“處所”設置 
EnumTimeFormats 列舉一個指定的處所實用的時光格局 
ExitWindowsEx 加入windows,並用特定的選項從新啟動 
ExpandEnvironmentStrings 擴大情況字串 
FreeEnvironmentStrings 翻譯指定的情況字串塊 
GetACP 斷定今朝正在失效的ANSI代碼頁
GetAsyncKeyState 斷定函數挪用時指定虛擬鍵的狀況 
GetCaretBlinkTime 斷定拔出符光標的閃耀頻率 
GetCaretPos 斷定拔出符確當前地位 
GetClipCursor 獲得一個矩形,用於描寫今朝為鼠標指針劃定的剪切區域 
GetCommandLine 取得指向以後敕令行緩沖區的一個指針 
GetComputerName 獲得這台盤算機的稱號 
GetCPInfo 獲得與指定代碼頁有關的信息 
GetCurrencyFormat 針對指定的“處所”設置,依據泉幣格局格局化一個數字 
GetCursor 獲得今朝選擇的鼠標指針的句柄 
GetCursorPos 獲得鼠標指針確當前地位 
GetDateFormat 針對指定的“本地”格局,對一個體系日期停止格局化 
GetDoubleClickTime 斷定持續兩次鼠標單擊之間會被處置成雙擊事宜的距離時光 
GetEnvironmentStrings 為包括了以後情況字串設置的一個內存塊分派和前往一個句柄 
GetEnvironmentVariable 獲得一個情況變量的值 
GetInputState 斷定能否存在任何待決(期待處置)的鼠標或鍵盤事宜 
GetKBCodePage 由GetOEMCP代替,二者功效完整雷同
GetKeyboardLayout 獲得一個句柄,描寫指定運用法式的鍵盤結構 
GetKeyboardLayoutList 取得體系實用的一切鍵盤結構的一個列表 
GetKeyboardLayoutName 獲得以後運動鍵盤結構的稱號 
GetKeyboardState 獲得鍵盤上每一個虛擬鍵以後的狀況 
GetKeyboardType 懂得與正在應用的鍵盤有關的信息 
GetKeyNameText 在給出掃描碼的條件下,斷定鍵名 
GetKeyState 針對已處置過的按鍵,在比來一次輸出信息時,斷定指定虛擬鍵的狀況 
GetLastError 針對之前挪用的api函數,用這個函數獲得擴大毛病信息 
GetLocaleInfo 獲得與指定“處所”有關的信息 
GetLocalTime 獲得當地日期和時光 
GetNumberFormat 針對指定的“處所”,按特定的格局格局化一個數字 
GetOEMCP 斷定在OEM和ANSI字符集間轉換的windows代碼頁 
GetQueueStatus 斷定運用法式新聞隊列中待決(期待處置)的新聞類型 
GetSysColor 斷定指定windows顯示對象的色彩 
GetSystemDefaultLangID 獲得體系的默許說話ID 
GetSystemDefaultLCID 獲得以後的默許體系“處所”
GetSystemInfo 獲得與底層硬件平台有關的信息 
GetSystemMetrics 前往與windows情況有關的信息 
GetSystemPowerStatus 取得與以後體系電源狀況有關的信息 
GetSystemTime 獲得以後體系時光,這個時光采取的是“協同世界時光”(即UTC,也叫做GMT)格局 
GetSystemTimeAdjustment 使外部體系時鐘與一個內部的時鐘旌旗燈號源同步 
GetThreadLocale 獲得以後線程的處所ID 
GetTickCount 用於獲得自windows啟動以來閱歷的時光長度(毫秒) 
GetTimeFormat 針對以後指定的“處所”,按特定的格局格局化一個體系時光 
GetTimeZoneInformation 獲得與體系時區設置有關的信息 
GetUserDefaultLangID 為以後用戶獲得默許說話ID 
GetUserDefaultLCID 獲得以後用戶的默許“處所”設置 
GetUserName 獲得以後用戶的名字 
GetVersion 斷定以後運轉的Windows和DOS版本 
GetVersionEx 獲得與平台和操作體系有關的版本信息 
HideCaret 在指定的窗口隱蔽拔出符(光標) 
IsValidCodePage 斷定一個代碼頁能否有用
IsValidLocale 斷定處所標識符能否有用 
keybd_event 這個函數模仿了鍵盤行為 
LoadKeyboardLayout 載入一個鍵盤結構 
MapVirtualKey 依據指定的映照類型,履行分歧的掃描碼和字符轉換 
MapVirtualKeyEx 依據指定的映照類型,履行分歧的掃描碼和字符轉換 
MessageBeep 播放一個體系聲響。體系聲響的分派計劃是在掌握面板裡決議的 
mouse_event 模仿一次鼠標事宜 
OemKeyScan 斷定OEM字符集中的一個ASCII字符的掃描碼和Shift鍵狀況 
OemToChar 將OEM字符集的一個字串轉換到ANSI字符集 
SetCaretBlinkTime 指定拔出符(光標)的閃耀頻率 
SetCaretPos 指定拔出符的地位 
SetComputerName 設置新的盤算機名 
SetCursor 將指定的鼠標指針設為以後指針 
SetCursorPos 設置指針的地位 
SetDoubleClickTime 設置持續兩次鼠標單擊之間能使體系以為是雙擊事宜的距離時光 
SetEnvironmentVariable 將一個情況變量設為指定的值
SetKeyboardState 設置每一個虛擬鍵以後在鍵盤上的狀況 
SetLocaleInfo 轉變用戶“處所”設相信息 
SetLocalTime 設置以後處所時光 
SetSysColors 設置指定窗口顯示對象的色彩 
SetSystemCursor 轉變任何一個尺度體系指針 
SetSystemTime 設置以後體系時光 
SetSystemTimeAdjustment 准時添加一個校准值使外部體系時鐘與一個內部的時鐘旌旗燈號源同步 
SetThreadLocale 為以後線程設置處所 
SetTimeZoneInformation 設置體系時區信息 
ShowCaret 在指定的窗口裡顯示拔出符(光標) 
ShowCursor 掌握鼠標指針的可視性 
SwapMouseButton 決議能否交換鼠標閣下鍵的功效 
SystemParametersInfo 獲得和設置數目浩瀚的windows體系參數 
SystemTimeToTzSpecificLocalTime 將體系時光轉換成處所時光 
ToAscii 依據以後的掃描碼和鍵盤信息,將一個虛擬鍵轉換成ASCII字符 
ToUnicode 依據以後的掃描碼和鍵盤信息,將一個虛擬鍵轉換成Unicode字符
UnloadKeyboardLayout 卸載指定的鍵盤結構 
VkKeyScan 針對Windows字符集中一個ASCII字符,斷定虛擬鍵碼和Shift鍵的狀況 

3.菜單函數
AppendMenu 在指定的菜單裡添加一個菜單項 
CheckMenuItem 復選或取消復選指定的菜單條目 
CheckMenuRadioItem 指定一個菜單條目被復選成“單選”項目 
CreateMenu 創立新菜單 
CreatePopupMenu 創立一個空的彈出式菜單 
DeleteMenu 刪除指定的菜單條目 
DestroyMenu 刪除指定的菜單 
DrawMenuBar 為指定的窗口重畫菜單 
EnableMenuItem 許可或制止指定的菜單條目 
GetMenu 獲得窗口中一個菜單的句柄 
GetMenuCheckMarkDimensions 前往一個菜單復選符的年夜小 
GetMenuContextHelpId 獲得一個菜單的贊助場景ID 
GetMenuDefaultItem 斷定菜單中的哪一個條目是默許條目 
GetMenuItemCount 前往菜單中條目(菜單項)的數目 
GetMenuItemID 前往位於菜單中指定地位處的條目標菜單ID 
GetMenuItemInfo 獲得(吸收)與一個菜單條目有關的特定信息
GetMenuItemRect 在一個矩形中裝載指定菜單條目標屏幕坐標信息 
GetMenuState 獲得與指定菜單條目狀況有關的信息 
GetMenuString 獲得指定菜單條目標字串 
GetSubMenu 獲得一個彈出式菜單的句柄,它位於菜單中指定的地位 
GetSystemMenu 獲得指定窗口的體系菜單的句柄 
HiliteMenuItem 掌握頂級菜單條目標加亮顯示狀況 
InsertMenu 在菜單的指定地位處拔出一個菜單條目,並依據須要將其他條目向下挪動 
InsertMenuItem 拔出一個新菜單條目 
IsMenu 斷定指定的句柄能否為一個菜單的句柄 
LoadMenu 從指定的模塊或運用法式實例中載入一個菜單 
LoadMenuIndirect 載入一個菜單 
MenuItemFromPoint 斷定哪一個菜單條目包括了屏幕上一個指定的點 
ModifyMenu 轉變菜單條目 
RemoveMenu 刪除指定的菜單條目 
SetMenu 設置窗口菜單 
SetMenuContextHelpId 設置一個菜單的贊助場景ID
SetMenuDefaultItem 將一個菜單條目設為默許條目 
SetMenuItemBitmaps 設置一幅特定位圖,令其在指定的菜單條目中應用,取代尺度的復選符號(√) 
SetMenuItemInfo 為一個菜單條目設置指定的信息 
TrackPopupMenu 在屏幕的隨意率性處所顯示一個彈出式菜單 
TrackPopupMenuEx 與TrackPopupMenu類似,只是它供給了額定的功效 

以下是幾個關於菜單函數的類型界說 
MENUITEMINFO 這個構造包括了菜單條目標信息 
TPMPARAMS 這個構造用於TrackPopupMenuEx函數以支撐額定的功效
4.畫圖函數
AbortPath 擯棄選入指定裝備場景中的一切途徑。也撤消今朝正在停止的任何途徑的創立任務 
AngleArc 用一個銜接弧畫一條線 
Arc 畫一個圓弧 
BeginPath 啟動一個途徑分支 
CancelDC 撤消另外一個線程裡的長時光畫圖操作 
Chord 畫一個弦 
CloseEnhMetaFile 封閉指定的加強型圖元文件裝備場景,並將新建的圖元文件前往一個句柄 
CloseFigure 描寫到一個途徑時,封閉以後翻開的圖形 
CloseMetaFile 封閉指定的圖元文件裝備場景,並向新建的圖元文件前往一個句柄 
CopyEnhMetaFile 制造指定加強型圖元文件的一個正本(拷貝) 
CopyMetaFile 制造指定(尺度)圖元文件的一個正本 
CreateBrushIndirect 在一個LOGBRUSH數據構造的基本上創立一個刷子 
CreateDIBPatternBrush 用一幅與裝備有關的位圖創立一個刷子,以便指定刷子款式(圖案) 
CreateEnhMetaFile 創立一個加強型的圖元文件裝備場景 
CreateHatchBrush 創立帶有暗影圖案的一個刷子 
CreateMetaFile 創立一個圖元文件裝備場景
CreatePatternBrush 用指定了刷子圖案的一幅位圖創立一個刷子 
CreatePen 用指定的款式、寬度和色彩創立一個畫筆 
CreatePenIndirect 依據指定的LOGPEN構造創立一個畫筆 
CreateSolidBrush 用純色創立一個刷子 
DeleteEnhMetaFile 刪除指定的加強型圖元文件 
DeleteMetaFile 刪除指定的圖元文件 
DeleteObject 刪除GDI對象,對象應用的一切體系資本都邑被釋放 
DrawEdge 用指定的款式描寫一個矩形的邊框 
DrawEscape 換碼(Escape)函數將數據直接發至顯示裝備驅動法式 
DrawFocusRect 畫一個核心矩形 
DrawFrameControl 描寫一個尺度控件 
DrawState 為一幅圖像或畫圖操作運用林林總總的後果 
Ellipse 描寫一個橢圓,由指定的矩形環繞 
EndPath 停滯界說一個途徑 
EnumEnhMetaFile 針對一個加強型圖元文件,羅列個中零丁的圖元文件記載 
EnumMetaFile 為一個尺度的windows圖元文件列舉零丁的圖元文件記載
EnumObjects 列舉可伴隨指定裝備場景應用的畫筆和刷子 
ExtCreatePen 創立一個擴大畫筆(裝潢或幾何) 
ExtFloodFill 在指定的裝備場景裡,用以後選擇的刷子填充一個區域 
FillPath 封閉途徑中任何翻開的圖形,並用以後刷子填充 
FillRect 用指定的刷子填充一個矩形 
FlattenPath 將一個途徑中的一切曲線都轉換成線段 
FloodFill 用以後選定的刷子在指定的裝備場景中填充一個區域 
FrameRect 用指定的刷子環繞一個矩形畫一個邊框 
GdiComment 為指定的加強型圖元文件裝備場景添加一條正文信息 
GdiFlush 履行任何未決的畫圖操作 
GdiGetBatchLimit 斷定有若干個GDI畫圖敕令位於隊列中 
GdiSetBatchLimit 指定有若干個GDI畫圖敕令可以或許進入隊列 
GetArcDirection 畫圓弧的時刻,斷定以後采取的畫圖偏向 
GetBkColor 獲得指定裝備場景以後的配景色彩 
GetBkMode 針對指定的裝備場景,獲得以後的配景填充形式 
GetBrushOrgEx 斷定指定裝備場景中以後選定刷子終點
GetCurrentObject 取得指定類型確當前選定對象 
GetCurrentPositionEx 在指定的裝備場景中獲得以後的畫筆地位 
GetEnhMetaFile 獲得磁盤文件中包括的一個加強型圖元文件的圖元文件句柄 
GetEnhMetaFileBits 將指定的加強型圖元文件復制到一個內存緩沖區裡 
GetEnhMetaFileDescription 前往對一個加強型圖元文件的解釋 
GetEnhMetaFileHeader 獲得加強型圖元文件的圖元文件頭 
GetEnhMetaFilePaletteEntries 獲得加強型圖元文件的全體或部門調色板 
GetMetaFile 獲得包括在一個磁盤文件中的圖元文件的圖元文件句柄 
GetMetaFileBitsEx 將指定的圖元文件復制到一個內存緩沖區 
GetMiterLimit 獲得裝備場景的斜率限制(Miter)設置 
GetNearestColor 依據裝備的顯示才能,獲得與指定色彩最接近的一種純色 
GetObjectAPI 獲得對指定對象停止解釋的一個構造 
GetObjectType 斷定由指定句柄援用的GDI對象的類型 
GetPath 獲得對以後途徑停止界說的一系列數據 
GetPixel 在指定的裝備場景中獲得一個像素的RGB值 
GetPolyFillMode 針對指定的裝備場景,取得多邊形填充形式
GetROP2 針對指定的裝備場景,獲得以後的畫圖形式 
GetStockObject 獲得一個固有對象(Stock) 
GetSysColorBrush 為任何一種尺度體系色彩獲得一個刷子 
GetWinMetaFileBits 經由過程在一個緩沖區中填充用於尺度圖元文件的數據,將一個加強型圖元文件轉換成尺度windows圖元文件 
InvertRect 經由過程反轉每一個像素的值,從而反轉一個裝備場景中指定的矩形 
LineDDA 列舉指定線段中的一切點 
LineTo 用以後畫筆劃一條線,從以後地位連到一個指定的點
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved