当前位置: 首页 > wzjs >正文

手机电影网站怎么做做网络推广工作怎么样

手机电影网站怎么做,做网络推广工作怎么样,专业的网站开发公司,vs做网站出现显示bug在Windows系统中,获取软件界面窗口的尺寸大小可以通过多种方法实现,以下是基于不同场景的详细解决方案: 方法1:使用Windows API获取窗口尺寸 适用于获取外部应用程序窗口的尺寸(如记事本、计算器等)。 步…

在Windows系统中,获取软件界面窗口的尺寸大小可以通过多种方法实现,以下是基于不同场景的详细解决方案:


方法1:使用Windows API获取窗口尺寸

适用于获取外部应用程序窗口的尺寸(如记事本、计算器等)。

步骤说明:
  1. 获取窗口句柄
    通过进程ID或窗口标题找到目标窗口的句柄(HWND)。
  2. 调用GetWindowRectGetClientRect
    • GetWindowRect: 获取窗口在屏幕坐标系中的位置和尺寸(包括边框)。
    • GetClientRect: 获取窗口客户区(内容区域)的尺寸。
示例代码(C++):
#include <Windows.h>// 通过窗口标题查找窗口句柄
HWND FindWindowByTitle(const wchar_t* title) {return FindWindowW(nullptr, title);
}// 获取窗口尺寸(包括边框)
RECT GetWindowSize(HWND hwnd) {RECT rect;GetWindowRect(hwnd, &rect); // 屏幕坐标return rect;
}// 获取客户区尺寸(仅内容区域)
RECT GetClientSize(HWND hwnd) {RECT rect;GetClientRect(hwnd, &rect); // 客户区坐标(左上角为0,0)return rect;
}int main() {HWND hwnd = FindWindowByTitle(L"记事本");if (hwnd) {RECT windowRect = GetWindowSize(hwnd);int width = windowRect.right - windowRect.left;  // 窗口宽度int height = windowRect.bottom - windowRect.top; // 窗口高度RECT clientRect = GetClientSize(hwnd);int clientWidth = clientRect.right - clientRect.left;  // 内容区宽度int clientHeight = clientRect.bottom - clientRect.top; // 内容区高度}return 0;
}

方法2:通过Qt获取窗口尺寸

适用于Qt应用程序内部窗口的尺寸获取。

步骤说明:
  1. 直接访问QWidget的几何属性
    使用geometry()获取窗口位置和尺寸,或size()获取尺寸。
示例代码(Qt C++):
#include <QWidget>void GetQtWindowSize(QWidget* window) {QRect geometry = window->geometry(); // 包含窗口边框的尺寸int width = geometry.width();int height = geometry.height();QSize clientSize = window->size(); // 客户区尺寸int clientWidth = clientSize.width();int clientHeight = clientSize.height();
}

在这里插入图片描述

方法3:使用命令行工具(外部工具)

无需编程,快速获取窗口尺寸。

工具推荐:
  1. WinSpy++
    可视化工具,直接点击窗口即可查看尺寸。
  2. AutoHotkey
    脚本获取窗口尺寸:
    F1::
    WinGetPos, X, Y, Width, Height, A
    MsgBox 窗口尺寸:%Width%x%Height%
    return
    

常见问题与解决方案

问题1:窗口最小化时无法获取正确尺寸
  • 解决方案
    在调用GetWindowRect前,确保窗口处于正常状态(非最小化):
    if (IsIconic(hwnd)) {ShowWindow(hwnd, SW_RESTORE); // 恢复窗口Sleep(100); // 等待窗口刷新
    }
    
问题2:高DPI屏幕下尺寸不准确
  • 解决方案
    启用DPI感知并手动缩放:
    // 在程序入口点添加
    SetProcessDPIAware(); // Windows API
    
问题3:多窗口同名导致获取错误句柄
  • 解决方案
    结合进程ID筛选窗口:
    HWND FindWindowByProcessId(DWORD pid) {HWND hwnd = nullptr;EnumWindows([](HWND hwnd, LPARAM lParam) -> BOOL {DWORD windowPid;GetWindowThreadProcessId(hwnd, &windowPid);if (windowPid == *(DWORD*)lParam && IsWindowVisible(hwnd)) {*(HWND*)lParam = hwnd;return FALSE;}return TRUE;}, (LPARAM)&pid);return hwnd;
    }
    

在这里插入图片描述

完整示例:获取外部窗口尺寸并显示在Qt界面

// MainWindow.h
#pragma once
#include <QMainWindow>
#include <QLabel>
#include <QPushButton>
#include <Windows.h>class MainWindow : public QMainWindow {Q_OBJECT
public:MainWindow(QWidget *parent = nullptr);private slots:void onGetSizeClicked();private:QLabel *labelSize;QPushButton *btnGetSize;HWND FindTargetWindow();
};// MainWindow.cpp
#include "MainWindow.h"
#include <QVBoxLayout>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {QWidget *centralWidget = new QWidget(this);QVBoxLayout *layout = new QVBoxLayout(centralWidget);btnGetSize = new QPushButton("获取记事本尺寸", this);labelSize = new QLabel("窗口尺寸:未获取", this);layout->addWidget(btnGetSize);layout->addWidget(labelSize);setCentralWidget(centralWidget);connect(btnGetSize, &QPushButton::clicked, this, &MainWindow::onGetSizeClicked);
}void MainWindow::onGetSizeClicked() {HWND hwnd = FindWindowW(nullptr, L"记事本");if (hwnd) {RECT rect;GetWindowRect(hwnd, &rect);QString sizeText = QString("窗口尺寸:%1x%2").arg(rect.right - rect.left).arg(rect.bottom - rect.top);labelSize->setText(sizeText);} else {labelSize->setText("未找到记事本窗口!");}
}

总结

  • 外部应用程序:优先使用Windows API(GetWindowRect/GetClientRect)。
  • Qt内部窗口:直接使用QWidget::geometry()size()
  • 快速调试:使用WinSpy++或AutoHotkey工具。

通过上述方法,您可以灵活获取各种软件界面窗口的尺寸,并根据需求应用到Qt开发中。

http://www.dtcms.com/wzjs/812.html

相关文章:

  • 个性化网站设计网络舆情报告
  • 哪个网站可以做java项目平台外宣推广技巧
  • 郓城做网站网络公司企业网站优化排名
  • 微信登录wordpress免费seo综合
  • wordpress js漏洞太原整站优化排名外包
  • 山东省住房和城乡建设厅网站山西seo排名
  • 寻找郑州网站建设济南seo网络优化公司
  • 建企业网站要多少钱引流推广软件
  • 电子政务门户网站建设最近三天的新闻大事简短
  • dede 网站地图模版如何申请百度竞价排名
  • 淄博专业网站建设价格网站收录查询网
  • 公司网站开发的国内外研究现状站长统计幸福宝下载
  • 长沙网站推广公司今日新闻简报
  • 做网站的人怎么上传内容的个人网页制作完整教程
  • 阿里云最低服务器可以做几个网站产品网络推广
  • 如何破解WordPress网站b站视频怎么快速推广
  • 海口网站制作网站免费建网站
  • 做钢材的网站正规营销培训
  • 网站这么推广百度seo算法
  • 部门网站建设工作总结seo短视频入口
  • 做品牌设计网站我想做网络推广找谁
  • 互联网大赛建设网站策划书网络竞价推广开户
  • 温岭 网站建设seo百度seo排名优化软件
  • 外币信用卡怎么做网站上用企业seo顾问服务
  • 徐州市住房和城乡建设局网站首页网站的seo方案
  • 上海怎么做网站十大接单推广app平台
  • 广州建设网站的公司简介搜索引擎营销的优缺点
  • 哪个网站做签约插画师好百度词条官网入口
  • 网络推广软件排行网站推广seo教程
  • 要做未来科技的网站怎么做seo查询软件