用VC实现“每天提示”对话框

Author: 粟利民 承国贤 Date: 2000年 第10期

  我们经常看到,许多应用软件在刚一启动时,就会显示一个“Tip of the day”对话框,即“每天提示”对话框。在对话框中显示与应用程序使用有关的一些小知识提示,而且每天都会显示一条新的小知识。这些“每天提示”对话框的界面基本上是统一的,下面我们将介绍在VC中通过往工程中添加组件来实现这一功能的方法。
  在Visual C++ 6.0中用MFC AppWizard创建一应用工程,如MyTip。执行菜单命令“Project\Add To Project”,选择“Components and Controls”,在Components and Controls Gallery对话框中选择Visual C++ Components中的“Tip of the day”条目,单击“Insert”按钮,将该组件添加到工程中。
  在工作区的ResourceView标签中打开“Tip of the day”对话框的模板资源,其标识号为IDD_TIP,可以根据需要对其中的文字和布局进行修改。
  定位到构造函数CTipDlg::CTipDlg,代码如下:
  CTipDlg::CTipDlg(CWnd* pParent /*=NULL*/):CDialog(IDD_TIP,pParent)
{ //{{AFX_DATA_INIT(CTipDlg)
        m_bStartup = TRUE;
        //}}AFX_DATA_INIT
      // We need to find out what //the startup and file position parameters are
        // If startup does not exist,we //assume that the Tips on startup is checked  //TRUE.
  CWinApp* pApp = AfxGetApp();
        m_bStartup = !pApp->GetProfileInt(szSection,szIntStartup,0);
        UINT iFilePos = pApp->GetProfileInt(szSection,szIntFilePos,0);
        // Now try to open the tips file
        m_pStream = fopen(″tips.txt″,″r″);
        if (m_pStream == NULL) 
        {m_strTip.LoadString(CG_IDS_FILE_ABSENT);
        return;} 
  ......
  从上面的m_pStream = fopen(″tips.txt″,″r″); 语句中可以知道,“Tip of the day”对话框的显示内容保存在文件tips.txt中。不过tips.txt并没有被自动创建。我们选择菜单命令“File\New...”打开New对话框,在Files标签中选中“Text File”条目,输入文件名“tips.txt”,并单击OK按钮。
  在tips.txt文件中,每天的一个小提示占一行,我们便可在tips.txt中逐行输入每一个小提示,格式如下所示,并保存。
  第一个小提示:......
  第二个小提示:......
  第三个小提示:......
  ......
  这样我们就可以进行编译、链接、运行程序。可以看到在程序启动时,会先显示一个“Tip of the day”对话框,其中的小提示则是我们在tips.txt文件中输入的内容。
  以上程序在Visual C++ 6.0中调试通过。