tips.txt,每行一條。IDD_TIP_OF_DAY,包含靜態文本、上一條/下一條按鈕、勾選框「啟動時顯示」。CTipOfDayDlg : public CDialogEx。CStringArray m_tips; int m_currentIndex; bool m_showOnStartup;OnInitDialog 讀取 tips.txt 填充 m_tips,顯示隨機或順序條目。m_currentIndex = (m_currentIndex + 1) % m_tips.GetSize() 更新文本。CWinApp::GetProfileInt 讀取決定啟動時是否 DoModal()。BOOL CTipOfDayDlg::OnInitDialog() {
CDialogEx::OnInitDialog();
CStdioFile file;
if (file.Open(_T("tips.txt"), CFile::modeRead)) {
CString line;
while (file.ReadString(line)) m_tips.Add(line);
file.Close();
}
if (m_tips.GetSize() == 0) m_tips.Add(_T("暫無格言"));
m_currentIndex = rand() % m_tips.GetSize();
UpdateTipText();
return TRUE;
}
void CTipOfDayDlg::OnNext() {
m_currentIndex = (m_currentIndex + 1) % m_tips.GetSize();
UpdateTipText();
}
void CTipOfDayDlg::OnPrev() {
m_currentIndex = (m_currentIndex - 1 + m_tips.GetSize()) % m_tips.GetSize();
UpdateTipText();
}
void CTipOfDayDlg::UpdateTipText() {
GetDlgItem(IDC_STATIC_TIP)->SetWindowText(m_tips[m_currentIndex]);
}
CodeProject: Improved Tip of the Day Dialog 含完整源碼、註冊表持久化、RichEdit 支援。