C語言windows.h庫的常用函式(一)
阿新 • • 發佈:2019-01-11
1:FindWindow函式
該函式可以通過視窗類名或者視窗標題名來查詢特定視窗控制代碼,返回值是視窗的控制代碼(在Windows中,控制代碼是一個系統內部資料結構的引用。例如當你操作一個視窗,或說是一個Delphi窗體時,系統會給你一個該視窗的控制代碼,系統會通知你:你正在操作142號視窗,就此你的應用程式就能要求系統對142號視窗進行操作——移動視窗、改變視窗大小、把視窗最小化等等。實際上許多Windows API函式把控制代碼作為它的第一個引數,如GDI(圖形裝置介面)控制代碼、選單控制代碼、例項控制代碼、點陣圖控制代碼等,不僅僅侷限於視窗函式。換句話說,控制代碼是一種內部程式碼,通過它能引用受系統控制的特殊元素,如視窗、點陣圖、圖示、記憶體塊、游標、字型、選單等。
函式用法
#include "stdafx.h"
#include<windows.h>
int main() {
HWND window; //定義一個視窗控制代碼變數,用來儲存視窗控制代碼
/*FindWindow("這裡填視窗類名","這裡填視窗標題名")
視窗類名和視窗標題名可以只填一個,不填的用NULL填充*/
window = FindWindow(NULL,"文字.txt - 記事本"); //查詢標題為"文字.txt - 記事本"的視窗
SendMessage(window,WM_CLOSE,0,0); //向視窗傳送關閉指令
return 0;
}
2:SendMessage函式
剛剛在第一個例子裡面已經用到了SendMessage函式,這個函式的功能是向控制代碼對應視窗傳送指令
函式用法
#include "stdafx.h"
#include<windows.h>
int main() {
POINT mouse;
HWND window;
while (1) {
GetCursorPos(&mouse);
window = WindowFromPoint(mouse);
/*SendMessage(視窗控制代碼,訊息型別,訊息附帶內容,訊息附帶內容)
比如我這裡選定的訊息型別是WM_CHAR
訊息附帶內容為WPARAM('a')
所以訊息附帶內容就是模擬鍵盤向視窗輸入a*/
SendMessage(window,WM_CHAR,WPARAM('a'),0);
Sleep(100);
}
return 0;
}
3:WindowFromPoint函式
在第二個例子中我們使用了一個叫做WindowFromPoint的函式,這個函式的功能是通過滑鼠點選獲得被點選視窗的控制代碼
函式用法
#include "stdafx.h"
#include<windows.h>
int main() {
POINT mouse; //定義一個結構體變數儲存滑鼠位置
HWND window;
while (1) {
GetCursorPos(&mouse); //獲取到當前滑鼠位置
/*WindowFromPoint(滑鼠位置變數名)*/
window = WindowFromPoint(mouse);
SendMessage(window,WM_CLOSE,0,0);
Sleep(100);
}
return 0;
}