怎么一个窗体上用控件显示另外一个窗体啊

w_wbinf 2005-10-31 09:25:24
小弟刚接触vb忘各位大哥指教

另外谁有动态树形菜单得代码啊

谢谢
...全文
130 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
w_wbinf 2005-10-31
  • 打赏
  • 举报
回复
ok拉 谢谢大家

w_wbinf 2005-10-31
  • 打赏
  • 举报
回复
是用picturebox控件来显示么?

什么反映也没有啊
rainstormmaster 2005-10-31
  • 打赏
  • 举报
回复
SetParent

VB声明
Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
说明
指定一个窗口的新父(在vb里使用:利用这个函数,vb可以多种形式支持子窗口。例如,可将控件从一个容器移至窗体中的另一个。用这个函数在窗体间移动控件是相当冒险的,但却不失为一个有效的办法。如真的这样做,请在关闭任何一个窗体之前,注意用SetParent将控件的父设回原来的那个)
返回值
Long,前一个父窗口的句柄
参数表
参数 类型及说明
hWndChild Long,子窗口的句柄
hWndNewParent Long,hWndChild的新父
注解
可用这个函数在运行期将vb控件置入容器控件内部(比如将一个按钮设成图象或窗体控件的子窗口),或者将控件从一个容器控件移至另一个。控件移至另一个父后,它的位置将由新父的坐标系统决定。这样一来,有必要重新规定控件的位置,使其能在目标位置显示出来


xiaoMONKEY 2005-10-31
  • 打赏
  • 举报
回复
我发给你的不行吗?
w_wbinf 2005-10-31
  • 打赏
  • 举报
回复
例如

form1 ,form2

form1是主窗体

当我调用form2时,form2不是弹出来
而是出现在form1中得 某个容器里
saulzy 2005-10-31
  • 打赏
  • 举报
回复
不明白说的什么,最好举个例子
51365133 2005-10-31
  • 打赏
  • 举报
回复
图片框中显示窗口

应该可以
rainstormmaster 2005-10-31
  • 打赏
  • 举报
回复
用setparent这个api函数即可,具体的用法你自己搜索一下吧:)
xiaoMONKEY 2005-10-31
  • 打赏
  • 举报
回复
1问题:我有一个是在图片框中显示窗口
2问题:我是用数据库显示TREEVIEW
不知道你要不要的着,要的话加我QQ:26743670
w_wbinf 2005-10-31
  • 打赏
  • 举报
回复
不管怎么说

先谢谢2位大侠
w_wbinf 2005-10-31
  • 打赏
  • 举报
回复
说白了

我就是想用

一个treevew做一个树形的菜单

然后在form中方一个控件
用来显示菜单调
用的窗体
w_wbinf 2005-10-31
  • 打赏
  • 举报
回复
楼上的大虾 先谢谢你

我的意思是 1 ,

在第一个窗体的某个区域上 例如:ole中 显示另外一个窗体

第2个问题

我的意思是
树形菜单,
用treeview控件对应数据库无所谓
gc801 2005-10-31
  • 打赏
  • 举报
回复
sorry,发得晚了点,第一问没有看清楚.请继续等楼下.OLE应该做不到你所说的.
gc801 2005-10-31
  • 打赏
  • 举报
回复
'第一个问题
'在窗体1上用cmd代码激活窗体2
Private Sub Command1_Click()
Load Form2
Form2.Show
End Sub

'第2个问题
'模块代码
Option Explicit

Public Declare Function CreateMenu Lib "user32" () As Long
Public Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
Public Declare Function TrackPopupMenu Lib "user32" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hWnd As Long, lprc As RECT) As Long
Public Declare Function CreatePopupMenu Lib "user32" () As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Const MF_STRING = &H0&
Public Const MF_POPUP = &H10&
Public Const WM_USER = &H400
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Public Type POINTAPI
x As Long
y As Long
End Type
Public Const GWL_WNDPROC = (-4)
Public hMenu As Long
Public hmenupopup As Long
Public result As Long
Public oldwinproc As Long
Public Const WM_COMMAND = &H111

Public Function OnMenu(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Select Case wMsg
Case WM_COMMAND
Select Case wParam
Case 300
MsgBox "u select new", vbInformation, "hello, world!"
Case 301
MsgBox "u select save", vbInformation, "hello, world!"
Case 302
MsgBox "u select save as", vbInformation, "hello, world!"
End Select
End Select
OnMenu = CallWindowProc(oldwinproc, hWnd, wMsg, wParam, lParam)
End Function

'程序代码
Private Sub Form_Load() '窗体Load时加载菜单
hMenu = CreateMenu()
hmenupopup = CreatePopupMenu()
result = AppendMenu(hmenupopup, MF_STRING, 300, "&New")
result = AppendMenu(hmenupopup, MF_STRING, 301, "&Save")
result = AppendMenu(hmenupopup, MF_STRING, 302, "Save &As...")
result = AppendMenu(hMenu, MF_POPUP, hmenupopup, "&File")
oldwinproc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf OnMenu
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim r As RECT
Dim p As POINTAPI
If Button = vbRightButton Then '如果点击右键弹出菜单
GetCursorPos p
TrackPopupMenu hmenupopup, 0, p.x, p.y, 0, Me.hWnd, r
End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
SetWindowLong Me.hWnd, GWL_WNDPROC, oldwinproc
End Sub

w_wbinf 2005-10-31
  • 打赏
  • 举报
回复
例如在 form1的 ole中 显示form2


of123 2005-10-31
  • 打赏
  • 举报
回复
不明白你的意图。是否要子窗体?

7,786

社区成员

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

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