专业化的帮助系统
这半个月的计划,提前5天完成,一下感觉特别轻松。准备出去转转,到江苏、云南去转一下。一切随意随缘。
也休整一下,15号以后再做基于模板的识别功能。
没事就自己当个用户来用用软件,东用西用的,突然觉得是否可以做个帮助系统,还是上下文敏感的,这样,从感觉上来说,软件会专业得多;而从系统的角度来说,会完善得多。总之会有上一个台阶的感觉。
另外,一般的小系统,没啥可以提供帮助的,用户自己去猜也也猜个八九不离十。所以,开发者自己定位问题,定位低点,就不需要提供帮助系统,定位高点,笨狗扎个狼狗势,先提供一个帮助系统先。
说做就做哈。
其实,说归说,做归做。要提供帮助,先得有帮助文档。
帮助文档用什么格式的呢?HTML?还是CHM?
从发布与维护的角度来说,CHM的效果肯定要好得多,一个文件就搞定,自动升级也方便。
以前用Dr Explain做了一个CHM格式的。
生成的CHM文件:
下面就是要把这个东东嵌入到程序界面中。
当然,不能把整个东东全嵌进去,这样看起来不舒服也不专业,最好是只嵌入内容页面。
思路就是找到内容页面的窗口句柄,设置它的父窗口即可。
目前运行结果:
初步达到预期效果。
不过,发现左边空得有点多,不知道是否可以挪动一点?
既然是设置父窗口方式实现,那肯定是可以设置其位置的,调整一下试试:
RECT clientRect;
::GetWindowRect((HWND)FParentWnd, &clientRect);
::SetParent((HWND)FChmViewWnd, (HWND)FParentWnd);
int left = -50;
SetWindowPos((HWND)FChmViewWnd, HWND_BOTTOM, left, 0, clientRect.right - clientRect.left - left, clientRect.bottom - clientRect.top, SWP_NOREPOSITION);
剩下的事,就是规范制作CHM帮助文件了。至于上下文敏感的帮助,那就太简单的了,不值得一提的事。