C++ MFC中Test Window的实现

版权申诉
5星 · 超过95%的资源 1 下载量 113 浏览量 更新于2024-11-03 收藏 6.57MB RAR 举报
资源摘要信息:"测试简单窗口程序" 在IT行业领域,尤其是软件开发领域,编写和测试窗口程序是基础中的基础。标题中提到的"Test_simple_Window.rar_Test window"暗示了一个包含在压缩文件中的项目,该项目是一个用C++语言结合Microsoft Foundation Classes (MFC) 创建的简单窗口程序。MFC是微软的一个用来帮助开发者创建Windows应用程序的库。这个项目专注于学习和实践C++与MFC结合来开发Windows界面。 描述中提及"C++ in mfc and C++",表明了测试的窗口程序是使用C++编程语言来实现,并且特别强调了MFC的应用。MFC为开发者提供了一种便捷的方式来访问Windows API,用于创建窗口、处理用户输入、绘制图形等。 从文件名称列表"Test_simple_Window"我们可以推断,这个压缩包包含了该项目的源代码文件,这些文件可能包括: 1. Test_simple_Window.cpp:这是项目的主源文件,可能包含了窗口初始化、消息循环处理、事件响应等核心代码。 2. Test_simple_Window.h:头文件,可能包含了项目中使用到的类和函数的声明。 3. Test_simple_Window.rc:资源文件,可能包含了窗口的菜单、对话框、图标等资源的定义。 4. Test_simple_Window.ico:程序图标文件,可能用于程序窗口的标题栏或者图标。 以下将详细解释这些知识点: 1. MFC(Microsoft Foundation Classes): MFC是一个C++库,由微软提供,它封装了大部分的Windows API,便于开发者快速构建Windows桌面应用程序。使用MFC可以大大减少编写底层代码的工作量,同时MFC还支持文档/视图结构,这是Windows应用程序中常见的一种架构。 2. C++编程语言: C++是一种高级编程语言,是C语言的超集,它支持过程化编程、面向对象编程、泛型编程等编程范式。C++广泛应用于桌面应用程序、服务器和客户端应用程序以及实时物理模拟、视频游戏开发等领域。 3. 窗口程序(Window Program): 在Windows操作系统中,窗口程序是一种图形用户界面(GUI)程序。它由一个或多个窗口组成,窗口可以响应用户的操作,如鼠标点击、键盘输入等。窗口程序的开发涉及到窗口创建、消息处理机制、事件驱动编程等方面。 4. 消息循环(Message Loop): 在Windows应用程序中,消息循环是程序运行的中心。程序通过消息循环不断获取用户操作(如鼠标点击、键盘输入)产生的消息,并对这些消息做出相应的处理。消息循环保证了程序能够响应外部事件并作出反应。 5. 事件驱动编程(Event-driven programming): 事件驱动编程是一种编程范式,程序在执行过程中会等待用户或者系统产生的事件,当事件发生时,程序将执行相应的事件处理函数。在窗口程序开发中,事件驱动编程是核心概念之一。 6. 文档/视图架构(Document/View Architecture): 在MFC中,文档/视图架构是一种设计模式,用于分离应用程序的数据表示(文档)与用户界面(视图)。在该架构中,文档类负责数据的处理,而视图类负责数据的显示和用户交互。 根据以上内容,我们可以理解该项目是一个简单实用的C++ Windows界面应用程序示例,通过实践该项目的创建和测试,开发者可以加深对MFC框架的理解,以及对C++在GUI应用程序开发中的应用实践。这对于希望在Windows平台上进行软件开发的程序员来说是很好的学习资源。
2023-06-08 上传

#精准延迟包: from ctypes import windll import cv2 ##检测模式 import numpy as np #为睡眠做准备 TimeBeginPeriod = windll.winmm.timeBeginPeriod HPSleep = windll.kernel32.Sleep TimeEndPeriod = windll.winmm.timeEndPeriod #精准延迟 def Precise_delay(num): # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TimeBeginPeriod(1) HPSleep(int(num)) # 减少报错 TimeEndPeriod(1) #截图模式 def Screenshot_Mode(ps_mode , pos_x,pos_y,mcx,mcy): if ps_mode == 0: from mss import mss Screenshot_value = mss() #目标检测范围 window_size_mss = (pos_x- mcx , pos_y - mcy , pos_x + mcx , pos_y + mcy) # monitor = 960-320,540-320,960+320,540+320 window_size = { "left":pos_x- mcx, "top":pos_y - mcy, "width":pos_x + mcx, "height":pos_y + mcy, } #目标检测中心点 core_x = int((window_size_mss[2]-window_size_mss[0])/2) core_y = int((window_size_mss[3]-window_size_mss[1])/2) elif ps_mode == 1: print("使用DXGI截图") from d3dshot import create # pip install d3dshot -i https://pypi.tuna.tsinghua.edu.cn/simple Screenshot_value = create("numpy",frame_buffer_size = 100) #目标检测范围 window_size = (pos_x- mcx , pos_y - mcy , pos_x + mcx , pos_y + mcy) #目标检测中心点 core_x = int((window_size[2]-window_size[0])/2) core_y = int((window_size[3]-window_size[1])/2) return window_size,core_x,core_y,Screenshot_value #检测模式 def Detection_mode(test_mode,Screenshot_value,window_size): if test_mode == 0: img = Screenshot_value.grab(window_size) img = np.array(img) img = cv2.cvtColor(img, cv2.COLOR_BGRA2BGR)#原版 elif test_mode == 1: img = Screenshot_value.screenshot(region=window_size) #使用opencv删除一个通道 img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR) return img window_size,core_x,core_y,Screenshot_value = Screenshot_Mode(0, 960, 540, 150, 150) print(window_size,core_x,core_y,Screenshot_value) img = Detection_mode(0, Screenshot_value, window_size) print(img) 这个代码实现了什么功能

2023-07-16 上传