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 + -
显示快捷键?