在软件启动时显示小提示(Tip of the day)

      许多应用软件(如:VC++、Word等)在启动时,往往会显示一个“欢迎”对话框。在其中显示一个与应用程序使用有关的小知识。这些“欢迎”对话框的界面基本上是统一的。下面通过向工程中添加组件实现这一功能:

向应用程序添加“Tip of the day”组件。然后链接、运行程序,测试结果,发现现在程序启动时,出现提示对话框了,但提示的内容还没有,下面就为添加提示的内容,

添加Tip of the day组件后MFC为应用程序增加了一个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; } // If the timestamp in the INI file is different from the timestamp of // the tips file, then we know that the tips file has been modified // Reset the file position to 0 and write the latest timestamp to the // ini file struct _stat buf; _fstat(_fileno(m_pStream), &buf); CString strCurrentTime = ctime(&buf.st_ctime); strCurrentTime.TrimRight(); CString strStoredTime = pApp->GetProfileString(szSection, szTimeStamp, NULL); if (strCurrentTime != strStoredTime) { iFilePos = 0; pApp->WriteProfileString(szSection, szTimeStamp, strCurrentTime); } if (fseek(m_pStream, iFilePos, SEEK_SET) != 0) { AfxMessageBox(CG_IDP_FILE_CORRUPT); } else { GetNextTipString(m_strTip); } } 

上面的m_pStream = fopen("tips.txt", "r");语句可以知道,“欢迎”对话框中的显示内容保存在文件tips.txt中,现在虽然在工程中添加了Tips of the day组件,但是tips.txt文件并没有自动创建。必须在程序所在目录中创建文本文件tips.txt,并在其中添加提示内容。

在tips.txt文件中输入下面的内容,并保存

第1个小提示...

第2个小提示...

第3个小提示...

在tips.txt文件中,每个小提示占一行。

      通过在工作区的Resources View标签中打开“欢迎”对话框资源模板,标识号为IDD_TIP,可以根据需要将对话框中的说明文字改成中文。

 

你可能感兴趣的:(在软件启动时显示小提示(Tip of the day))