1. 程式人生 > >C語言windows.h庫的常用函式(一)

C語言windows.h庫的常用函式(一)

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;
}