📄 testwizardoutputpage.cpp
字号:
#include "stdafx.h"
#include "TestWizardOutputPage.h"
LRESULT CTestWizardOutputPage::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
CWaitCursor waitCursor;
this->InitializeControls();
this->InitializeValues();
return 1;
}
LRESULT CTestWizardOutputPage::OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled)
{
// Be sure the base gets the message too
bHandled = FALSE;
this->UninitializeControls();
return 0;
}
LRESULT CTestWizardOutputPage::OnClickCopyToClipboard(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
m_labelSaveFileName.EnableWindow(FALSE);
m_editFileName.EnableWindow(FALSE);
m_buttonBrowseFile.EnableWindow(FALSE);
m_labelFileEncoding.EnableWindow(FALSE);
m_comboFileEncoding.EnableWindow(FALSE);
return 0;
}
LRESULT CTestWizardOutputPage::OnClickSendEmail(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
m_labelSaveFileName.EnableWindow(FALSE);
m_editFileName.EnableWindow(FALSE);
m_buttonBrowseFile.EnableWindow(FALSE);
m_labelFileEncoding.EnableWindow(FALSE);
m_comboFileEncoding.EnableWindow(FALSE);
return 0;
}
LRESULT CTestWizardOutputPage::OnClickSaveToFile(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
m_labelSaveFileName.EnableWindow(TRUE);
m_editFileName.EnableWindow(TRUE);
m_buttonBrowseFile.EnableWindow(TRUE);
m_labelFileEncoding.EnableWindow(TRUE);
m_comboFileEncoding.EnableWindow(TRUE);
return 0;
}
LRESULT CTestWizardOutputPage::OnClickBrowseFileName(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
CFileDialog dialog(FALSE,
_T("txt"), NULL,
OFN_EXPLORER | OFN_HIDEREADONLY | OFN_ENABLESIZING | OFN_NOCHANGEDIR | OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST,
_T("Text Documents (*.txt)\0*.txt\0All Files (*.*)\0*.*\0"), m_hWnd);
dialog.m_ofn.lpstrTitle = _T("Select where to output the file list");
CString initialDirectory = m_pTestWizardInfo->GetPath();
CString fileName;
int cchFileName = m_editFileName.GetWindowTextLength();
m_editFileName.GetWindowText(fileName.GetBuffer(cchFileName + 1), cchFileName + 1);
fileName.ReleaseBuffer(cchFileName);
fileName.TrimLeft();
fileName.TrimRight();
if(fileName.GetLength() > 0)
{
initialDirectory = fileName;
::PathRemoveFileSpec(initialDirectory.GetBuffer(0));
initialDirectory.ReleaseBuffer();
}
if((initialDirectory.GetLength() > 0) && (::GetFileAttributes(initialDirectory) != INVALID_FILE_ATTRIBUTES))
{
dialog.m_ofn.lpstrInitialDir = initialDirectory;
}
INT_PTR dialogResult = dialog.DoModal();
if(IDOK == dialogResult)
{
m_editFileName.SetWindowText(dialog.m_szFileName);
}
return 0;
}
void CTestWizardOutputPage::InitializeControls(void)
{
m_radioCopyToClipboard = this->GetDlgItem(IDC_RADIO_COPYTOCLIPBOARD);
m_radioSendEmail = this->GetDlgItem(IDC_RADIO_SENDEMAIL);
m_radioSaveToFile = this->GetDlgItem(IDC_RADIO_SAVETOFILE);
m_labelSaveFileName = this->GetDlgItem(IDC_LABEL_FILENAME);
m_editFileName = this->GetDlgItem(IDC_EDIT_SAVETOFILE);
m_buttonBrowseFile = this->GetDlgItem(IDC_BTN_FILEBROWSE);
m_labelFileEncoding = this->GetDlgItem(IDC_LABEL_FILEENCODING);
m_comboFileEncoding = this->GetDlgItem(IDC_COMBO_FILEENCODING);
for(int i=(int)eEncoding_First; i<=(int)eEncoding_Last; ++i)
{
m_comboFileEncoding.AddString(
CTestWizardInfo::GetOutputFileEncodingDisplayName((TestWizardOutputFileEncoding)i));
}
m_comboFileEncoding.SetCurSel(0);
// It's possible to have more control over the auto-complete functionality.
// See MSDN for info about IAutoComplete2, IACList2, and so on.
::SHAutoComplete(m_editFileName, SHACF_FILESYSTEM | SHACF_AUTOAPPEND_FORCE_ON | SHACF_AUTOSUGGEST_FORCE_ON);
}
void CTestWizardOutputPage::UninitializeControls(void)
{
}
void CTestWizardOutputPage::InitializeValues(void)
{
// We'll initialize outputFileName and outputFileEncoding even if
// the output type is not eOutput_SaveToFile (so that if a previous
// run had store something, those will be the defaults if they want
// to switch back to eOutput_SaveToFile).
CString outputFileName = m_pTestWizardInfo->GetOutputFileName();
TestWizardOutputFileEncoding outputFileEncoding = m_pTestWizardInfo->GetOutputFileEncoding();
m_editFileName.SetWindowText(outputFileName);
m_comboFileEncoding.SetCurSel((int)outputFileEncoding);
TestWizardOutputType outputType = m_pTestWizardInfo->GetOutputType();
switch(outputType)
{
case eOutput_SendEMail:
m_radioSendEmail.Click();
break;
case eOutput_SaveToFile:
m_radioSaveToFile.Click();
break;
case eOutput_Clipboard:
default:
m_radioCopyToClipboard.Click();
break;
}
}
bool CTestWizardOutputPage::StoreValues(void)
{
if(m_radioCopyToClipboard.GetCheck() == BST_CHECKED)
{
m_pTestWizardInfo->SetOutputType(eOutput_Clipboard);
}
else if(m_radioSendEmail.GetCheck() == BST_CHECKED)
{
m_pTestWizardInfo->SetOutputType(eOutput_SendEMail);
}
else if(m_radioSaveToFile.GetCheck() == BST_CHECKED)
{
m_pTestWizardInfo->SetOutputType(eOutput_SaveToFile);
CString fileName;
int cchFileName = m_editFileName.GetWindowTextLength();
m_editFileName.GetWindowText(fileName.GetBuffer(cchFileName + 1), cchFileName + 1);
fileName.ReleaseBuffer(cchFileName);
fileName.TrimLeft();
fileName.TrimRight();
if(fileName.GetLength() < 1)
{
this->MessageBox(
_T("Please provide a file name to save the list of files."),
_T("No File Name"), MB_OK | MB_ICONWARNING);
m_editFileName.SetFocus();
return false;
}
else
{
m_pTestWizardInfo->SetOutputFileName(fileName);
}
m_pTestWizardInfo->SetOutputFileEncoding(
(TestWizardOutputFileEncoding) m_comboFileEncoding.GetCurSel());
}
return true;
}
// Overrides from base class
int CTestWizardOutputPage::OnSetActive()
{
this->SetWizardButtons(PSWIZB_BACK | PSWIZB_NEXT);
// 0 = allow activate
// -1 = go back to page that was active
// page ID = jump to page
return 0;
}
int CTestWizardOutputPage::OnWizardNext()
{
bool success = this->StoreValues();
if(!success)
{
// Any errors are already reported, and if appropriate,
// the control that needs attention has been given focus.
return -1;
}
// 0 = goto next page
// -1 = prevent page change
// >0 = jump to page by dlg ID
return m_pTestWizardInfo->FindNextPage(IDD);
}
int CTestWizardOutputPage::OnWizardBack()
{
return m_pTestWizardInfo->FindPreviousPage(IDD);
}
void CTestWizardOutputPage::OnHelp()
{
m_pTestWizardInfo->ShowHelp(IDD);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -