回 帖 发 新 帖 刷新版面

主题:如何让窗口启动时的位置依次叠放?

在我的程序中,用户能够随意打开各个窗口(每个窗口对应一个应用模块)。

问题是:

我想让窗口启动时的位置,能够依次叠放,如何实现?

回复列表 (共7个回复)

沙发

全是VFP的窗口?还是还有windows的窗口?
如果是VFP的窗口,就可以直接定义它的位置,大小,前后
如果是WINDows窗口,通过API,也可以定义它的位置,大小,前后

板凳

全是VFP窗口。用户打开的先后次序是随机的,我想让窗口依次叠放。

3 楼

全是VFP窗口,应该很好操作啊,我不知道你所谓的叠放, 是怎么放

4 楼

我有很多窗口,任用户调用。我想它们启动时的LEFT和TOP属性能依次自动向下。
如:
    第一个被子打开的窗口:left=0,top=0
    第二个              :left=20,top=20
    第三个              :left=40,top=40
    ......
    根据窗口大小,第某个窗口:left=0,top=0

5 楼

楼主是想要下面截图的效果吗?
[img]http://www.enhor.com/down_data/VFP窗口测试.gif[/img]

6 楼

哎!

7 楼

*上面的效果是由下面的程序运行演示的.供您参考

SET TALK OFF
SET SAFETY OFF
SET DELETED OFF
SET CENTURY ON
SET DATE TO ANSI

DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER HWND,STRING,STRING lpszFile,STRING,STRING,INTEGER

DECLARE INTEGER CreateMutex IN kernel32.DLL INTEGER,INTEGER,String 
DECLARE INTEGER GetLastError IN kernel32.DLL
DECLARE INTEGER CloseHandle IN kernel32.DLL
handle=CreateMutex(0,0,"送电线路工程施工管理系统")
IF handle=0 
   _screen.windowstate=2
   MESSAGEBOX("创建互斥体失败!",0,"信息提示!") 
   RETURN .f.
ELSE 
   IF GetLastError()=183
      _screen.windowstate=2
      =MESSAGEBOX("程序不能重复同时启动!",48," 信息提示!")
      CLOSE all 
      Clear dlls 
     QUIT 
   ENDIF
ENDIF

_Screen.Show

PUBLIC xtPth,xtDm,xtCapt
          xtPth = left(sys(16,1),rat("\",sys(16,1)))
    CD &xtPth
    xtDm = "0000"    &&用户调用不同项目时,其值会被更改。
    xtCapt = "送电线路工程施工管理系统"
    _screen.Caption=xtCapt+"        当前工程项目:  ["+xtDm+"]"   && 随着更改
    _screen.Icon = "sd_ico.ico"
    _screen.Height=600
    _screen.Width=900
    _Screen.Show
POP MENU _msysmenu


M_hs=SROWS()
M_ls=SCOLS()
DEFINE WINDOWS W_win1 AT 0,0 SIZE M_hs-3,M_ls-2 IN SCREEN SYSTEM CLOSE FLOAT GROW ZOOM TITLE "■ 送电线路工程施工管理系统 窗口1" 
DEFINE WINDOWS W_win2 AT 2,3 SIZE M_hs-5,M_ls-5 IN SCREEN SYSTEM CLOSE FLOAT GROW ZOOM TITLE "■ 送电线路工程施工管理系统 窗口2"
DEFINE WINDOWS W_win3 AT 4,6 SIZE M_hs-7,M_ls-8 IN SCREEN SYSTEM CLOSE FLOAT GROW ZOOM  TITLE "■ 送电线路工程施工管理系统 窗口3" 
DEFINE WINDOWS W_winx AT 6,9 SIZE M_hs-9,M_ls-11 IN SCREEN SYSTEM CLOSE FLOAT GROW ZOOM  TITLE "■ 送电线路工程施工管理系统 窗口x......" 

ACTI WINDOW W_win1
ACTI WINDOW W_win2
ACTI WINDOW W_win3
ACTI WINDOW W_winx

WAIT "   您定义(也可用程序动态定义)的子窗 W_winx 是可以任意修改(属性)隐含、显示和删除的 (点鼠标或按任意键退出本测试)"

   M_test=MESSAGEBOX('是否退出程序?',292,'■送电线路工程施工管理系统')
   IF M_test=6
      SET PATH TO
      CLEAR ALL
      CLOSE ALL
      *RETURN
      QUIT
   ENDIF
RETURN

我来回复

您尚未登录,请登录后再回复。点此登录或注册