flagsandattributes.cpp
来自「IO函数调用测试」· C++ 代码 · 共 122 行
CPP
122 行
// FlagsAndAttributes.cpp : implementation file
//
#include "stdafx.h"
#include "afxtempl.h"
#include "help.h"
#include "IOExplorer.h"
#include "idcombo.h"
#include "TraceEvent.h"
#include "handle.h"
#include "handleManager.h"
#include "TraceManager.h"
#include "CreateFileSheet.h"
#include "FlagsAndAttributes.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFlagsAndAttributes property page
IMPLEMENT_DYNCREATE(CFlagsAndAttributes, CPropertyPage)
CFlagsAndAttributes::CFlagsAndAttributes() : CPropertyPage(CFlagsAndAttributes::IDD)
{
//{{AFX_DATA_INIT(CFlagsAndAttributes)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
CFlagsAndAttributes::~CFlagsAndAttributes()
{
}
void CFlagsAndAttributes::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFlagsAndAttributes)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFlagsAndAttributes, CPropertyPage)
//{{AFX_MSG_MAP(CFlagsAndAttributes)
ON_BN_CLICKED(IDC_HELPBUTTON, OnHelp)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFlagsAndAttributes message handlers
static IDData flagsandattrs[] = {
{IDC_FILE_FLAG_WRITE_THROUGH, FILE_FLAG_WRITE_THROUGH},
{IDC_FILE_FLAG_OVERLAPPED, FILE_FLAG_OVERLAPPED},
{IDC_FILE_FLAG_NO_BUFFERING, FILE_FLAG_NO_BUFFERING},
{IDC_FILE_FLAG_RANDOM_ACCESS, FILE_FLAG_RANDOM_ACCESS},
{IDC_FILE_FLAG_SEQUENTIAL_SCAN, FILE_FLAG_SEQUENTIAL_SCAN},
{IDC_FILE_FLAG_DELETE_ON_CLOSE, FILE_FLAG_DELETE_ON_CLOSE},
{IDC_FILE_FLAG_BACKUP_SEMANTICS, FILE_FLAG_BACKUP_SEMANTICS},
{IDC_FILE_FLAG_POSIX_SEMANTICS, FILE_FLAG_POSIX_SEMANTICS},
{IDC_FILE_ATTRIBUTE_READONLY, FILE_ATTRIBUTE_READONLY},
{IDC_FILE_ATTRIBUTE_HIDDEN, FILE_ATTRIBUTE_HIDDEN},
{IDC_FILE_ATTRIBUTE_SYSTEM, FILE_ATTRIBUTE_SYSTEM},
{IDC_FILE_ATTRIBUTE_DIRECTORY, FILE_ATTRIBUTE_DIRECTORY},
{IDC_FILE_ATTRIBUTE_ARCHIVE, FILE_ATTRIBUTE_ARCHIVE},
{IDC_FILE_ATTRIBUTE_NORMAL, FILE_ATTRIBUTE_NORMAL},
{IDC_FILE_ATTRIBUTE_TEMPORARY, FILE_ATTRIBUTE_TEMPORARY},
{IDC_FILE_ATTRIBUTE_COMPRESSED, FILE_ATTRIBUTE_COMPRESSED},
{IDC_FILE_ATTRIBUTE_OFFLINE, FILE_ATTRIBUTE_OFFLINE},
{0, 0} // EOT
};
BOOL CFlagsAndAttributes::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CFlagsAndAttributes::OnSetActive()
{
CCreateFileSheet * sheet = (CCreateFileSheet *)GetParent();
for(int i = 0; flagsandattrs[i].id != NULL; i++)
{ /* set bits */
((CButton *)GetDlgItem(flagsandattrs[i].id))->SetCheck(
sheet->FlagsAndAttributes & flagsandattrs[i].val ? BST_CHECKED : BST_UNCHECKED);
} /* set bits */
return CPropertyPage::OnSetActive();
}
BOOL CFlagsAndAttributes::OnKillActive()
{
CCreateFileSheet * sheet = getSheet();
sheet->FlagsAndAttributes = 0;
for(int i = 0; flagsandattrs[i].id != NULL; i++)
{ /* set bits */
if(((CButton *)GetDlgItem(flagsandattrs[i].id))->GetCheck())
sheet->FlagsAndAttributes |= flagsandattrs[i].val;
} /* set bits */
return CPropertyPage::OnKillActive();
}
void CFlagsAndAttributes::OnHelp()
{
AfxGetApp()->WinHelp(FlagsAndAttributesHelp, HELP_CONTEXT);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?