c++ mfc的第一天

想写个简单辅助,开始。。。。虽然大概率坚持不到最后,不过好歹先记录一下
使用软件:visual studio 2019

#include <iostream>
#include <Windows.h>
#include <stdio.h>
#include <WinUser.h>
using namespace std;

//Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowName As String) As Long  网上一搜c++如何获取句柄全是这个,不过貌似不是c++用的,我也不知道该用在哪里


int main()
{
    
   HWND hWnd=FindWindow(NULL, "进程名称"); 

hWnd是一个数字,对应一个进程句柄。 第一个参数是类,第二个参数是进程名,类是啥我也不知道,进程名就是任务管理器-进程-应用里箭头点开在这里插入图片描述
一开始我还以为是上面那个。
然后HWND需要#include <Windows.h>

    if (hWnd  != 0) { //确认查找到句柄
        cout << "yes";
        RECT rect;  //窗口坐标
        GetClientRect(hWnd, &rect);  //将hWnd进程的窗口坐标读取到rect
        cout <<"left:" <<rect.left<<endl;
        cout << "right" << rect.right << endl;
        cout << "top" << rect.top << endl;
        cout << "bottom" << rect.bottom << endl;
        cout << rect.right - rect.left << endl;
        cout << rect.bottom - rect.top;


    }
    else {
        cout << "no";
    }

   
}

rect就是窗口坐标,上下左右都是数字,但是一开始我输出的坐标不对,考虑到可能是因为屏幕缩放125%导致的,网上搜了一下,需要在项目属性里配置一下适配dpi:(参考http://blog.jianchihu.net/vs-build-high-dpi.html)在这里插入图片描述
然后输出上下左右的坐标,应该就是正常的了。
好了,第一天就这么多=-=

哦对,还有一个事,就是这个应用程序有点怪原分辨率是1024768,所以125%后就是1280960,然后程序第一次启动分辨率是默认125%,vs读取到的是1280960,但是程序全屏再窗口化之后就没有125%的效果了,视觉上小了一圈,vs读取到的是1024768。但是如果不设置vs适应dpi,程序125%的时候vs读取到1024*768

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值