WM_SIZE和WM_MOVE的函数体内容为什么不一样?

搞不懂,要想一想~

procedure TWinControl.WMSize(var Message: TWMSize);
begin
  UpdateBounds; // 类函数
  inherited;
  Realign; // 类函数
  if not (csLoading in ComponentState) then Resize; // 类函数,简单调用程序员事件
end;

procedure TWinControl.WMMove(var Message: TWMMove);
begin
  inherited;
  UpdateBounds;
end;
时间: 2024-10-10 09:50:54

WM_SIZE和WM_MOVE的函数体内容为什么不一样?的相关文章

window窗口详解

窗口 在图形化的基于win32的应用程序,窗口是屏幕的矩形区域,应用程序显示输出并接收来自用户的输入,因此,一个图形化基于win32的应用程序的首要任务之一就是创建一个窗口. 窗口与其它窗口共享屏幕,[本事]包括来自其它应用程序的窗口,每次只有一个窗口可以接收来自用户的输入,用户可以使用鼠标.键盘或其它输入设备与此窗口以及拥有该窗口的应用程序进行交互. 关于窗口 这个概述描述了应用程序用来创建和使用窗口的编程单元:管理窗口之间的关系:以及大小.移动.和显示窗口:概述包括以下主题: 桌面窗口  

TWinControl.SetBounds与TWinControl.UpdateBounds赏析(定义和调用)

先看它们的函数内容: procedure TControl.SetBounds(ALeft, ATop, AWidth, AHeight: Integer); begin // 虚函数,TWinControl有覆盖函数 if CheckNewSize(AWidth, AHeight) and // TControl的类函数,重新计算长宽 ((ALeft <> FLeft) or (ATop <> FTop) or (AWidth <> FWidth) or (AHeig

windows消息机制详解(转载)

消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了.例如,单击鼠标.改变窗口尺寸.按下键盘上的一个键都会使Windows发送一个消息给应用程序.消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息.例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标.这个记录类型叫做TMsg, 它在Windows单元中是这样声明的:typeTMsg = packed recordhwnd: HWND; / /窗口句柄message: UINT; / /

知识点:类

类的构造器 __init__ 类的构造器为__init__(双下划线), 里面传递成员变量.使用self参数, 并把参数(argument)传递至self.val(泛指)的成员变量中. 成员函数, 可以使用self.val, 进行操作. 构造器__init__不能返回None以外的任何对象 1 class Person: 2 def __init__(self, name): #self是每个方法的默认参数,不需要设定,所有输入参数都是从第二个开始设置 3 self.name = name 4

hdu--3275--线段树&lt;again&gt;

又加强了 对线段树 延迟标记的理解~~ 题意很简单 给你一串数字01组成. 每次必须操作K个数 将其翻转 即0->1   1->0 就相当 对于一段区间 [ L , L+K-1 ] 的0和1的数量 进行swap操作 首先 解这题 一点必须想到 求最少操作次数 肯定是从最左边开始. 那么我每次 query(find)操作 查找到最左边的0的位置 如果不存在就返回-1 表示 全是1了 然后对这个[ pos , pos+k-1 ]进行翻转操作 这边有个判断 就是如果 pos+k-1 > n的话

JS函数的词法分析和执行过程

调用JS函数包括两部分在执行:1.词法分析 2.执行语句      例1:*/           function test(x,y){                  function x(){                     alert(x);                }                x();                alert(x);          }          test(100);    词法分析:    1.函数执行时候,生成Act

Python学习之旅—Day07(生成器与迭代器)

前言 本篇博客主要专注于解决函数中的一个重要知识点--生成器与迭代器.不管是面试还是工作,生成器与迭代器在实际工作中的运用可以说是非常多,从我们第一天开始学习for循环来遍历字典,列表等数据类型时,我们就已经和生成器,迭代器打交道了!本篇博客从最基础的基本概念,例如容器,可迭代对象,生成器,迭代器的概念,到for循环是怎么工作的娓娓道来.希望本篇博客能够帮助大家切实掌握生成器与迭代器的使用与底层原理. 一.容器 容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in

UCOS2系统内核讲述(五)_初始化TCB详情

Ⅰ.写在前面 学习本文之前可以参看我前面的文章: UCOS2系统内核讲述(四)_创建任务 上一篇文章讲述了关于函数“OSTaskCreateExt”创建任务函数体里面重要一些的内容,本文接着上一张讲述关于“OSTaskCreateExt”函数体里面调用的一个函数“OS_TCBInit”初始化任务控制块,“OS_TCBInit”也是与系统内核紧密相关的一个函数. 关于本文的更多详情请往下看. Ⅱ.OS_TCBInit参数详情 在学习OS_TCBInit之前要明确一下,“OS_TCBInit”和“O

scala学习

学习资料一,做的比较炫酷的文档,看着很舒服 http://zh.scala-tour.com/#/funtional-contents 下面是一个为java程序员编写的scala入门教程,内容不多但是可以用来快速了解scala吧 原帖地址:http://dataunion.org/14967.html,这篇文章是英文原稿的翻译,google上还有中英文对照稿,有兴趣的也可以看下: 本文是<A Scala Tutorial for Java programmers>英文的翻译,英文版地址A Sc