TEdit类的paint部分在哪里实现的?!高手请进!!

qino 2001-10-13 11:04:52
本人想做一个编辑控件,但格式、排版方式与tedit类完全不同,从左到右竖写
,跟踪tedit类的delphi源码不知它的paint方法在哪里实现的(也就是文字的输出)?Twincontrol有对WM-paint消息
的处理方法可与edit无关,哪位高手能告诉我:edit控件中输入文字时的delphi处理过程
或原理比如:键盘输入A时-》edit捕获keypress事件-》Twincontrol用
procedure TWinControl.KeyPress(var Key: Char);
begin
if Assigned(FOnKeyPress) then FOnKeyPress(Self, Key);
end;
过程传递消息-》最终对edit的paint在哪里呢?
...全文
123 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qino 2001-10-17
  • 打赏
  • 举报
回复
写错了是Tcustomcontrol
qino 2001-10-14
  • 打赏
  • 举报
回复
agui的比较可行,是否可以从Twincustomcontrol继承!?
soft123 2001-10-13
  • 打赏
  • 举报
回复
继承一个新类,加入wm_panit消息,就可以处理panit事件了,同时要得到对象的dc
xzgyb 2001-10-13
  • 打赏
  • 举报
回复
TEdit时标准WINDOWS控件,应该是它自己的窗口过程画的,即使delphi接管了它的窗口过程,但对于绘制外观这类应该是调用它自己的窗口函数,我想是看不到吧
我没看源码,个人观点
telstar 2001-10-13
  • 打赏
  • 举报
回复
可不可以从TCANVAS继承,有按键时自己重画
guipei 2001-10-13
  • 打赏
  • 举报
回复
gz
qkl 2001-10-13
  • 打赏
  • 举报
回复
TCustomEdit 和 TEdit 类都没有实现响应 WM_paint 消息。所以 WM_paint 消息是传递给了缺省的 windows 窗口过程,也就是实现标准的 Edit 风格。
你可以增加代码来响应 WM_paint 消息,实现你需要的界面风格。
光明山人 2001-10-13
  • 打赏
  • 举报
回复
从TCustomEdit派生,处理WM_PAINT消息;
或者从TCustomControl派生,重载CreateParams和Paint方法。在CreateParams中要执行这一句:
CreateSubClass(Params, 'EDIT');

haodaniu 2001-10-13
  • 打赏
  • 举报
回复
直接从TGraphic类继承,然后自己通过代码绘制。
qino 2001-10-13
  • 打赏
  • 举报
回复
gz

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧