相关疑难解决方法(0)

Java:点击窗口(包括文本/图像)

我想在Java中创建一个透明的覆盖层,总是在顶部,并且我可以点击.我发现了一些关于这个问题的类似 帖子,但即使按照他们的答案,我也有一个问题.

我的问题是让整个窗口点击.我并没有使其与一个JFrame工作的任何问题,但一旦我添加任何成分给它(的JLabel或ImagePanel)中,点击通过属性不结转给他们.

因为我想为我的应用程序提供一个背景图像,这基本上使我无法看到当我单击文本/图像所覆盖的区域时窗口如何聚焦的代码.

在我展示我正在使用的代码之前,我首先想要参考这些 线程,这些线程基本上准确地描述了我想要的东西,除了在C#中.

我的目标是创建一个带有透明.png图像和一些顶部文本的叠加层,这些叠加层会在关键事件上发生变化.如果它使用JFrame或任何其他库无关紧要.我只需要它与Windows兼容.

我还想提一下,我有一些Java经验,但是使用JFrame是一个新手.

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;

import com.sun.jna.platform.WindowUtils;


public class Overlay {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Overlay Window");
        frame.setUndecorated(true);
        frame.setAlwaysOnTop(true);
        frame.getRootPane().putClientProperty("apple.awt.draggableWindowBackground", false);
        frame.setLocation(400, 400);
        frame.getContentPane().setLayout(new java.awt.BorderLayout());

        JLabel textLabel = new JLabel("I'm a label in the window", SwingConstants.CENTER);
        frame.getContentPane().add(textLabel, BorderLayout.CENTER); 
        frame.pack();

        System.setProperty("sun.java2d.noddraw", "true");
        WindowUtils.setWindowTransparent(frame, true);
        WindowUtils.setWindowAlpha(frame, …
Run Code Online (Sandbox Code Playgroud)

java swing click-through transparent jna

10
推荐指数
1
解决办法
5709
查看次数

Pygame:允许点击进入窗口

我正在pygame中创建一个伪透明窗口,目的是显示各种信息,如"HUD"

该脚本使用PIL来抓取桌面的图像并将其用作窗口的背景.

一个简单的版本:

import pygame as py
from ctypes import windll
import ImageGrab, Image

SetWindowPos = windll.user32.SetWindowPos

py.init()

def get_image():
    im = ImageGrab.grab((0,0,window_x,window_y))
    mode = im.mode
    size = im.size
    data = im.tobytes()
    im = py.image.fromstring(data,size,mode)
    return im

window_x = 1920
window_y = 100

background = py.Surface((window_x,window_y))
background.blit(get_image(),(0,0))

window_pos = (0,0)


screen = py.display.set_mode((window_x,window_y),py.HWSURFACE|py.NOFRAME)

SetWindowPos(py.display.get_wm_info()['window'],-1,0,0,0,0,0x0001)

clock = py.time.Clock()

done = False

while not done:
    for event in py.event.get():
        if event.type == py.QUIT:
            done = True
    screen.blit(background,(0,0))
    py.display.flip()
    clock.tick(30)

py.quit()
Run Code Online (Sandbox Code Playgroud)

这会在屏幕顶部创建一个Pygame窗口.

我的问题是Pygame窗口阻止任何鼠标与其下面的任何东西进行交互. …

python pygame window python-2.7

7
推荐指数
1
解决办法
676
查看次数

点击C#表单

我创建了一个半透明的表单.我希望人们能够点击表单区域,并且表单不能处理点击.我希望表单下面的任何内容都能接收点击事件.

c#

6
推荐指数
1
解决办法
8907
查看次数

如何点击并透视"始终在顶部"窗口

我想显示一个带有一些信息的半透明的always-on-top窗口,但我不希望这个窗口接受输入或接收焦点.所有鼠标点击都应该转到底层窗口.

我记得几年前在一个shell替换应用程序中看到这个,但我不能记得女巫.

任何想法如何用delphi或c#实现这种效果?

更新:

我不能完全得到与delphi一起使用的建议解决方案.为NCHITTEST消息返回HTTRANSPARENT将停止所有到达表单的mousemessages,但是它希望以z顺序将其传递给下一个窗口.这种方法是否可以跨进程工作,还是仅用于处理特定窗口的childelements?

但是,如果我设置了ExStyle标志WS_EX_TRANSPARENT,所有鼠标点击都将进入下一个窗口,但我根本不会收到NCHITTEST消息,并且无法控制窗口应该点击的位置. ..

c# delphi always-on-top

3
推荐指数
1
解决办法
2978
查看次数