多文档应用的界面设计问题

printer 2002-03-30 05:40:57
问题描述:
希望创建一个多文档应用,按照VB的应用程序向导一步步的建立了出来,很不错,但是我希望在界面上扩充功能,使其能够达到这样的效果:Docking Window ,或许大家见多了Visual C++ 的类管理器,Visual Basic 的控件箱,资源管理器,Inernet Explorer 的搜索、历史、多媒体按钮按下后的效果,甚至Explorer都有这样的功能,但是不知道该怎么办,希望大家献计献策!
...全文
23 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
ferrytang 2002-03-31
  • 打赏
  • 举报
回复
可惜没多少人想正确了!
有时这种界面不是和小型开发使用,光界面就有的你做了!
printer 2002-03-31
  • 打赏
  • 举报
回复
也好,界面不是主要的,可是好的界面能给用户以自由的方式操作,做程序作软件不是时时刻刻心里要想着用户么?
我的Mail: darkblue@21cn.com
zyl910 2002-03-31
  • 打赏
  • 举报
回复
To ferrytang(四眼丑田鸡):给我一份!zyl910@sina.com
ferrytang 2002-03-31
  • 打赏
  • 举报
回复
我可以告诉你我不是整天研究界面如何实现的。所以我不敢保证这些代码的来源
我可以想象你需要什么样得效果!我没把握给你最理想的效果,如果你觉得需要的
那么留下你的mail。
然后。。。
printer 2002-03-31
  • 打赏
  • 举报
回复
但是,这不是问题的关键,并没有解决我的问题,事实上,你连最简单的浮动窗口都没有解决,更不用说当这个窗口移动到Fome1窗体边缘的时候自动和Form1的整合,打开Visual Basic 尝试拖动一下属性页,工具箱,工程管理器,本地窗口,立即窗口,你就会知道我想要的是什么,或者单击IE的收藏夹按钮,就是一个更简单的例子。
printer 2002-03-31
  • 打赏
  • 举报
回复
TO: ayusay(阿于)
===================
你刚刚的所言,我可以使用这样的语句就可以了,而且,比你的更完善
form1的load事件中
form2.show ,me
ayusay 2002-03-31
  • 打赏
  • 举报
回复
非模态对话框:
Windows系统中的对话框有三种,一种是模态对话框,一种是非模态对话框,最后一种是系统模态对话框。模态对话框允许用户将焦点转移到其他应用程序上,但是不允许将焦点转移到该对话框的你窗口上。非模态对话框即允许将焦点转移到其他应用程序上,也允许将焦点转移到其父窗口上。系统模态对话框既不允许将焦点转移到其父窗口上,也不允许将焦点转移到其他应用程序上。

使用Windows应用程序编程接口(API)的SetWindowWord函数可以创建非模态的对话框,该函数有三个参数。第一参数用来标识窗口,并且间接标识窗口所属的类。第二个函数用来指定要替换的值的字节偏移量。第三个参数用于指定替换的值。在本例中,第一个值为子窗口的句柄。第二值采用常量 GWL_HWNDPARENT,此值用来使调用函数返回原始父窗口的句柄,当窗口被卸载时需要恢复它,以避免一般保护性(GP)错误。

实例程序:
1、在Visual Basic中开始一个新的工程,缺省名为Form1。
2、添加第二个窗体,缺少名为Form2。
3、将如下代码添加到Form1的Form_Load事件中:
Private Sub Form_Load()
Form2.Show
Form1.Caption="父窗口"
Form2.Caption="子窗口"
End Sub
4、Form2中的代码如下:
'通用声明部分
Private Declare Function SetWindowWord Lib "user32" _
(ByVal hwnd As Long,ByVal nIndex As Long, _
ByVal wNewWord As Long)As Long
Const GWL_HWNDPARENT=(-8)
Dim OriginalParenthWnd As Long

'在主窗体Form1的Form_Load事件中加入如下代码,
'以设置Form2为Form1的非模态窗体:
Private Sub Form_Load()
OriginalParenthWnd=SetWindowWord(Me.hwnd, _
GWL_HWNDPARENT,Form1.hwnd)
End Sub

'当Form2卸载(即发生Form_Unload事件)时应恢复。
Private Sub Form_Unload(Cancel As Integer)
Dim ret As Integer
ret=SetWindowWord(Me.hwnd,GWL_HWNDPARENT, _
OriginalParenthWnd)
End
printer 2002-03-31
  • 打赏
  • 举报
回复
哈哈,问题解决了。开始散分。
方案:
GetSystemMetrics
GetWindowPlacement
SetWindowPlacement
SetWindowPos
然后重写字窗体的窗体函数,拦截最大化,最小化等等消息
printer 2002-03-30
  • 打赏
  • 举报
回复
to: tg123(T.G.)
不行,问题解决不了,怎么就没有看见,你看见了么
tg123 2002-03-30
  • 打赏
  • 举报
回复
菜单(一定要用菜单)
file->new
application wizard
有m$的源码
printer 2002-03-30
  • 打赏
  • 举报
回复
大家不要误会啊,这个帖子是没有人应了,把分给朋友多点
printer 2002-03-30
  • 打赏
  • 举报
回复
滚,我有不是不知道,不是那么回事儿,算了,分给你,可是告诉你,不是那么回事儿
ayusay 2002-03-30
  • 打赏
  • 举报
回复
可以实现的,用setwindowpop可以实现,但具体怎么实现我就不知道了。

另外,也可以用ActiveBar来实现
happybeyond 2002-03-30
  • 打赏
  • 举报
回复
up!
printer 2002-03-30
  • 打赏
  • 举报
回复
看来只好自食其力了,翻英文资料去
printer 2002-03-30
  • 打赏
  • 举报
回复
是啊,告诉我啊,你不会是想多要些分吧,那样也可以,新开个帖子你来签到,我不想你随便在那个网站上面拷贝些代码过来,我也能找到,方案,我要的是思路
ferrytang 2002-03-30
  • 打赏
  • 举报
回复
想要知道???
printer 2002-03-30
  • 打赏
  • 举报
回复
没人应??不好解决??
printer 2002-03-30
  • 打赏
  • 举报
回复
我先走开一下,各位帮着提一提.
zyl910 2002-03-30
  • 打赏
  • 举报
回复
关注!

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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