zoukankan      html  css  js  c++  java
  • FMX+Win32,窗口无法保持原样,应该是个bug

    从FMX发布开始,一直有这问题,大家看看是不是一个bug,应该如何修复?

    新建一个FMX Application,运行后,点击窗口标题栏右上角的“最大化”按钮,此时窗口是最大化的。
    在windows最底端的任务栏中,点击该程序,窗口就会还原回原来的大小。按理应该是还保持最大化才对。
    另外,在任务栏中,点击该程序,窗口不会最小化。


    改了下代码,总算是解决了。
    FMX.Platform.Win.pas

    procedure TPlatformWin.Activate(const AForm: TCommonCustomForm);
    var
    Wnd: HWND;
    begin
    exit; // 解决在Windows任务栏中,点击窗口图标时,无法缩小、放大
    Wnd := FormToHWND(AForm);

    2315行,WM_WINDOWPOSCHANGING消息前,加上
    WM_SHOWWINDOW:
    begin
    if (wParam = SW_SHOWNORMAL) and (lParam = SW_MAXIMIZE) then
    begin
    if LForm.WindowState = TWindowState.wsMaximized then
    begin
    Winapi.Windows.ShowWindow(hWnd, SW_SHOWMAXIMIZED);
    exit;
    end;
    end;
    Result := DefWindowProc(hwnd, uMsg, wParam, lParam);
    end;
    主要是解决当窗口是最大化状态时,缩小到Windows任务栏,再restore窗口时,窗口自动由最大化变成了Normal。这个地方解决的不是很科学,这种处理方法可能也不是很正确。测试了达到我的要求了。

    http://bbs.2ccc.com/topic.asp?topicid=517692

  • 相关阅读:
    http://caibaojian.com/jquery/ JQuery在线查询手册
    验证码
    显式提交/隐式提交 //ajax方式的隐式提交
    事物 银行转账业务
    模板 Template
    登录页面跳转与错误提示信息
    连接池 八种基本类型
    文件,文件夹的基本操作--------数据流的传输
    vim编辑器
    Linux中创建和使用静态库&动态库
  • 原文地址:https://www.cnblogs.com/findumars/p/6278838.html
Copyright © 2011-2022 走看看