首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Windows桌面暗水印方法与C++实现

窗体实现 使用C++创建一个窗体,并置顶,为窗体设置合适的透明度,就能达到透明水印效果。...为了让被覆盖的其它窗体能正常响应鼠标事件,需要屏蔽自己窗体的鼠标事件 本文所讲的方法就是使用窗体实现 DirectX实现 许多全屏游戏的画面是由DirectX或OpenGL绘制,此时所有窗体都会被屏蔽,...我所能想到的方法是Hook到显卡驱动,在DirectX绘图之后执行自己的绘图代码 半透明窗体 使用Qt创建一个窗体,修改windowOpacity值为0.5,即可实现半透明5148 事件传递与窗体属性...句柄 获取Qt窗体的句柄 hwnd = (HWND)this->winId(); 鼠标事件 透明的窗体仍会响应鼠标事件,使用 WA_TransparentForMouseEvents 属性即可让窗体将鼠标事件传递到窗体下方...WS_EX_TOPMOST: 窗口处于所有非最顶层窗口的上方并保持 WS_EX_TRANSPARENT: 在所有统计窗口重绘之后才重绘本窗口 WS_EX_TOOLWINDOW: 该窗口为悬浮窗

2.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Qt示例-AnalogClock-自定义窗体-使用QPainter的转换和缩放特性简化绘图

    摘要: 本示例是使用Qt的QPainter的转换和缩放特性简化绘图,绘制一个时钟,里面包含时针、分针、秒针、钟表刻度的绘制。 也包含计时器的使用,以及创建带有栅格表面的自定义窗口。...QBackingStore允许使用QPainter在带有栅格表面的QWindow上进行绘制。另一种呈现QWindow的方法是使用OpenGL和QOpenGLContext。...(QEvent* event) override; 在窗口改变大小的时候,也需要将绘制的图形重新按照新的窗体大小进行渲染,以保持随窗体变化。...void resizeEvent(QResizeEvent* event) override; 窗口还有一种需要渲染的事件,一种简单的情况就是被其他窗体遮挡后,又重新被启用或者是显示、激活等操作。...translate()平移将原点移动到窗口的中心,缩放操作确保将接下来的绘图操作缩放到适合窗口的大小。

    2.2K10

    Qt5.12+OpenGL可编程管线之创建OpenGL窗口

    今天正式进入Qt5.12 + OpenGL 3.x以上可编程管线的代码部分。 程序主要是参考learnopengl,更多关于OpenGL的说明也可参考他们的文章。...//learnopengl-cn.github.io/01%20Getting%20started/03%20Hello%20Window/ 由于顶点着色器与片段着色器程序需要我们自己去实现,反而创建窗体的程序就比较少了...,必须告诉OpenGL渲染窗口的尺寸大小,即视口(Viewport), //这样OpenGL才只能知道怎样根据窗口大小显示数据和坐标 glViewport(0, 0, w, h);..., 1.0f); //清空屏幕所用的颜色,参数分别为红、绿、蓝以及透明度 //使用三种颜色的分量可配置出超过1600万种不同的颜色...{ //ESC 按下后,关闭窗体 switch ( e->key() ) { case Qt::Key_Escape: close(); break

    73911

    .Net 基于GDI+的图件绘制平台的设计与实现(一)

    决定开发一套专业的可扩展的图形绘制图库,方便在石油行业的项目中使用,前期先实现使用GDI绘图,后期考虑通过扩展接口的方式支持OpenGL(全写Open Graphics Library)跨编程语言、跨平台的编程接口规格的专业的图形程序接口...图元的职责调用绘图接口进行图形绘制,现在支持使用GDI+绘图,后面可增加对OpenGL绘图支持。...图元中还有如画笔,画刷,高度,宽度等各种绘图属性设置,还提供图形缩放、图形移动等方法,还提供HitTest方法,让用户在图元对象内部HitTest。 ?...主要包括下面几个内容: 图元shape创建与管理 子图元的Painter集合 图元绘制的属性相关设置 图元右键上下文菜单事件处理,及弹出窗口UI设置 图元创建中的事件处理 ? ?...结束,绘图库的i基本结构就介绍完了 ,后续会继续讲如何使用绘图库绘制图形,包括绘图库UI项目(绘图库使用相关属性窗体),绘图库Utility项目 , 相关的Data、Model、View、Service

    1.1K20

    13.2 外部DirectX绘制实现

    在前一节中我们简单介绍了D3D绘制窗体所具备的基本要素,本节将继续探索外部绘制技术的实现细节,并以此实现一些简单的图形绘制功能,首先外部绘制的核心原理是通过动态创建一个新的窗口并设置该窗口属性为透明无边框状态...,通过消息循环机制实现对父窗口的动态跟随附着功能,当读者需要绘制新的图形时只需要绘制在透明窗体之上即可实现动态显示的效果。...最后调用D3DXCreateFontW来创建Direct3D字体对象,使得程序可以在绘图中使用特定的字体呈现文字。...FF_DONTCARE, L"Vernada", &Font); return TRUE;}13.2.3 初始化消息循环封装实现CreateTransparentWindow函数,该函数用于创建一个透明窗口来显示...Direct3D渲染的图形和文本,函数接受两个参数,游戏窗口句柄和绘制函数,其中游戏窗口句柄表示将要在其上绘制图形和文本的窗口句柄,而绘制函数则是指向绘制矩形的全局指针。

    46130

    图形学上机实验

    实验环境:win10、VS 2017、OPenGL库 实验一 基于OpenGL的二维图形绘制 要求 编程实现绘制一个五角星(基于OpenGL),效果如下图所示 图片 问题分析 可以将一个五角星划分为...glutSwapBuffers();//交换缓冲(双缓冲时使用) } void reshape(int width, int height) { glViewport(0, 0, width, height);//设置视区(窗口内绘图区域...效果展示 图片 实验二 二维图形的几何变换 要求 实现一个五角星以任意角度在矩形四条边内部滚动,与边界碰撞时发生的反弹,参考台球在桌案上的滚动效果。...glutSwapBuffers();//交换缓冲(双缓冲时使用) } void reshape(int width, int height) { glViewport(0, 0, width, height);//设置视区(窗口内绘图区域...glutSwapBuffers();//交换缓冲(双缓冲时使用) } void reshape(int width, int height) { glViewport(0, 0, width, height);//设置视区(窗口内绘图区域

    1.6K21

    万字长文详解如何用Python玩转OpenGL | CSDN 博文精选

    glut是为跨平台的OpenGL程序的工具包,比aux功能强大。glx、agl、wgl 是针对不同窗口系统的函数。扩展函数库是硬件厂商为实现硬件更新利用OpenGL的扩展机制开发的函数。...OpenGL提供了强大的但是为数不多的绘图命令,所有较复杂的绘图都必须从点、线、面开始。...glut是不依赖于窗口平台的OpenGL工具包,由Mark KLilgrad在SGI编写(现在在Nvidia),目的是隐藏不同窗口平台API的复杂度。...使用工具库(GLUT)创建 OpenGL 应用程序只需要四步(当然,前提是你需要先准备好绘图函数,并给它取一个合适的名字): 初始化glut库 创建glut窗口 注册绘图的回调函数 进入glut主循环...和我们的代码相比,一个真正实用的 OpenGL 程序,还有许多工作要做: 设置初始显示模式 初始化画布 绘图函数里面需要增加:清除屏幕及深度缓存、投影设置、模型试图设置 绑定鼠标键盘的事件函数 三、设置初始显示模式

    9.4K22

    写给 python 程序员的 OpenGL 教程

    glut是为跨平台的OpenGL程序的工具包,比aux功能强大。glx、agl、wgl 是针对不同窗口系统的函数。扩展函数库是硬件厂商为实现硬件更新利用OpenGL的扩展机制开发的函数。...OpenGL提供了强大的但是为数不多的绘图命令,所有较复杂的绘图都必须从点、线、面开始。...glut是不依赖于窗口平台的OpenGL工具包,由Mark KLilgrad在SGI编写(现在在Nvidia),目的是隐藏不同窗口平台API的复杂度。...使用工具库(GLUT)创建 OpenGL 应用程序只需要四步(当然,前提是你需要先准备好绘图函数,并给它取一个合适的名字): 初始化glut库 创建glut窗口 注册绘图的回调函数 进入glut主循环...和我们的代码相比,一个真正实用的 OpenGL 程序,还有许多工作要做: 设置初始显示模式 初始化画布 绘图函数里面需要增加: 清除屏幕及深度缓存 投影设置 模型试图设置 绑定鼠标键盘的事件函数 4.3

    3.3K30

    C++学习(一五九)Qt的场景图Scene Graph

    使用传统的绘图技术,这将导致30次绘图调用和类似数量的状态更改。...该树是根据QML场景中的QQuickItem类型构建的,然后在内部由渲染该场景的渲染器处理该场景。节点本身不包含任何活动的绘图代码或虚拟paint()函数。...经验法则是仅在QQuickItem :: updatePaintNode()函数内使用带有“ QSG”前缀的类。...可通过直接调用场景图使用的图形API(OpenGL,Vulkan,Metal等)来添加自定义场景图内容或插入任意渲染命令。这个集成点由渲染循环定义。 共有三种渲染循环变体:基本,窗口和线程。...对于后者,这主要是一种预防措施,因为并非所有OpenGL驱动程序和窗口系统的组合都已经过测试。

    2.4K40

    OpenGL基本框架与三维对象绘制

    上次我们介绍了OpenGL的环境构建和二维对象的绘制,这次我们来讲讲三维对象的绘制:  绘制代码如下: // opengltest2.cpp : Defines the entry point for...glPushMatrix(); //设置颜色RGB 与透明度值(0.5) glColor4f(0.0,0.2,0.8, 0.5); //发出准备绘图命令 glBegin...glEnd(); //绘图后,恢复绘图前的模型变换矩阵 //这样,对当前图形的变换对后面图形绘制不影响 glPopMatrix(); } //opengl 用户自定义绘图函数...0.3 度 //用缓冲区所绘制的对象替换窗口内容——适合于双缓冲技术 glutSwapBuffers();//交换双缓存 } //用户自定义窗口调整大小事件的处理函数 //...glutCreateWindow("OpenGL HelloWorld"); //用户自定义初始化绘图环境函数 init(); //用户指定的绘图函数,display 名可变

    75520

    实验1 OpenGL初识

    一.实验目的 熟悉编程环境;了解光栅图形显示器的特点;了解计算机绘图的特点; 利用VC+OpenGL作为开发平台设计程序,以能够在屏幕上生成任意一个像素点作为本实验的目标。...如glColor3b(…)、glColor3d(…)、glColor3f(…)和glColor3bv(…)等,这几个函数在功能上是相似的,只是适用于不同的数据类型和格式,其中3表示该函数带有三个参数,b...OpenGL的坐标系统 如下图A.1所示,OpengGL坐标与绘图区坐标关系如下, 绘图区的中心点:(0.0,0.0,0.0) 绘图区的右上角点:(1.0,1.0,0.0) 绘图区的左下角点:(-...图A.1 OpengGL绘图区对应坐标 四.实验代码 在运行下面实验代码前,请先配置FreeGlut库,这是一个OpenGL程序的支持环境库,具体信息与配置方法请参考: FreeGlut配置简介。...glutInitWindowSize,设置窗口的大小。 glutCreateWindow,根据前述设置的信息创建窗口。参数将被作为窗口的标题。注意:窗口被创建后,并不立即显示到屏幕上。

    1K30

    OpenGL学习笔记——上色

    前言 初学OpenGL,我越来越觉得学习OpenGL的过程,像一个小朋友学画画(我就是那个小朋友!)...正所谓万事开头难,上一篇写了如何配置OpenGL的环境,相当于学会了如何展开一张画,这次要开始记录如何握笔。 参考教程 正文 需求:创建一个指定大小的窗体,并涂满指定的颜色。...); 配置glfw窗口的相关属性。...上面这段代码的前两句,分别配置了glfwWindow的主版本号和副版本号,因此,我们告诉glfw,我们使用的OpenGL是3.3版本的。 第三句表示,我们只使用当前版本未被废弃的特性。...由于,我们采用双缓冲的结构,交换缓存时,我们就可以刷新窗口。 glfwTerminate(); 结束循环后,终止OpenGL。 最终,我们就可以打开一个窗体,并涂上固定的颜色。 ?

    80740

    OpenGL 之 EGL 使用实践

    EGL 是 OpenGL ES 渲染 API 和本地窗口系统(native platform window system)之间的一个中间接口层,它也主要由厂商来实现。...EGL 提供了如下机制: 与设备的原生窗口系统通信 查询绘图表面的可用类型和配置 创建绘图表面 在 OpenGL ES 和其他图形渲染 API 之间同步渲染 管理纹理贴图等渲染资源 为了让 OpenGL...我们可以直接用 GLSurfaceView 来进行 OpenGL 的渲染,就是因为在 GLSurfaceView 的内部已经完成了对 EGL 的使用封装,当然我们也可以封装自己的 EGL 环境。...Stencil Buffer ,Depth Buffer Context (EGLContext) 存储 OpenGL ES绘图的一些状态信息 使用 EGL 的具体步骤如下: 创建与本地窗口系统的连接..._BIT, 10 EGL14.EGL_NONE, 11 }; 首先定义 EGLConfig 属性配置数组,定义红、绿、蓝、透明度、深度、模板缓冲的位数,最后要以 EGL14.

    3K21

    opengl视图矩阵_心形线四个图像

    今天我们开始学习Opengl编程。 在学习之前,我们要开始配置Opengl,我这里使用的是VS2010,语言是C++。 Opengl是C++的一个拓展包,用来进行计算机图形方面的编程。...Opengl实用工具库(Opengl Utility Tooklit, GLUT)是独立于窗口系统的工具包,可以隐藏不同窗口系统API所带来的复杂性。...因为当我们所画的点足够多的时候,就能够近似看做曲线),而后Opengl会把glBegin和glEnd里面所有绘制的点依次相连然后填充其内部,就得到了我们所需要绘制的心形线。...最后glFlush是强制完成绘图操作,相当于刷新的功能,这样我们的绘制部分就完成啦!...定义窗口位置,使用 glutInitWindowPosition,里面两个参数分别为窗口左上角的屏幕位置。 创建窗口,使用 glutCreateWindow,里面的参数为窗口的标题。

    40221

    qcustomplot 性能_cpu性能提升工具

    然而一些特性比如半透明的填充,反锯齿和粗线条都可能导致低效率。如果你在你的程序中注意到了这些。这有一些提示关于如何跳高Replot的性能。...大部分时间耗费在绘图函数上尤其是绘制高密度的图形和其他图。为了最大性能思考下面几点: 使用Qt4.8.0及以上的版本,性能将会有双倍或者三倍的提升跟Qt4.7.4相比。...然而QPainter被破坏了并且绘制精确像素的东西使用Qt>=4.8.0的版本是不可能的。因此它是性能和质量的权衡当转到Qt4.8.0时。QCustomPlot内部尝试解决这种严重的故障。...如果OpenGL是可用的,这将略有减少抗锯齿的质量但是却增强了性能尤其是半透明的填充,抗锯齿和大量的QCustomPlot绘制表面。...避免任何形式的α(透明度),特别是在填充。 避免用宽度大于1的画笔画线。 避免任何反锯齿,尤其是在曲线图中的线。 避免重复设置完整的数据用QCPGraph::setData。

    2K40

    一看就懂的 OpenGL 基础概念(2):EGL,OpenGL 与设备的桥梁丨音视频基础

    EGL 提供如下机制: 与设备的原生窗口系统通信; 查询绘图图层的可用类型和配置; 创建绘图图层; 在 OpenGL ES 和其他图形渲染 API 之间同步渲染; 管理纹理贴图等渲染资源。...在 Android 上的实现类是 EGLSurface。 Context 存储 OpenGL ES 绘图的一些状态信息。在 Android 上的实现类是 EGLContext。...7)OpenGL ES 完成绘制后,调用 eglSwapBuffers 方法交换前后缓冲,将绘制内容显示到屏幕上,而离屏渲染不需要调用此方法; 这里需要注意的是 EGL 的工作模式是双缓冲模式,其内部有两个...内部实现了对 EGL 的封装,可以很方便地利用接口 GLSurfaceView.Renderer 的实现,使用 OpenGL ES API 进行渲染绘制。...OpenGL ES 系统与本地窗口(UIKit)系统的桥接由 EAGL 上下文系统实现。

    2.7K10

    快手( AAuto Quicker ) v6.5.06更新记录

    2、标准库中增加 win.flashBox 组件,用于支持flash桌面透明、或者flash窗口在父窗体上透明悬浮显示。...在传统窗体中,要让一个控件完美透明,并且完美浮动在其他控件前面,是一件比较麻烦的事。...一个窗体的子窗口总是显示在父窗口的内部,例如你在网页上看到flash是透明的,但是flash一半显示在网页里面,一半显示在浏览器外面在桌面上透明,这个实现起来就很麻烦了。...你只要在窗体设计器中拖好控件的位置(控件可以拖到窗口的外面),然后调用控件的一个函数 orphanWindow() 就行了。然后控件可以完美的浮动在其他控件前面并且透明。...控件仍然可以象一个子窗口(实际上他不再是子窗口,只是伪装成子窗口)那样如影随形的跟随父窗口移动, 并且按照窗体设计器中预设的参数(例如固定边距)来自动调整位置和大小。

    90830
    领券