?? dbtoolsql.cpp
字號:
// DBToolSQL.cpp : implementation file
//
#include "stdafx.h"
#include "DBTool.h"
#include "DBToolDlg.h"
#include "DBToolSQL.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// DBToolSQL dialog
DBToolSQL::DBToolSQL(CWnd* pParent /*=NULL*/)
: CResizableDialog(DBToolSQL::IDD, pParent)
{
//{{AFX_DATA_INIT(DBToolSQL)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
parent=pParent;
m_nID=DBToolSQL::IDD;
m_bolFlagSave=TRUE;
}
void DBToolSQL::DoDataExchange(CDataExchange* pDX)
{
CResizableDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(DBToolSQL)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(DBToolSQL, CResizableDialog)
//{{AFX_MSG_MAP(DBToolSQL)
ON_WM_CREATE()
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_EXECUTE, OnExecute)
ON_EN_CHANGE(IDC_EDIT_SQL, OnChangeEditSql)
ON_BN_CLICKED(IDC_BUTTON_SAVE, OnButtonSave)
ON_BN_CLICKED(IDC_BUTTON_OPEN, OnButtonOpen)
ON_BN_CLICKED(IDC_BUTTON_NEW, OnButtonNew)
ON_BN_CLICKED(IDC_BUTTON_SAVEAS, OnButtonSaveas)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// DBToolSQL message handlers
BOOL DBToolSQL::Create()
{
return CResizableDialog::Create(m_nID,parent);
}
void DBToolSQL::PostNcDestroy()
{
((CDBToolDlg*)parent)->BoxDone();
CResizableDialog::PostNcDestroy();
}
int DBToolSQL::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
AfxInitRichEdit();
return 0;
}
BOOL DBToolSQL::OnInitDialog()
{
CResizableDialog::OnInitDialog();
HICON hIcon;
hIcon=AfxGetApp()->LoadIcon(IDI_ICON_SQL);
SetIcon(hIcon,TRUE);
SetIcon(hIcon,FALSE);
AddAnchor(IDC_EDIT_SQL,TOP_LEFT,BOTTOM_RIGHT);
AddAnchor(IDC_BUTTON_NEW,BOTTOM_RIGHT,BOTTOM_RIGHT);
AddAnchor(IDC_BUTTON_OPEN,BOTTOM_RIGHT,BOTTOM_RIGHT);
AddAnchor(IDC_BUTTON_SAVE,BOTTOM_RIGHT,BOTTOM_RIGHT);
AddAnchor(IDC_BUTTON_SAVEAS,BOTTOM_RIGHT,BOTTOM_RIGHT);
AddAnchor(IDC_EXECUTE,BOTTOM_RIGHT,BOTTOM_RIGHT);
AddAnchor(IDCANCEL,BOTTOM_RIGHT,BOTTOM_RIGHT);
ShowSizeGrip(TRUE);
CenterWindow();
return TRUE;
}
void DBToolSQL::OnClose()
{
if(!m_bolFlagSave)
{
int rtn=AfxMessageBox("數據已經更改,保存否?",MB_ICONQUESTION|MB_YESNOCANCEL);
if(rtn==IDYES)
{
if(!SaveFile()) return;
}
else if(rtn==IDCANCEL) return;
}
DestroyWindow();
}
void DBToolSQL::OnCancel()
{
PostMessage(WM_CLOSE);
}
BOOL DBToolSQL::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->wParam==VK_ESCAPE && GetKeyState(VK_ESCAPE)<0) return TRUE;
if(pMsg->wParam==VK_TAB && GetKeyState(VK_TAB)<0)
{
if(GetFocus()==GetDlgItem(IDC_EDIT_SQL)) return FALSE;
}
return CDialog::PreTranslateMessage(pMsg);
}
void DBToolSQL::OnExecute()
{
CString strsql;
GetDlgItemText(IDC_EDIT_SQL,strsql);
AfxMessageBox("a");
}
void DBToolSQL::OnChangeEditSql()
{
m_bolFlagSave=FALSE;
}
BOOL DBToolSQL::GetSave()
{
return m_bolFlagSave;
}
void DBToolSQL::OnButtonSave()
{
SaveFile();
GetDlgItem(IDC_EDIT_SQL)->SetFocus();
}
void DBToolSQL::OnButtonOpen()
{
if(!m_bolFlagSave)
{
int rtn=AfxMessageBox("數據已經更改,保存否?",MB_ICONQUESTION|MB_YESNOCANCEL);
if(rtn==IDYES)
{
if(!SaveFile()) return;
}
else if(rtn==IDCANCEL) return;
}
CFileDialog dlg(TRUE,"*.sql",NULL,OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,"SQL語句|*.sql|文本文件|*.txt||",0);
if(dlg.DoModal()==IDOK)
{
CFile fle;
CString flename=dlg.GetPathName();
SetWindowText("SQL工具 - [" + flename + "]");
flename.Replace("\\","\\\\");
fle.Open(flename,CFile::modeRead);
void far* sql=GlobalAlloc(0,fle.GetLength());
fle.ReadHuge(sql,fle.GetLength());
SetDlgItemText(IDC_EDIT_SQL,(char*)sql);
fle.Close();
m_bolFlagSave=TRUE;
GetDlgItem(IDC_EDIT_SQL)->SetFocus();
}
}
BOOL DBToolSQL::SaveFile()
{
CString flename;
if(!m_bolFlagSave)
{
GetWindowText(flename);
flename=flename.Mid(flename.Find("[")+1);
flename=flename.Left(flename.GetLength()-1);
flename.Replace("\\","\\\\");
if(GetFileAttributes(flename)==-1)
{
CFileDialog dlg(FALSE,"*.sql",NULL,OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST|OFN_EXPLORER|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_EXTENSIONDIFFERENT,"SQL語句|*.sql||",0);
if(dlg.DoModal()==IDCANCEL)
return FALSE;
else
flename=dlg.GetPathName();
}
else
flename.Replace("\\\\","\\");
SetWindowText("SQL工具 - [" + flename + "]");
CFile fle;
fle.Open(flename,CFile::modeCreate|CFile::modeWrite);
GetDlgItemText(IDC_EDIT_SQL,flename);
fle.Write(flename,flename.GetLength());
fle.Close();
m_bolFlagSave=TRUE;
}
return TRUE;
}
void DBToolSQL::OnButtonNew()
{
if(!m_bolFlagSave)
{
int rtn=AfxMessageBox("數據已經更改,保存否?",MB_ICONQUESTION|MB_YESNOCANCEL);
if(rtn==IDYES)
{
if(!SaveFile()) return;
}
else if(rtn==IDCANCEL) return;
}
m_bolFlagSave=TRUE;
SetDlgItemText(IDC_EDIT_SQL,"");
SetWindowText("SQL工具 - [未命名]");
GetDlgItem(IDC_EDIT_SQL)->SetFocus();
}
void DBToolSQL::OnButtonSaveas()
{
CString flename;
CFileDialog dlg(FALSE,"*.sql",NULL,OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST|OFN_EXPLORER|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_EXTENSIONDIFFERENT,"SQL語句|*.sql||",0);
if(dlg.DoModal()==IDCANCEL)
return;
else
flename=dlg.GetPathName();
flename.Replace("\\\\","\\");
SetWindowText("SQL工具 - [" + flename + "]");
CFile fle;
fle.Open(flename,CFile::modeCreate|CFile::modeWrite);
GetDlgItemText(IDC_EDIT_SQL,flename);
fle.Write(flename,flename.GetLength());
fle.Close();
m_bolFlagSave=TRUE;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -