注册 登录
编程论坛 VFP论坛

主表单关闭了titlebar,当windowstate=1时,如何最大化表单

radiofan 发布于 2021-02-09 10:11, 1311 次点击
主表单关闭了titlebar,当windowstate=1时,windows任务栏中并未显示该程序(titlebar=on时,任务栏中有),导致无法恢复(最大化),如何最小化到任务栏?谢谢
6 回复
#2
吹水佬2021-02-09 20:29
在按钮事件中执行windowstate=1就没问题
还有无标题窗口最大化(windowstate=2)也会挡住任务栏
无计的话就用 API SystemParametersInfo() 的 SPI_GETWORKAREA 获取显示器工作区大小,再去调整窗口状态
#3
radiofan2021-02-09 21:10
以下是引用吹水佬在2021-2-9 20:29:17的发言:

在按钮事件中执行windowstate=1就没问题
还有无标题窗口最大化(windowstate=2)也会挡住任务栏
无计的话就用 API SystemParametersInfo() 的 SPI_GETWORKAREA 获取显示器工作区大小,再去调整窗口状态


暂时就先titlebar = on吧,有空时再搞。多谢!
#4
吹水佬2021-02-10 09:16
看看这样能否满足要求,win10 + VFP9 测试过,编译成EXE运行
程序代码:
DECLARE LONG PostMessage IN User32 LONG, LONG, LONG, LONG
of = CREATEOBJECT('Form1')
of.Show
READ EVENTS
RETURN

DEFINE CLASS form1 AS form
    Desktop = .T.
    ShowWindow = 2
    TitleBar = 0

    ADD OBJECT cmd as commandbutton WITH left=10,top=10,height=22,caption="关闭"
   
    PROCEDURE Activate
        PostMessage(this.hWnd, 0x0112, 0xF020, 0)
    ENDPROC
              
    PROCEDURE Destroy
        CLEAR EVENTS
    ENDPROC
   
    PROCEDURE cmd.Click
        thisform.Release
    ENDPROC
ENDDEFINE

#5
radiofan2021-02-11 20:58
以下是引用吹水佬在2021-2-10 09:16:20的发言:

看看这样能否满足要求,win10 + VFP9 测试过,编译成EXE运行
DECLARE LONG PostMessage IN User32 LONG, LONG, LONG, LONG
of = CREATEOBJECT('Form1')
of.Show
READ EVENTS
RETURN

DEFINE CLASS form1 AS form
    Desktop = .T.
    ShowWindow = 2
    TitleBar = 0

    ADD OBJECT cmd as commandbutton WITH left=10,top=10,height=22,caption="关闭"
   
    PROCEDURE Activate
        PostMessage(this.hWnd, 0x0112, 0xF020, 0)
    ENDPROC
              
    PROCEDURE Destroy
        CLEAR EVENTS
    ENDPROC
   
    PROCEDURE cmd.Click
        thisform.Release
    ENDPROC
ENDDEFINE


多谢指点!
只有本站会员才能查看附件,请 登录

这个是运行程序的表单title,现在是titlebar=on,点击最小化按钮后,会在windows任务栏上显示程序图标,点击程序图标会恢复正常显示,但是,当我设置表单titlebar=off后,代码运行windowstate=1最小化后,程序图标并未在任务栏上存在,因此无法恢复,必须在任务管理器中恢复。主表单上dock了工具栏,不知是否这个原因?

[此贴子已经被作者于2021-2-11 21:07编辑过]

#6
吹水佬2021-02-12 00:39
回复 5楼 radiofan
没有工具栏情况也一样。
上面的测试代码是在无标题窗口模拟点击“最小化”
#7
radiofan2021-02-12 15:55
以下是引用吹水佬在2021-2-12 00:39:05的发言:

没有工具栏情况也一样。
上面的测试代码是在无标题窗口模拟点击“最小化”


好的,我试试。祝新年快乐!
1