Notepad++源码学习心得(不断更新中。。。)
2012-11-08 14:30
423 查看
Notepad++源码学习心得(不断更新中。。。)
1、
功能点: 获取父窗口的背景色
相关函数: static COLORREF getParentDlgBkColor(HWND hWnd)
基本思想:
给父窗口发送一条WM_ERASEBKGND消息,
参数是一个与父窗口大小相同的位图;父窗口处理这个消息时候,
将本身的或用指定的画刷将与自己背景色相同的颜色画在传进来的那张位图上
然后在取得这张位图0,0点的颜色即可确定父窗口的背景颜色
心得:
这个函数的处理比较简单,利用消息进行各个窗体间的通信。但是却有不好的感觉,
因为这个函数的动机是用来获取父窗口背景色的,但是发送的却是ERASEBKGND这样的消息
虽然可以实现但觉得是投机取巧。个人觉得比较好的做法是自定义一个新的消息,
在收到这个消息的时候,父窗口再将背景色画在指定的位图上,这样比较好。
2、
功能点:
创建一个通用的超链接控件
相关函数:
URLCtrl类
基本思想:
首先URLCtrl这个类结成与Window类,其次实现一个超链接控件基本功能
1)没有单击时,显示A颜色,单击之后显示B颜色
2)单击时执行相应的跳转
3)超链接文字透明于父窗体,及文字的背景色于父窗体相同
其实实现前两条比较容易,关键是第三条,因为子窗体无法直接取得父窗体的背景色,具体实现见上。
由于URLCtrl继承了window类,所以如果想自己处理各个消息,可以修改原来的消息处理函数,
这可以由SetWindowLongPtr实现。主要处理的消息有:WM_PAINT、WM_MOUSEMOVE、
WM_LBUTTONDOWN、WM_LBUTTONUP
相关文章推荐
- Notepad++源码学习心得(不断更新中。。。)
- android 源码 学习之notepad(不断更新ing)
- 任务驱动,Winform VS WEB对比式学习.NET开发系列第一篇------身份证解析(不断更新的WEB版本及Winform版本源码)
- C++语言学习的一点心得(蜻蜓点水,后面会不断更新学习体会)
- 任务驱动,Winform VS WEB对比式学习.NET开发系列第一篇------身份证解析(不断更新的WEB版本及Winform版本源码)
- STM32 485通信 自我学习总结 控制380V变频器去控制380V电机 不断更新中
- ORACLE学习问题记录(不断更新)
- 嵌入式学习博客链接(不断更新)
- MySQL学习记录(不断更新)
- 英语学习笔记---好句摘录~~不断更新~
- c++的一些学习心得(不断补充中)
- Spring IOC学习心得之源码级分析ContextLoaderListener的作用(IOC容器初始化入口)
- Surf算法学习心得(二)——源码简析
- mysql学习经验与总结不断更新中
- MS WORD 和 文本编辑器(Notepad) 快捷键 (不断更新中)
- DNN学习资源收藏(不断更新)
- [Python]学习过程中的那些问题--不断更新
- linux指令学习小笔记,不断更新。
- 分享我的PSOC3学习经验(不断更新)
- Java技术联盟:QQ群:50668621争做Java全方位学习群.欢迎大家的加入,共同学习Java系列技术,同时不断更新JavaFx技术的进步..