HTMLayout理解1

HTMLayout的窗口创建过程

1. 注册自己的窗口类型,包括wndproc处理函数

2. 创建窗口,并制定刚才注册的窗口类型和当前窗口进程句柄

3. 将自己的window类指针传给窗口的userdataSetWindowLongPtr(非必须)

4. api HTMLayoutSetCallback 设定消息回调

5. 锁定htm资源,并用HTMLayoutLoadHtml载入htm资源

6. HTMLayoutWindowAttachEventHandler来指定一个继承自event_handler的结构体

7. 添加behavior的过程,有些部分是在运行初期执行的,在1~6之前

      首先自己定义的behavior继承自struct behavior。并且在定义之外,创建一个自定义的behavior的实例,通过构造函数将这  

      个behavior添加到全局的behavior列表里面去。

      然后再loadhtml的某一个元素的时候,HTMLayoutNotifyHandler里面受到   

      HLN_ATTACH_BEHAVIOR的消息,然后调用默认的htmlayout::behavior::handle来绑定之前已经添加进去的行为。

 

其他

1.默认的htm文件要作为资源加到工程里面去。

2.虽然执行了HTMLayoutLoadHtml但是还是空白一片原因是:

   WndProc里面没有追加消息转发函数HTMLayoutProcND

3.htmlayout里面有对行为的自己的实现,比如说对hyperlink的。因此当它为默认的behavior的时候,即使你没有登陆,

   提供的dll也能提供一部分机能。如果将官方提供的hyperlink的源码拷贝进工程之后,可以对它的机能进行自定义,

   包括在notify函数中进行自己的处理。

 

其他没关系的

1.在C++中,classstruct是同样的东西

区别在于class中的成员函数和变量如果不指定访问类型的话,缺省是private的,而struct中的成员函数和变量如果不知定访问类型,缺省是publicclass可以继承struct。

2.1>LINK : fatal error LNK1104: ファイル'D:/visual.obj' を開くことができません。

是因为在指定追加lib的时候,所含的路径里面包含了空格。加上引号即可。

3.想查看具体link哪些lib的话,可以在工程link设定里面添加/VERBOSE:LIB

你可能感兴趣的:(Windows编程,behavior,hyperlink,struct,class,dll,c)