+ When you are done, simply call CaptureAll(), then screenshots of all
+ controls will be automatically generated.
+
+ @section tag_autoadjust Make Use of Auto Adjustments
+
+ First take a look at the document of RegisterControl(), enum AdjustFlags
+ and GlobalAdjustFlags.
+
+ And then, ScreenshotFrame::OnCaptureAllControls() is a good example of
+ making use of auto adjustment. Taking a look at it will get you started.
+
+ @section tag_developer_note Notes for Developers
+
+ @subsection tag_cnc CaptureAll() and Capture()
+
+ The implementation of Auto Adjustments is in CaptureAll() and Capture(),
+ the code is short, quite readable and well commented, please read the codes
+ before any modification.
+
+ If you need the class to do something sepcial for you, consider introducing
+ a new flag and implement it in them. For an operation performed on multiple
+ controls, implemente its logic in CaptureAll(), otherwise in the private
+ member Capture().
+
+ @subsection tag_yield_issue wxYield Issues
+
+ Not quite a good habit, but this class made a lot of use of wxYield() /
+ wxYieldIfNeeded(). They are used to ensure the update of GUI (e.g. the
+ page turn of wxNotebook) is done before any further screenshot-taking, or
+ to do the timing(in Delay()). Without their use, there would be subtle
+ bugs.
+
+ I've read documents about wxYield() and understand the down side of it
+ before using it. But I didn't find a better approach to do those things,
+ and I used them carefully. So please DO NOT remove any of these wxYield()s
+ unless you're sure that it won't cause problems on all of MS Windows
+ XP/Vista, Linux(Ubuntu/Fedora), Mac OS Tiger/Leopard. And please help me
+ to find a better approach, thank you :)
+*/