如何让一个窗体不接受任何消息?(1分)

  • 主题发起人 主题发起人 xwings
  • 开始时间 开始时间
X

xwings

Unregistered / Unconfirmed
GUEST, unregistred user!
我有个窗体. 始终在最上方. 我要它不接受任何如键盘.鼠标.消息 好像她不存在一样.并且可以把消息传递到它下面的窗体.
比如下面有个notepad 我打字. 它就透过窗体在下面的notepad里打字. 我单击鼠标在窗体上拖动.
它就在下面的notepad里选择文本拖动了.

如何达到这种效果呢? ;

回答出来的我给 200分 在我另外一个问题里.
 
请举个例子说明一下
 
wm_nchittest:
msg.result:=HTNOWHERE;

可以解决你的鼠标问题,键盘不知道
 
哈哈!这个样子!你还不如干脆做个假窗体算了!贴张窗体图片吧!
对了,它不接收任何信息,怎么关闭中止呢?
这样的窗体还有什么意义???
 
也不是没意义的,可以用来显示TIPS嘛,翻译软件也可用。。。
 
好多功能啊. 可以做个时钟.放在上面. 不遮挡操作. 可以放段文字. 编工作边看看. ;)

关闭就用快捷键. 或者在任务栏里关闭哦,
 
用 Delphi6 做一个透明窗体完全可以达到你的要求

举个例:
1。放一个 Image1 在 form1 上,设 Image1.Align:= alClient; Strech:= True;
2。做一个颜色全部是白色的 bmp 图片,把它载入到 image1 中
3。设 Form1.TransparentColor:= True;
; ; ; ; ; ; TransparentColorValue:= clWhite;
4。运行,你就看到效果了
 
to:940801
好像你理解错了. 你那样做.窗体是透明了. 不过还是有输入焦点的. 我点窗体并不能点到窗体下面的程序. 还是点在透明窗体上. 对吧.
 
xwings,不可能啊,我举的那个例就是我测试的步骤,你的透明窗体就可以点在下面的窗体上啊
 
不会吧, 它只是透明而已. 我暂时没有机会试试.那位试试告诉 94.. ;;)



在问,
;如何得知桌面上某个区域图象有变化?比如出现个窗体. 窗体的内容改变了. 我只要知道它的 rect 就行.

答上来的就给分..thx ;
 
我测试过,我同意940801的观点,在Delphi6中设AlphaBlend为True,AlphaBlendValue为0,
这样的窗体就好像不存在了一样,不过这个窗体上的所有控件也将看不见了,这和不创建
该窗体有何区别?
 
我要的不是透明,而是对于输入是透明的.就是鼠标,键盘事件它不接受, 好像透过它点击到下面的窗体了.
 
940801 is right absolutely!
 
WIN2000的半透明窗体可以达到要求。你自己试试看。
 
你这人真是,给那一点分。我觉得“另外给分”是缺乏诚意的表现。不过你别生气,
我只是无聊时说说而已,你也有你的担心。
 
其实这和透明不透明没有关系,你就是不想接受事件,可这并不能保证这个窗体下面的窗体
获得焦点,不获得焦点是不可能获得键盘等控制消息的。我有一个办法,不过我是不去想的了。
你要手工获得在你窗口下面的窗口。当你的窗口收到消息后,你就把消息发到下面的窗口去
,同时自己不要处理。前面的难一点,自己不处理是很容易的。
 
如果你用的是WIN2000,这个要求很容易达到
就象这个窗口不存在一样,连鼠标指针都是下面窗口的。
但是如果不透明的话,你看不见怎么打字啊?
呵呵,一个API可以搞定的问题。
 
后退
顶部