CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  控件与界面

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

楼主printer(打印机)2002-03-30 17:40:57 在 PowerBuilder / 控件与界面 提问

问题描述:  
  希望创建一个多文档应用,按照VB的应用程序向导一步步的建立了出来,很不错,但是我希望在界面上扩充功能,使其能够达到这样的效果:Docking   Window   ,或许大家见多了Visual   C++   的类管理器,Visual   Basic   的控件箱,资源管理器,Inernet   Explorer   的搜索、历史、多媒体按钮按下后的效果,甚至Explorer都有这样的功能,但是不知道该怎么办,希望大家献计献策! 问题点数:100、回复次数:20Top

1 楼zyl910(编程的乐趣在于编程控制硬件,与用图形学实现绚丽效果)回复于 2002-03-30 17:51:13 得分 0

关注!Top

2 楼printer(打印机)回复于 2002-03-30 17:57:32 得分 0

我先走开一下,各位帮着提一提.Top

3 楼printer(打印机)回复于 2002-03-30 19:25:04 得分 0

没人应??不好解决??Top

4 楼ferrytang(欢迎你)回复于 2002-03-30 19:30:53 得分 0

想要知道???Top

5 楼printer(打印机)回复于 2002-03-30 19:37:39 得分 0

是啊,告诉我啊,你不会是想多要些分吧,那样也可以,新开个帖子你来签到,我不想你随便在那个网站上面拷贝些代码过来,我也能找到,方案,我要的是思路Top

6 楼printer(打印机)回复于 2002-03-30 19:51:00 得分 0

看来只好自食其力了,翻英文资料去Top

7 楼happybeyond(衣带渐宽怎不悔,VB消得人憔悴~)回复于 2002-03-30 19:52:42 得分 10

up!Top

8 楼ayusay(阿于)回复于 2002-03-30 19:58:10 得分 0

可以实现的,用setwindowpop可以实现,但具体怎么实现我就不知道了。  
   
  另外,也可以用ActiveBar来实现Top

9 楼printer(打印机)回复于 2002-03-30 19:59:42 得分 0

滚,我有不是不知道,不是那么回事儿,算了,分给你,可是告诉你,不是那么回事儿Top

10 楼printer(打印机)回复于 2002-03-30 20:01:28 得分 0

大家不要误会啊,这个帖子是没有人应了,把分给朋友多点Top

11 楼tg123(T.G.)回复于 2002-03-30 20:02:20 得分 5

菜单(一定要用菜单)  
  file->new  
  application   wizard  
  有m$的源码Top

12 楼printer(打印机)回复于 2002-03-30 22:51:26 得分 0

to:   tg123(T.G.)  
  不行,问题解决不了,怎么就没有看见,你看见了么Top

13 楼ayusay(阿于)回复于 2002-03-31 09:42:55 得分 65

非模态对话框:  
  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)  
          EndTop

14 楼printer(打印机)回复于 2002-03-31 11:10:24 得分 0

TO:   ayusay(阿于)  
  ===================  
  你刚刚的所言,我可以使用这样的语句就可以了,而且,比你的更完善  
  form1的load事件中  
  form2.show   ,meTop

15 楼printer(打印机)回复于 2002-03-31 11:15:36 得分 0

但是,这不是问题的关键,并没有解决我的问题,事实上,你连最简单的浮动窗口都没有解决,更不用说当这个窗口移动到Fome1窗体边缘的时候自动和Form1的整合,打开Visual   Basic   尝试拖动一下属性页,工具箱,工程管理器,本地窗口,立即窗口,你就会知道我想要的是什么,或者单击IE的收藏夹按钮,就是一个更简单的例子。Top

16 楼ferrytang(欢迎你)回复于 2002-03-31 12:31:59 得分 0

我可以告诉你我不是整天研究界面如何实现的。所以我不敢保证这些代码的来源  
  我可以想象你需要什么样得效果!我没把握给你最理想的效果,如果你觉得需要的  
  那么留下你的mail。  
  然后。。。  
  Top

17 楼zyl910(编程的乐趣在于编程控制硬件,与用图形学实现绚丽效果)回复于 2002-03-31 12:36:26 得分 10

To   ferrytang(四眼丑田鸡):给我一份!zyl910@sina.comTop

18 楼printer(打印机)回复于 2002-03-31 12:38:26 得分 0

也好,界面不是主要的,可是好的界面能给用户以自由的方式操作,做程序作软件不是时时刻刻心里要想着用户么?  
  我的Mail:   darkblue@21cn.comTop

19 楼ferrytang(欢迎你)回复于 2002-03-31 12:54:02 得分 10

可惜没多少人想正确了!  
  有时这种界面不是和小型开发使用,光界面就有的你做了!Top

20 楼printer(打印机)回复于 2002-03-31 15:17:08 得分 0

哈哈,问题解决了。开始散分。  
  方案:  
  GetSystemMetrics  
  GetWindowPlacement  
  SetWindowPlacement  
  SetWindowPos  
  然后重写字窗体的窗体函数,拦截最大化,最小化等等消息Top

相关问题

  • 几个多文档界面设计中的小问题, 不过还请各位达人帮忙啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • 讨论一下Java应用程序的界面设计
  • 关于vfp应用的界面设计问题
  • 高分求教:关于应用程序的界面设计问题!
  • 请教--基于对画框应用程序的一个界面设计方案
  • 界面设计
  • 哪位有关于 软件界面设计 方面的文档?提供个连接也可以,谢谢
  • java 界面设计
  • 请问,哪儿有关于应用软件界面设计的方案的,图片之类的啦!
  • 基于MSSQL的应用程序设计可以看成:存储过程和触发器+界面设计吗?

关键词

  • 函数
  • 界面
  • 代码
  • 应用程序
  • 效果
  • 解决
  • 用户
  • 系统
  • 模态
  • 对话框

得分解答快速导航

  • 帖主:printer
  • happybeyond
  • tg123
  • ayusay
  • zyl910
  • ferrytang

相关链接

  • PowerBuilder类图书
  • PowerBuilder类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo