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;
}
  • 103
    点赞
  • 733
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值