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,
### C语言 `Windows.h` 函数使用教程 #### 获取窗口客户区大小 为了获取指定窗口的客户区域尺寸,可以使用 `GetClientRect` 函数。此函数接收两个参数:个是目标窗口的句柄 (`HWND`);另个是指向 `RECT` 结构体的指针,用于存储返回的坐标信息。 ```c #include <windows.h> #include <stdio.h> int main() { HWND window; while (true) { window = FindWindow(NULL, "新建文本文档.txt - 记事本"); RECT rect; GetClientRect(window, &rect); printf("Left:%d Top:%d Right:%d Bottom:%d\n", rect.left, rect.top, rect.right, rect.bottom); Sleep(1000); } } ``` 上述代码展示了如何通过循环不断查找名为 “新建文本文档.txt - 记事本” 的记事本应用程序,并打印其客户区的位置和大小[^1]。 #### 查询鼠标当前位置 对于需要跟踪鼠标移动的应用程序来说,`GetCursorPos` 是非常有用的工具之。该函数能够取得当前光标的屏幕坐标并将其保存到传入的 `POINT` 类型结构体内。 ```c #include <windows.h> #include <stdio.h> int main() { POINT cursorPosition; while (true) { GetCursorPos(&cursorPosition); printf("X:%d Y:%d\n", cursorPosition.x, cursorPosition.y); Sleep(300); } return 0; } ``` 这段示例说明了怎样持续读取鼠标的实时位置并将这些数值输出至控制台[^2]。 #### 处理字符消息 当涉及到键盘输入处理时,则会遇到像 `WM_CHAR` 这样的消息类型。每当有按键被按下并且释放之后,系统就会发送条带有相应ASCII码的消息给活动窗口的过程实例。开发者可以在自己的消息循环里捕获这类事件来进行进步的操作。 ```c LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_CHAR: // Handle character input here... break; default: return DefWindowProc(hwnd, uMsg, wParam, lParam); } return 0; } // Register and create the window with this procedure. ``` 这里展示了个简单的窗口过程函数模板,它监听所有的 `WM_CHAR` 消息以便于后续可能发生的任何特定逻辑实现[^3]。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值