基本信息
源码名称:改变窗口大小(句柄实现)
源码大小:2.33KB
文件格式:.cpp
开发语言:C/C++
更新时间:2020-11-21
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
C 改变窗口大小。
无
C 改变窗口大小。
无
无
#include <windows.h>
#include <iostream>
#define IsKeyDown(VK_NAME) ((GetAsyncKeyState(VK_NAME) & 0x8000) ? true:false)
int main()
{
POINT point; // 鼠标所在位置
HWND target; // 目标窗口句柄
HWND parent; // 目标父窗口句柄
INT width, height; // 窗口新宽高
// 软件用法
std::cout << "\n功能:设置目标窗口的大小\n\n";
std::cout << "用法:输入参数后,将鼠标移到要设置的窗口上,然后按下 Ctrl 键 1 秒钟即可\n";
std::cout << " 按下 Shift 键可重新输入\n";
std::cout << " 按下 Alt 键可退出程序\n";
BOOL start = true; // 是否开始循环
while(start)
{
std::cout << "\n请输入窗口宽度:";
std::cin >> width;
std::cout << "请输入窗口高度:";
std::cin >> height;
std::cout << "\n移动鼠标,然后按键(Ctrl/Shift/Alt)...\n";
BOOL listen = true; // 是否开始监听用户按键
while (listen)
{
// Ctrl 键确认窗口
if IsKeyDown(VK_CONTROL)
{
// 获取鼠标位置
GetCursorPos(&point);
// 获取鼠标位置的窗口句柄
target = WindowFromPoint(point);
// 合法性判断
if (target != NULL && target != INVALID_HANDLE_VALUE) {
// 获取顶层窗口句柄
parent = GetParent(target);
while (parent != NULL && parent != INVALID_HANDLE_VALUE)
{
target = parent;
parent = GetParent(target);
}
// 获取窗口原始大小
RECT rect;
GetWindowRect(target, &rect);
// 重新设置窗口大小
MoveWindow(target, rect.left, rect.top, width, height, true);
// 停止监听
listen = false;
}
}
// Shift 键停止监听
else if (IsKeyDown(VK_SHIFT))
{
listen = false;
}
// Alt 键退出程序
else if (IsKeyDown(VK_MENU))
{
listen = false;
start = false;
}
Sleep(200);
}
std::cout << "\n----------\n";
}
return 0;
}