可能我可以在这个问题上得到一些负面的观点,但是,从最近几天开始,我的脑海中真正令人难以置信的是,文本框(或其他此类控件)背后的基本/原始代码是什么。
我的意思是我理解,我们可以继承textbox类并进行更改,我们创建它的对象并使用它。
但想知道该类是如何创建文本框的(允许我们输入文本的设计)(对其他组件的查询相同),它是使用CG(计算机图形)生成它的“C”语言代码编程或任何其他事情。
专家请解决我的好奇心。
由于
答案 0 :(得分:7)
Windows提供了几种用于在屏幕上绘图的基本API。您可以绘制像素,线条,框和更复杂的几何形状。还有用于绘制文本的API。其他API允许您对用户输入做出反应,例如鼠标移动和点击以及键盘输入。
通过这些基本API,您可以通过绘制文本框的外观和对用户输入的反应的确切像素来创建自己的文本框。但是,Windows具有内置的文本框概念。此文本框具有标准外观,还集成了UI概念,如焦点,Tab键顺序,剪贴板和插入符号。但在幕后,Windows使用低级API函数在屏幕上绘图并对用户输入作出反应。
在Windows窗体中创建TextBox时,它实际上会创建并包装标准Windows Edit control。使用GDI绘制此控件。但是,像WPF这样的其他编程模型可能会创建TextBox控件,看起来像普通文本框,但使用WPF提供的自定义实现,并使用DirectX绘制。
答案 1 :(得分:4)
使用http://www.red-gate.com/products/reflector/并亲眼看看......
答案 2 :(得分:3)
以下是我的想法:
TextBox
或任何其他Control
背后的原始代码使用负责绘制这些控件的Windows API
并提供这些控件的Handles
以供日后参考。
Windows一直使用不同的方法来绘制像GDI
,GDI+
和有时DirectX
这样的用户界面。我可能错了,可能还有其他一些我忘记提及的技术。
这些控件使用每个窗口的WinProc
来接收Input Notification
以及其他在单击,键入或调整大小时通知这些控件的回调。