vb多窗体同时显示问题

如图所示,我做了两个窗体,都是无边框,然后让图标的那个窗体置顶透明放在大窗体的左上角,用句柄判断设置是否unload左上角的图标防止一直置顶,但是当我从程序窗体点击桌面时会左上角的图标会消失,请问如何解决
部分代码如下:
Dim PlayMenu_Hwnd As Long, MediaPlayer_Hwnd As Long, MediaMenu_Hwnd As Long, ForeWindow_Hwnd As Long, DeskTop_Hwnd As Long
PlayMenu_Hwnd = FormHwnd(vbNullString, "PlayMenu")
MediaPlayer_Hwnd = FormHwnd(vbNullString, "音乐")
MediaMenu_Hwnd = FormHwnd(vbNullString, "MediaMenu")
ForeWindow_Hwnd = GetForegroundWindow
DeskTop_Hwnd = GetDesktopWindow
If ForeWindow_Hwnd <> DeskTop_Hwnd And ForeWindow_Hwnd <> PlayMenu_Hwnd And ForeWindow_Hwnd <> MediaPlayer_Hwnd And ForeWindow_Hwnd <> MediaMenu_Hwnd Then
Unload MediaMenu
Timer5.Enabled = False
Else
If MediaMenuLoad = False Then
MediaMenu.Show
End If
End If

第1个回答  2011-08-05
你这样设计会遇到更多问题的。!!!
同一时间不能同时操作2个窗体,窗体之间的代码也不会共享。
你是要拖大窗体的时候,蝴蝶也跟着移动吗?
只是一点点小小花哨,就要花费大量精力大量代码。不符合编程思想嘛,而且用户也不一定会喜欢。 你完全可以用其他的美化方法。
希望你把时间和精力用在程序的功能上,这样才可以受欢迎,用户才会多。
一定要这样做的话,你还是研究在同一个窗体里实现,不要用2个窗体。
第2个回答  2011-08-05
楼上两位说的对,你在做这种事之前,应当上网查查其他人怎么做自定义窗体边框的,不会有人用2个窗体来做这事,一般都是用一个窗体+一些控件实现!
第3个回答  2011-08-05

如果是为了这效果,使用双窗体 就复杂了!

完全可以使用一个窗体就可以的

你屏蔽掉无边框窗体的某种颜色!然后就能达到得到一个"自定义"外观的窗体

'================================================

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long,  _

ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long,  _

ByVal nIndex As Long,  _

ByVal dwNewLong As Long) As Long

Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, _

                                                                 ByVal crKey As Long, _

                                                                 ByVal bAlpha As Byte, _

                                                                 ByVal dwFlags As Long) As Long

Public Sub ctwg_pbys(ctjb As Long,pbys As Long)

 '------------------------------------将窗体ctjb的pbys色屏蔽

 Dim rtn As Long

 rtn = GetWindowLong(ctjb, -20)

 rtn = rtn Or 524288

 SetWindowLong ctjb, -20, rtn

 SetLayeredWindowAttributes ctjb, pbys, 0, 1

End Sub

本回答被提问者采纳

vb多窗体同时显示问题
你这样设计会遇到更多问题的。!!!同一时间不能同时操作2个窗体,窗体之间的代码也不会共享。你是要拖大窗体的时候,蝴蝶也跟着移动吗?只是一点点小小花哨,就要花费大量精力大量代码。不符合编程思想嘛,而且用户也不一定会喜欢。 你完全可以用其他的美化方法。希望你把时间和精力用在程序的功能上,...

VB.net中窗体上控件太多,运行时在桌面上显示不全,怎样用滚动条来解决...
在PicTureBox1里添加PicTureBox2,在窗体上添加一个垂直滚动条。把你所谓的许多控件放到PicTureBox2里,滚动条改变的是PicTureBox2在PicTureBox1里的Top属性,我想你通过一定的空间想象力,可以想到效果了吧?注意:默认状态设置PicTureBox2的Top属性为0,当该属性为负值的时候,PicTureBox2显示的效果是向上...

vb.net如何设置两个窗体在屏幕上的位置同步
窗口切换时要“先隐藏后显示”

vb怎么实现2个窗体可以显示在一个界面这样的控件,怎么用。 (代码解 ...
[工程]--[部件],勾选:Mocrosoft Windows common Controls 6.0 (SP6)那个,TabStrip控件就是了。几个关键属性:添加到窗体后,选中它,右击,选“属性”,出现“属性页”,选择其中,“选项卡”,单击[插入选项卡],可以添加必要的选项卡。控件的TabStrip1.SelectedItem.Index属性,返回单击选中的选...

VB中多个按钮,点击后然后在窗体固定位置显示不同的内容
把第二个PictureBox的Visible属性设为True,其他PictureBox的Visible属性设为False,依此类推,即可实现你的目的。当然,如果把作为容器的PictureBox做成控件数组,那么代码会简单得多。其实这就是选项卡的一种灵活实现方式。通过在容器控件中放入不同功能的其他控件,然后只要控制容器控件的显示或隐藏即可。

VB工程中有两个窗体,如何让两个窗体同时运行
第一启动窗体的form load里加入form2.show。代码如下:Private Sub Form_Load()form2.show '如果隐藏form2,则代码为 form2.hide,form2同样是运行的,只是界面隐藏End Sub

VB中怎么实现在多个窗体的情况下,想运行那个窗体就运行那个窗体?
Visual Basic 加载 Form 对象时,先把窗体属性设置为初始值,再执行 Load 事件过程。当应用程序开始运行时,Visual Basic 自动加载并显示应用程序的启动窗体。例如窗体加载过程Private Sub Form_Load()……End sub在其中添加代码翻译可以这样,当窗体被加载时执行所编辑的代码 或者 当窗体被加载时初始化...

vb能同时显示两个窗体
按F5运行的是 启动窗体,你在这个窗体里加上显示的代码就可以了,如果你启动的是FORM1,你在FORM1的BUTTON1的按钮下填入这个代码就可以了。。FORM2.VISIBLE=FALSE FORM2.SHOW

VB 中 如何让两个窗口在一个主窗口中显示
vb中本来就有一个满足你这个需要的内部控件啊,控件名叫SSTab,如下图所示:

VB6.0在编辑窗体同时选中多个控件,但是无法正确显示控件周围的空心方格...
用光标把它们全部框起来就可以

相似回答