CreateCaret,该如何处理

CreateCaret,急急急
建立了一个对话框应用程序。在OnInitDialog()里创建并显示了插入符:
CreateCaret(...);ShowCaret();
插入符正常显示。
此时,我加载了一个文件选择对话框CFileDialog dlg;dlg.Domodol()...
此时,插入符不见了,无论在文件选择对话框上点击“确定”还是“取消”,插入符都无法重新显示。
无论是加上SetFocus()还是在OnSetFocus()里创建插入符,在OnKillFocus()里隐藏插入符都没有出现。
我的最终效果是:即使当加载文件选择对话框时,插入符都在,并且在闪动。因为我看到别人可以达到这个效果。

------解决方案--------------------
The system provides one caret per queue. A window should create a caret only when it has the keyboard focus or is active. The window should destroy the caret before losing the keyboard focus or becoming inactive.