西西河

主题:【原创】新时代新潮流WebOS 【1】 -- 邓侃

共:💬594 🌺1902
全看分页树展 · 主题 跟帖
家园 打屁股12

标题党啊,还是应该乱弹12。

不过这个“鼠标引发的故事”的帖子中问题多了点,俺认为“妨碍”了河友的正确理解,是不是该打楼主的“屁股”?

1.别的OS俺不是太熟悉。Windows操作系统之上可用于C/C++ GUI开发的GUI Toolkit(俺对TOOLKIT这个词质疑,是否应该用FRAMEWORK?),包括但不仅限于MFC(Microsoft Fundation Classes)。比如BORLAND就先后有OWL,VCL。MS自己有MFC和ATL(Active Template Library)。为什么?第一是MFC框架的笨重,第二是MFC不支持多重继承。第二点在“现代”C++开发中特别重要。没有多重继承,许多代码设计模式比较难于实现(这个东西非常的枯燥和“丑陋”,俺不想在这里多费口舌)。但是俺可以100%负责任地说,CHROME在其WINDOWS上的“窗口”部分采用的是ATL的框架 --- 或者说CHROME的“窗口控件类”(CHROME的术语叫VIEW类)继承自ATL的CWindow。

2.关键的问题LZ在其叙述点击过程中的不“全面”对河友的“误导”。XDJM们打过枪没有?没有打过枪的请先学习射击基本知识。打枪扣动扳机前瞄准不?如果你不瞄准的话,剩下的东西你也别看了。相比扣动扳机,瞄准是个“漫长”的过程(成年人可以类比ML中的“活塞运动”与“高潮”。);扣动扳机仅仅是利用了瞄准的结果 --- 瞄准是为了射击(扣动扳机),射击必须依赖瞄准。。。。。。fire at will

回到楼主的帖子来。楼主的叙述把WIBKIT描述的其笨无比,按下鼠标键,然后。。。。。。WIBKIT是如此动作的。慢慢慢!!!鼠标的光标是从火星上掉下来然后突然跑到render tree的某个NODE上吗?在on_mouse_click这个事件前,有无数个on_mouse_over和on_mouse_out事件,而且on_mouse_over, on_mouse_out和on_mouse_click统统都是WEBKIT(RENDER ENGINE)的派生事件。难道无数个on_mouse_over和on_mouse_out事件,WEBKIT都无动于衷吗?无动于衷这个提法本身就有大问题。为什么?鼠标的运动是一个“连续”的过程,一个新的鼠标位置事件(由操作系统提供)被WEBKIT可能解释为on_mouse_over, on_mouse_out,on_mouse_click。。。WEBKIT(RENDER ENGINE)解释的过程就是与某个NODE的“绑定”(over)与“松绑定”(out)过程,而且这个结果可以重复利用 --- 新的鼠标位置信息,检查上一个“绑定”的NODE,如果位置还在这个NODE的范围,继续发on_mouse_over,返回如果不在这个NODE的范围先给先给node发on_mouse_out,然后“遍历”NODE TREE,看看是否给给另外一个NODE发on_mouse_over 。。。。。。,返回。在某个时间尺度上,on_mouse_click之前必定是on_mouse_over --- 正如扣动扳机的时候枪口停止运动(别和俺抬杠自动武器的连发,鼠标就是一个古老的土枪,扣一下打一发)。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河