windows api函數(shù)大全

windows api函數(shù)大全

ID:16382577

大?。?92.00 KB

頁數(shù):70頁

時(shí)間:2018-08-09

windows api函數(shù)大全_第1頁
windows api函數(shù)大全_第2頁
windows api函數(shù)大全_第3頁
windows api函數(shù)大全_第4頁
windows api函數(shù)大全_第5頁
資源描述:

《windows api函數(shù)大全》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、VCAPI常用函數(shù)簡單例子大全第一個(gè):FindWindow根據(jù)窗口類名或窗口標(biāo)題名來獲得窗口的句柄,該函數(shù)返回窗口的句柄函數(shù)的定義:HWND?WINAPI?FindWindow(LPCSTR?lpClassName?,LPCSTR?lpWindowName);第一個(gè)參數(shù)填窗口的類名,第二個(gè)填窗口的標(biāo)題名,其實(shí)是不需要同時(shí)填兩個(gè)參數(shù)的,也就是說,你只要知道窗口的類名或窗口的標(biāo)題就可以了,沒有的那個(gè)就用NULL代替。比如現(xiàn)在有一個(gè)窗口名為"無標(biāo)題.txt?-?記事本"的記事本程序。那么我就可以用上面的函數(shù)獲得這個(gè)窗口的句柄,那獲得了這個(gè)窗口的句柄我可以

2、干什么呢?作用可大了,因?yàn)楹芏嗖僮鞔翱诘暮瘮?shù),都需要窗口句柄作參數(shù),如移動(dòng)、改變窗口大小的MoveWindow函數(shù),在這里舉個(gè)例子,大家就更能體會(huì)到這個(gè)FindWindow的用法、用處。FindWindow例子:已知一個(gè)窗口名稱,寫一個(gè)程序關(guān)閉該窗口,假設(shè)當(dāng)前電腦正有一個(gè)窗口名為"無標(biāo)題.txt?-?記事本"的記事本程序運(yùn)行1#include//API函數(shù)的頭文件2intmain()3{4HWNDwnd;//定義一個(gè)窗口句柄變量,用以存儲找到的窗口句柄5wnd=FindWindow(NULL,"無標(biāo)題.txt-記事本");//

3、獲得窗口名為"無標(biāo)題.txt-記事本"的窗口句柄67SendMessage(wnd,WM_CLOSE,0,0);//調(diào)用SendMessage函數(shù),發(fā)送一個(gè)WM_CLOSE(關(guān)閉)消息給wnd窗口句柄。89return0;10}如果要根據(jù)窗口類名來獲得窗口句柄話,只要給函數(shù)的第一個(gè)參數(shù)填類名,第二個(gè)參數(shù)窗口名填NULL,即可,用Spy++可查看窗口類名。?第二個(gè):SendMessage根據(jù)窗口句柄發(fā)送一個(gè)消息給窗口函數(shù)定義:LRESULT?SendMessage(HWND?hWnd,UINT?Msg,WPARAM?wParam,LPARAM?IPa

4、ram);第一個(gè)參數(shù)是窗口句柄,第二參數(shù)個(gè)是消息類型,下面的消息表列舉了所有消息,第三,四個(gè)參數(shù)是消息附帶信息,解釋依賴于消息類型,比如一個(gè)字符消息(WM_CHAR),那么第三個(gè)參數(shù)就儲存有一個(gè)字符的ASCII碼。消息機(jī)制大家都應(yīng)該知道吧,Windows是基于消息的系統(tǒng),鼠標(biāo)移動(dòng)鍵盤按鍵都會(huì)產(chǎn)生消息。接下來舉一個(gè)例子,發(fā)送一個(gè)WM_CHAR消息給窗口,也就是模仿鍵盤按鍵,接收消息的窗口依舊以"無標(biāo)題.txt?-?記事本"為例:SendMessage例子:模仿鍵盤按鍵1#include23intmain()45{67HWNDwn

5、d;8wnd=FindWindow(NULL,"無標(biāo)題.txt-記事本");910while(1)1112{1314SendMessage(wnd,WM_CHAR,WPARAM('a'),0);1516Sleep(300);1718}1920return0;2122}呵呵上面的例子是不是沒用,這是為什么呢,哪里出錯(cuò)了嗎?錯(cuò)倒是沒有錯(cuò),只是窗口句柄有問題,消息發(fā)送給了主窗口。接收消息的窗口不對。記事本窗口界面有些有什么東西呢?菜單,編輯框,?狀態(tài)欄等控件,控件也是窗口,既然是窗口,那當(dāng)然它們也有窗口句柄,而在記事本里是在哪里打字的?編輯框控件里打字的

6、嘛!所以消息應(yīng)該發(fā)送編輯框控件,那如何獲得記事本里編輯框控件的窗口句柄呢?用FindWindow嗎?不知道編輯框窗口標(biāo)題名,類名也不知道,當(dāng)然也有其它方法獲取編輯框窗口標(biāo)題名和窗口類名,如Spy++。關(guān)于如何獲得編輯框句柄,將在以后的函數(shù)中會(huì)有介紹,這里我們就用WindowFromPoint這個(gè)函數(shù)來獲取,這個(gè)函數(shù)獲取窗口句柄的方法比較笨,(相對于我這個(gè)例子來說),這個(gè)函數(shù)是根據(jù)什么來獲取窗口句柄的呢?根據(jù)屏幕坐標(biāo)點(diǎn),如屏幕坐標(biāo)點(diǎn)20,20,當(dāng)前是哪個(gè)窗口占有,就返回哪個(gè)窗口的句柄。有了這個(gè)函數(shù),我們還需要一個(gè)函數(shù)GetCursorPos獲取鼠標(biāo)當(dāng)

7、前位置(針對于屏幕);可行的例子:模仿鍵盤按鍵:1#include23intmain()4{5POINTcurpos;//一個(gè)可儲存坐標(biāo)點(diǎn)的結(jié)構(gòu)體變量,x橫坐標(biāo),y,縱坐標(biāo),如curpos.xcurpos.y67while(1)8{9GetCursorPos(&curpos);//獲取當(dāng)前鼠標(biāo)的位置,位置將儲存在curpos里。10HWNDhWnd=WindowFromPoint(curpos);//根據(jù)curpos所指的坐標(biāo)點(diǎn)獲取窗口句柄11SendMessage(hWnd,WM_CHAR,WPARAM('g'),0);//

8、發(fā)送一個(gè)字符(按鍵)消息g給當(dāng)前鼠標(biāo)所指向的窗口句柄12Sleep(300);//睡眠三百毫秒,相當(dāng)于等待三分之一秒13}

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。