⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fortestdlg.cpp

📁 MFC 函数实用手册
💻 CPP
字号:
// ForTestDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "ForTest.h"
#include "ForTestDlg.h"
#include "afxdao.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CForTestDlg 对话框



CForTestDlg::CForTestDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CForTestDlg::IDD, pParent)
{
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CForTestDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CForTestDlg, CDialog)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	//}}AFX_MSG_MAP
	ON_BN_CLICKED(IDOK, OnBnClickedOk)
END_MESSAGE_MAP()


// CForTestDlg 消息处理程序

BOOL CForTestDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
	//  执行此操作
	SetIcon(m_hIcon, TRUE);			// 设置大图标
	SetIcon(m_hIcon, FALSE);		// 设置小图标

	// TODO:在此添加额外的初始化代码
	
	return TRUE;  // 除非设置了控件的焦点,否则返回 TRUE
}

// 如果向对话框添加最小化按钮,则需要下面的代码
//  来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
//  这将由框架自动完成。

void CForTestDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // 用于绘制的设备上下文

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		// 使图标在工作矩形中居中
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// 绘制图标
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

//当用户拖动最小化窗口时系统调用此函数取得光标显示。
HCURSOR CForTestDlg::OnQueryDragIcon()
{
	return static_cast<HCURSOR>(m_hIcon);
}

void CForTestDlg::OnBnClickedOk()
{
	// TODO: 在此添加控件通知处理程序代码
	/*const char* filename = "C:\\Test.bat";
	HANDLE hFile = CreateFile(
								filename,
								GENERIC_WRITE, 
								FILE_SHARE_READ,
								NULL, 
								CREATE_ALWAYS, 
								FILE_ATTRIBUTE_NORMAL, 
								NULL
							);

	if (hFile == INVALID_HANDLE_VALUE)
		AfxMessageBox("无法创建文件。");
	else
	{
		CFile file(hFile);
		const char* sz = "@echo Hello World!\n@echo Welcome to VC world!\n@pause";
	  /*CArchive ar(&file, CArchive::store);
	  ar.WriteString( sz );
	  ar.Flush();*/
	/*	file.Write(sz, lstrlen(sz));
		ULONGLONG lActual;
		file.LockRange( 0, file.GetLength() );
		lActual = file.Seek( 0, CFile::begin );
		sz = "@echo Seek Function test.\n@echo ";
		file.Write(sz, lstrlen(sz));
		file.Close();
		if( (DWORD)ShellExecute(NULL,"open",filename,NULL,NULL,SW_SHOW) == SE_ERR_SHARE )
			AfxMessageBox("文件非共享或正在被其他程序使用。");
	  
		try
		{
			//CFile::Remove(filename);
		}
		catch (CFileException* pEx)
		{
	#ifdef _DEBUG
		afxDump << "File " << filename << " cannot be removed\n";
	#endif
		pEx->Delete();
		}
	}*/
	/*CFile file;
	const char* filename = "C:\\test.bat";

	TRY
	{
		file.Open( filename, CFile::modeRead );
		ULONGLONG flength;
		flength = file.GetLength();
		char buf[128];
		UINT nBytesRead = file.Read( buf, sizeof(buf) );
		AfxMessageBox(buf);
	}
	CATCH_ALL( e )
	{
		file.Abort();   // 关闭文件
		THROW_LAST();
	}
	END_CATCH_ALL*/

/*	CFile file;
	CFileStatus filestatus;
	try
	{
	file.GetStatus(_T("C:\\test.bat"), filestatus);
	CString szOutput;
	const char* szAttribute = "";
	switch(filestatus.m_attribute)
	{
		case CFile::normal:
			szAttribute = "正常";
			break;
		case CFile::readOnly:
			szAttribute = "只读";
			break;
		case CFile::hidden:
			szAttribute = "隐藏";
			break;
		case CFile::system:
			szAttribute = "系统";
			break;
		case CFile::volume:
			szAttribute = "卷";
			break;
		case CFile::directory:
			szAttribute = "目录";
			break;
		case CFile::archive:
			szAttribute = "存档";
			break;
		default:
			break;
	}
	szOutput.Format("文件名:%s\n创建时间:%s\n修改时间:%s\n访问时间:%s\n文件大小:%d\n属 性:%s%s",
					filestatus.m_szFullName,
					filestatus.m_ctime.Format("%A, %B %d, %Y"),
					filestatus.m_mtime.Format("%A, %B %d, %Y"),
					filestatus.m_atime.Format("%A, %B %d, %Y"),
					filestatus.m_size,
					szAttribute
					);
	AfxMessageBox(szOutput);
	}
	catch(CException* pEx)
	{
		AfxMessageBox("访问文件出错。");
	}*/
	/*	const char* filename = "C:\\Test.log";
		CStdioFile file("C:\\Test.log", 
			CFile::modeRead | CFile::typeText);
		const char* sz = "@echo Hello World!\n@echo Welcome to VC world!\n@pause";
		char buf[256];
		file.ReadString(buf, sizeof(buf));
		AfxMessageBox(buf);
		/*file.WriteString(sz);
		file.Close();
		if( (DWORD)ShellExecute(NULL,"open",filename,NULL,NULL,SW_SHOW) == SE_ERR_SHARE )
			AfxMessageBox("文件非共享或正在被其他程序使用。");
	  
		try
		{
			CFile::Remove(filename);
		}
		catch (CFileException* pEx)
		{
	#ifdef _DEBUG
		afxDump << "File " << filename << " cannot be removed\n";
	#endif
		pEx->Delete();
		}*/

	/*CDaoDatabase db;
	try
	{
		db.Create(_T("test.mdb"), dbLangGeneral, dbVersion30);
	}
	catch(CDaoException* pEx)
	{
	}
	db.Open(_T("test.mdb"), FALSE, FALSE);
	db.SetQueryTimeout(5);
	if( db.CanTransact())
		AfxMessageBox("数据库支持事务处理。");
	CString sz = db.GetConnect();
	AfxMessageBox(sz);
	db.Close();*/

	//db.Create(_T("mytest"), "admin", "");
	//db.Append();
	CDaoWorkspace ws;
	if(! ws.IsOpen())
		ws.Open();
	CString szTemp = ws.GetUserName();
	AfxMessageBox(szTemp);
	if(!ws.GetIsolateODBCTrans())
		ws.SetIsolateODBCTrans(TRUE);
	szTemp = ws.GetName();
	AfxMessageBox(szTemp);
	if(ws.IsOpen())
		AfxMessageBox("工作区已经打开。");
	szTemp.Format("工作区的数据库对象数目为:%d", ws.GetDatabaseCount());
	AfxMessageBox(szTemp);
	ws.Close();
}

void ChangePassword( CString &szUserName, CString &szOldPassword, CString &szNewPassword )
{
   CDaoWorkspace wsp;
   CString szWspName = _T( "Temp Workspace" );

   wsp.Create( szWspName, szUserName,szOldPassword );
   wsp.Append( );

   short nUserCount;
   short nCurrentUser;
   DAOUser *pUser  = NULL;
   DAOUsers *pUsers = NULL;

   DAO_CHECK( wsp.m_pDAOWorkspace->get_Users( &pUsers ) );

   DAO_CHECK( pUsers->get_Count( &nUserCount ) );

   for( nCurrentUser = 0; nCurrentUser < nUserCount;
        nCurrentUser++ )
   {
       COleVariant varIndex( nCurrentUser, VT_I2 );
       COleVariant varName;

       DAO_CHECK( pUsers->get_Item( varIndex, &pUser ) );

       DAO_CHECK( pUser->get_Name( &V_BSTR( &varName ) ) );

       CString szTemp = V_BSTRT( &varName );

       if( szTemp == szUserName )
       {
           COleVariant varOldPwd( szOldPassword, VT_BSTRT );
           COleVariant varNewPwd( szNewPassword, VT_BSTRT );

           DAO_CHECK( pUser->NewPassword( V_BSTR( &varOldPwd ), V_BSTR( &varNewPwd ) ) );

           TRACE( "\t 密码已经更改。\n" );
       }
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -