📄 fortestdlg.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 + -