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
FMX+Win32,窗口无法保持原样,应该是个bug的更多相关文章
- 第一个手写Win32窗口程序
第一个手写Win32窗口程序 一 Windows编程基础 1 Win32应用程序的基本类型 1.1 控制台程序 不需要完善的Windows窗口,可以使用DOS窗口 的方式显示. 1.2 Win32窗口 ...
- WIN32窗口程序
// Win32.cpp : 定义应用程序的入口点. // #include "stdafx.h" #include "Win32.h" void TRACE( ...
- Win32窗口消息机制 x Android消息机制 x 异步执行
如果你开发过Win32窗口程序,那么当你看到android代码到处都有的mHandler.sendEmptyMessage和 private final Handler mHandler = new ...
- 如何在Console下面生成一个WIN32窗口
一个小挑战? VS2017里面,新建一个控制台工程,输入名字(你不需要也成,有默认的),得到一个控制台工程. 好了,生成的代码,如下: // Win32InConsole.cpp : This fil ...
- Win32窗口框架
Win32窗口框架 WindowClass 单例,负责窗口初始化注册和取消注册: 负责提供静态方法: 放在Window类内部,方便初始化时,wndProc(HandleMsgSetup)的赋值: cl ...
- Win32 - 窗口
Win32 - 窗口 目录 Win32 - 窗口 前言 流程图 创建项目 VS MinGW Win32API字符串 Unicode 和 ANSI 函数 TCHAR WinMain:Win32 Appl ...
- 解决WIN32窗口不响应WM_LBUTTONDBLCLK消息
原文链接: http://www.cnblogs.com/xukaixiang/archive/2012/05/27/2520059.html 今天在做一个软件时,发现win32创建的窗体不能响应WM ...
- win32窗口映射(部分)
先理解一下“窗口”与“视区”的概念.“窗口”是逻辑坐标下的矩形区域,“视区”是设备坐标系下的区域.根据“窗口”和“视区”的大小可以确定x方向和y方向的比例因子. 例子如下: VOID OnPaint( ...
- win32窗口程序分析
1.分析消息的附加参数 例如:为了查看程序处理了哪些消息 在回调函数中调用输出函数,在控制台中输出消息的值:
随机推荐
- springboot启动tomcat报错java.lang.NoClassDefFoundError: javax/el/ELManager仅记录
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'o ...
- HTML_ul无序列表
本文来源于:http://blog.csdn.net/svitter 嵌套无序列表应用 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tra ...
- Lucene分词报错:”TokenStream contract violation: close() call missing”
Lucene使用IKAnalyzer分词时报错:”TokenStream contract violation: close() call missing” 解决办法是每次完成后必须调用关闭方法. ...
- [Linux] ssh秘钥对免密码登陆
准备两台linux服务器 a和b , 在a上使用ssh命令登陆b服务器 , 并且不用 输入密码 1.在a服务器上,比如是root用户 ,进去/root/.ssh目录 ,没有就创建, 就是进入家目录的. ...
- Exclusive access control to a processing resource
A data processing system is provided with multiple processors that share a main memory. Semaphore va ...
- xcode代码统计行
输入端子 cd 通路 进入项目根文件夹 输入以下的命令.显示总行数(不包括空行.包括凝视和应用第三方类) find . -name "*.m" -or -name "*. ...
- 用 theano 求解 Logistic Regression (SGD 优化算法)
1. model 这里待求解的是一个 binary logistic regression,它是一个分类模型,参数是权值矩阵 W 和偏置向量 b.该模型所要估计的是概率 P(Y=1|x),简记为 p, ...
- windows下编译qt的mysql驱动
windows下编译qt的mysql驱动cd %QTDIR%\src\plugins\sqldrivers\mysqlqmake –o Makefile INCLUDEPATH+="C:\M ...
- crawler_正则表达式零宽断言
在使用正则表达式时,有时我们需要捕获的内容前后必须是特定内容,但又不捕获这些特定内容的时候,零宽断言就起到作用了. (?=exp):零宽度正预测先行断言,它断言自身出现的位置的后面能匹配表达式exp. ...
- 使用 NodeJS + Express从GET/POST Request 取值
过去无论哪一种网站应用程式的开发语言,初学者教学中第一次会提到的起手式,八九不离十就是GET/POST Request 的取值.但是,在Node.js + Express 的世界中,仿佛人人是高手,天 ...