各种常用控件的使用就不做摘抄了,
感觉随用随查就行,以后如果天天用了,那就要熟悉了。
1. 继承CFileDialog
.h
#pragma once
// CSpecialFileDialog dialog
class CSpecialFileDialog : public CFileDialog
{
DECLARE_DYNAMIC(CSpecialFileDialog)
public:
CString m_strFilename;
BOOL m_bDeleteAll;
// Construction
public:
CSpecialFileDialog(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs
LPCTSTR lpszDefExt = NULL,
LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL,
CWnd* pParentWnd = NULL);
virtual ~CSpecialFileDialog();
// Dialog Data
enum { IDD = IDD_FILESPECIAL };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
afx_msg void OnBnClickedDelete();
};
-------------------------------------------------------------------
.cpp
// SpecFileDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Ex07b.h"
#include "SpecFileDlg.h"
// CSpecialFileDialog dialog
IMPLEMENT_DYNAMIC(CSpecialFileDialog, CFileDialog)
CSpecialFileDialog::CSpecialFileDialog(BOOL bOpenFileDialog,
LPCTSTR lpszDefExt, LPCTSTR lpszFileName, DWORD dwFlags,
LPCTSTR lpszFilter, CWnd* pParentWnd)
: CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName,
dwFlags, lpszFilter, pParentWnd)
{
m_ofn.Flags |= OFN_ENABLETEMPLATE;
m_ofn.lpTemplateName = MAKEINTRESOURCE(IDD_FILESPECIAL);
m_ofn.lpstrTitle = "Delete File";
m_bDeleteAll = FALSE;
}
CSpecialFileDialog::~CSpecialFileDialog()
{
}
void CSpecialFileDialog::DoDataExchange(CDataExchange* pDX)
{
CFileDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CSpecialFileDialog, CFileDialog)
ON_BN_CLICKED(IDC_DELETE, OnBnClickedDelete)
END_MESSAGE_MAP()
// CSpecialFileDialog message handlers
BOOL CSpecialFileDialog::OnInitDialog()
{
BOOL bRet = CFileDialog::OnInitDialog();
if (bRet == TRUE) {
GetParent()->GetDlgItem(IDOK)->SetWindowText("Delete");
}
HICON hIcon = AfxGetApp()->LoadIcon(IDI_MYICON);
GetParent()->SetIcon(hIcon, TRUE); // Set big icon
GetParent()->SetIcon(hIcon, FALSE); // Set small icon
return bRet;
}
void CSpecialFileDialog::OnBnClickedDelete()
{
m_bDeleteAll = TRUE;
// 0x480 is the child window ID of the File Name edit control
// (as determined by SPYXX)
GetParent()->GetDlgItem(0x480)->GetWindowText(m_strFilename);
GetParent()->SendMessage(WM_COMMAND, IDCANCEL);
}