如何让VB的主窗体以模式窗体显示??

chong232 2010-06-03 04:34:25
这是做一个VB应用,只有一个主窗体,希望它运行后像对话框那样的模式窗口来显示,不关闭就无法切换到其它程序!
...全文
251 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
chong232 2010-06-07
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 lyserver 的回复:]

引用 14 楼 of123 的回复:
给你出个馊注意。

你不要只用一个窗体,而是用 2 个。

1 主窗体全屏且透明,没有任何控件,也没有标题栏。它启动后启动第 2 个窗体。
2 第 2 个窗体以模式窗体方式启动。它退出时也使主窗体退出。

这个主意好。
[/Quote]

这个好,虽然没试,应该行得通,多谢多谢
chong232 2010-06-07
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 lyserver 的回复:]

引用 14 楼 of123 的回复:
给你出个馊注意。

你不要只用一个窗体,而是用 2 个。

1 主窗体全屏且透明,没有任何控件,也没有标题栏。它启动后启动第 2 个窗体。
2 第 2 个窗体以模式窗体方式启动。它退出时也使主窗体退出。

这个主意好。
[/Quote]

这个。。。有点复杂了。
chong232 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lyserver 的回复:]
一、窗口置顶。
二、判断窗口活动状态,如果窗口处于非活动状态,则激活自己。
[/Quote]

不行,这样只是把焦点拿回来了,但其它窗口还是可以接受鼠标或键盘
chong232 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cqc89518 的回复:]
我去的味道
[/Quote]

不知道这是个什么东西,,,,
chong232 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 king06 的回复:]
Public Declare Function GetActiveWindow Lib "user32" () As Long
判断当前窗口的句柄是否是你那个窗体的hwnd
[/Quote]
这个想法不错,我试下
lyserver 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 of123 的回复:]
给你出个馊注意。

你不要只用一个窗体,而是用 2 个。

1 主窗体全屏且透明,没有任何控件,也没有标题栏。它启动后启动第 2 个窗体。
2 第 2 个窗体以模式窗体方式启动。它退出时也使主窗体退出。
[/Quote]
这个主意好。
of123 2010-06-04
  • 打赏
  • 举报
回复

给你出个馊注意。

你不要只用一个窗体,而是用 2 个。

1 主窗体全屏且透明,没有任何控件,也没有标题栏。它启动后启动第 2 个窗体。
2 第 2 个窗体以模式窗体方式启动。它退出时也使主窗体退出。
lyserver 2010-06-04
  • 打赏
  • 举报
回复
那就禁止任务栏,把桌面窗口设为自己窗口的属主窗口,然后再禁止桌面窗口。
嗷嗷叫的老马 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 magic7004 的回复:]
这个我做过,
1. 禁止操作其他窗口:做一个Keyboard Hook 和一个Mouse Hook,把其他窗口的所有按键和鼠标动作都禁止掉。
2. 禁止窗口切换:做一个Low Level Keyboard Hook,把Alt+Tab和Win键禁止掉
3. 禁用Alt+Ctl+Del:做一个Dll注入到Winlogon.exe,把这个进程的标题是SAS Window的窗口的WM_HOTKEY消……
[/Quote]
有现成VB的,不使用DLL进行注入从而屏蔽Ctrl+Alt+Del键:

http://www.m5home.com/bbs/thread-1039-1-3.html
magic7004 2010-06-04
  • 打赏
  • 举报
回复
这个我做过,
1. 禁止操作其他窗口:做一个Keyboard Hook 和一个Mouse Hook,把其他窗口的所有按键和鼠标动作都禁止掉。
2. 禁止窗口切换:做一个Low Level Keyboard Hook,把Alt+Tab和Win键禁止掉
3. 禁用Alt+Ctl+Del:做一个Dll注入到Winlogon.exe,把这个进程的标题是SAS Window的窗口的WM_HOTKEY消息屏蔽掉
这样就OK了。
不过这个用VB做貌似不方便。
fzx4936 2010-06-03
  • 打赏
  • 举报
回复
楼主的想法很霸道啊
threenewbee 2010-06-03
  • 打赏
  • 举报
回复
建议使用 windows xp embedded,将不用的程序剪裁掉,同时屏蔽掉一些快捷键。
很多多媒体展示系统都是这么做的。
cqc89518 2010-06-03
  • 打赏
  • 举报
回复
我去的味道
luofenghen 2010-06-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 syssz 的回复:]
Private Sub Form_Load()
Me.Show vbModal
End Sub
'可试一试
[/Quote]
这个是不行的 他是要模式窗体 就是打开了 其他窗体都点不了的 只有关闭了这个窗体才能点其他的
SYSSZ 2010-06-03
  • 打赏
  • 举报
回复
Private Sub Form_Load()
Me.Show vbModal
End Sub
'可试一试
lyserver 2010-06-03
  • 打赏
  • 举报
回复
一、窗口置顶。
二、判断窗口活动状态,如果窗口处于非活动状态,则激活自己。
king06 2010-06-03
  • 打赏
  • 举报
回复
Public Declare Function GetActiveWindow Lib "user32" () As Long
判断当前窗口的句柄是否是你那个窗体的hwnd
chong232 2010-06-03
  • 打赏
  • 举报
回复
继续等待,我也不知道行不行!
luofenghen 2010-06-03
  • 打赏
  • 举报
回复
这个好像不行吧 屏幕窗体可以看做是一个主窗体 个人看法

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧