我设置表单属性windowstate=2,showwindow=2.但实际运行中表单只显示一部分,并没最大化。请教高手,要实现表单置为最大,编译后运行充满整屏,但不覆盖windows任务栏,就怎样做?
------解决方案--------------------------------------------------------
参照这个示例
http://bbs.bccn.net/thread-362146-1-1
------解决方案--------------------------------------------------------
干脆注释掉 windowstate=2 这句,自己在 Init 中调整窗口大小至满屏,参考下列代码试试:
窗口类定义中添加下面两个方法:
- C# code
*-- vfp9 代码 Procedure Init Local nAdj_w, nAdj_h nAdj_w = 0 nAdj_h = 0 Thisform.GetTaskBarSize(@ nAdj_w, @ nAdj_h) Thisform.Move(0, 0, ; Sysmetric(1) - 2*Sysmetric(3) - nAdj_w, ; Sysmetric(2) - 2*Sysmetric(4) - Sysmetric(9) - nAdj_h) Endproc Procedure GetTaskBarSize Lparameters tnAdj_w, tnAdj_h Local cBuff, nPos Declare Long SHAppBarMessage In shell32 Long, String @ cBuff = Replicate(Chr(0), 32) cBuff = BinToC(4+Len(cBuff), 'rs') + cBuff SHAppBarMessage(5, @ cBuff) nPos = CToBin(Substr(cBuff,13,4), 'rs') Do Case Case Inlist(nPos, 1, 3) tnAdj_h = CToBin(Substr(cBuff,29,4),'rs') - CToBin(Substr(cBuff,21,4),'rs') Case Inlist(nPos, 0, 2) tnAdj_w = CToBin(Substr(cBuff,25,4),'rs') - CToBin(Substr(cBuff,17,4),'rs') Otherwise Endcase Endproc