F
flier
Unregistered / Unconfirmed
GUEST, unregistred user!
我的要求是在一个MDI CHILD窗口中使主窗口全屏化<br>目前的思路是将MainMenu, ControlBar, StatusBar<br>不显示,且直接设置窗口使之不显示标题栏<br>但这样会在全屏化后,在窗口底部出现一块不受控制的<br>矩形,我调试代码时发现,这个情况是在把menu设置为<br>nil后出现的,看了一下VCL源码也没有什么头绪,因为<br>VCL中直接调用一个API函数来重绘菜单…… <br>试了半天也没什么结果,干脆贴上来,哪位大侠指教一二<br><br>BTW:MDI CHILD的窗口类型设置为none时可以实现全屏,<br>但在设置回MDICHILD时出现错误,且这样设置时,再调用MDI<br>主窗口中的函数出现问题,不知是怎么回事?<br><br>我的全屏化代码片段如下<br>procedure TfrmPage.ZoomToFullScreen;<br>var<br> WindowStyle: Integer;<br>begin<br> with frmMain do<br> begin<br> FullScreen := not FullScreen;<br><br> WindowStyle := GetWindowLong(frmMain.Handle, GWL_STYLE);<br> if FullScreen then<br> WindowStyle := WindowStyle and (not WS_CAPTION)<br> else<br> WindowStyle := WindowStyle or WS_CAPTION;<br> SetWindowLong(frmMain.Handle, GWL_STYLE, WindowStyle);<br><br> if FullScreen then<br> begin<br> Self.WindowState := wsMaximized;<br> WindowState := wsMaximized;<br> end;<br><br> if FullScreen then<br> begin<br> Menu := nil;<br> barControl.Visible := False;<br> barStatus.Visible := False;<br> end<br> else<br> begin<br> Menu := mnuMain;<br> barControl.Visible := mnuToolsToolBar.Checked;<br> barStatus.Visible := mnuToolsStatusBar.Checked;<br> end;<br> end;<br>end;