ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C#-在其他窗口上覆盖文本-HUD

2019-11-07 02:19:01  阅读:449  来源: 互联网

标签:hud vb-net c


我有兴趣编写一个在VB.NET中将小抬头显示器(HUD)覆盖在另一个应用程序上的应用程序.这是什么例子?

我将需要枚举所有打开的窗口以找到所需的窗口,然后将一些文本覆盖在窗口上的特定位置.如果用户移动该窗口,则需要跟随我的文字. (我可能会一遍又一遍地循环绘制文本).

编辑:没有人回答我的原始查询-我在关键字中添加了C#,以查看该语言中的大师是否有答案.

解决方法:

您可以使用WinApi枚举窗口.
您可以开始使用

[DllImport("user32.dll")]
public static extern int EnumWindows(EnumWindowsProc ewp, int lParam);

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool GetWindowRect(IntPtr hWnd, ref WapiRect lpRect);

当您找到自己的窗户并拥有它的把手时,就可以使用类似的东西在其上进行绘制

Graphics g = Graphics.FromHwnd(win.Handle);
g.FillRectangle(new SolidBrush(Color.White), 0, 0, 1000, 1000);

但是要覆盖…一种可能的解决方案是创建自己的无边框形式(甚至可以使之透明)并将文本放置在上面.然后只需将此特殊形式放在另一个应用程序之上.

标签:hud,vb-net,c
来源: https://codeday.me/bug/20191107/2002643.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有