?? maindlg.cpp
字號:
// MainDlg.cpp : 實現(xiàn)文件
//
#include "stdafx.h"
#include "htmdb.h"
#include "MainDlg.h"
#include "BASIC.h"
#include "FILE.h"
#include "htmdbDlg.h"
#include "AddBasicDlg.h"
#include "SetDlg.h"
#define RED ((long)0xaa2222)
//_________________________________
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// 對話框數(shù)據(jù)
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 實現(xiàn)
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()
//_________________________________
// CMainDlg 對話框
IMPLEMENT_DYNCREATE(CMainDlg, CDHtmlDialog)
CMainDlg::CMainDlg(CWnd* pParent /*=NULL*/)
: CDHtmlDialog(CMainDlg::IDD, CMainDlg::IDH, pParent)
, m_nCurTable(0)
{
m_strID=_T("");
m_bLogin=false;
}
CMainDlg::~CMainDlg()
{
}
void CMainDlg::DoDataExchange(CDataExchange* pDX)
{
CDHtmlDialog::DoDataExchange(pDX);
DDX_DHtml_ElementInnerText(pDX, _T("appname"), m_strAppName);
}
BOOL CMainDlg::OnInitDialog()
{
m_strAppName=AfxGetApp()->GetProfileString ("APP","NAME","");
CDHtmlDialog::OnInitDialog();
this->SetWindowPos (&CWnd::wndNoTopMost ,0,0,550,400,SWP_NOZORDER);
this->m_wndBrowser.SetWindowPos(&CWnd::wndNoTopMost ,0,0,550,400,SWP_NOZORDER);
this->CenterWindow ();
return TRUE; // 除非將焦點設(shè)置到控件,否則返回 TRUE
}
BEGIN_MESSAGE_MAP(CMainDlg, CDHtmlDialog)
END_MESSAGE_MAP()
BEGIN_DHTML_EVENT_MAP(CMainDlg)
DHTML_EVENT_ONCLICK(_T("ButtonOK"), OnButtonOK)
DHTML_EVENT_ONCLICK(_T("ButtonDel"), OnButtonDel)
DHTML_EVENT_ONCLICK(_T("ButtonAbout"), OnButtonAbout)
DHTML_EVENT_ONCLICK(_T("ButtonCancel"), OnButtonCancel)
DHTML_EVENT_ONCLICK(_T("ButtonSet"), OnButtonSet)
DHTML_EVENT_ONCLICK(_T("ButtonLogin"), OnButtonLogin)
DHTML_EVENT_ONCLICK(_T("ButtonPersonnel") ,OnButtonPersonnel)
DHTML_EVENT_ONCLICK(_T("ButtonIns"),OnButtonIns)
DHTML_EVENT_ONCLICK(_T("ButtonFile"),OnButtonFile)
DHTML_EVENT_ONCLICK(_T("ButtonHelp"),OnButtonHelp)
DHTML_EVENT_CLASS(DISPID_HTMLELEMENTEVENTS_ONCLICK,_T("Record"),OnRecordOver)
DHTML_EVENT_CLASS(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK,_T("Record"),OnRecordOut)
END_DHTML_EVENT_MAP()
// CMainDlg 消息處理程序
HRESULT CMainDlg::OnButtonOK(IHTMLElement* /*pElement*/)
{
AfxMessageBox("OnOK");
OnOK();
return S_OK; // 除非將焦點設(shè)置到控件,否則返回 TRUE
}
HRESULT CMainDlg::OnButtonCancel(IHTMLElement* /*pElement*/)
{
if(AfxMessageBox("真的退出嗎?",MB_OKCANCEL)==IDOK) OnCancel();
return S_OK; // 除非將焦點設(shè)置到控件,否則返回 TRUE
}
HRESULT CMainDlg::OnButtonLogin (IHTMLElement *pElement)
{
ChtmdbDlg dlg(this);
if(dlg.DoModal()==IDOK)
{
AfxMessageBox("登錄成功!");
this->m_bLogin =true;
}
return S_OK;
}
HRESULT CMainDlg::OnButtonSet(IHTMLElement *pElement)
{
CSetDlg dlg;
dlg.DoModal ();
m_strAppName=AfxGetApp()->GetProfileString ("APP","NAME","");
UpdateData(FALSE);
return S_OK;
}
HRESULT CMainDlg::OnButtonPersonnel(IHTMLElement *pElement)
{
RefreshBasic();
return S_OK;
}
HRESULT CMainDlg::OnButtonIns(IHTMLElement *pElement)
{
switch(m_nCurTable)
{
case 1:
InsertBasic();
break;
case 2:
InsertFile();
break;
default:
AfxMessageBox("請打開一個表");
}
return S_OK;
}
HRESULT CMainDlg:: OnButtonFile(IHTMLElement *pElement)
{
this->RefreshFile ();
return S_OK;
}
HRESULT CMainDlg::OnButtonHelp(IHTMLElement *pElement)
{
return S_OK;
}
HRESULT CMainDlg::OnRecordOver(IHTMLElement *pElement)
{
COleVariant varColor;
CComBSTR combstr;
CComBSTR bstrcolor("");
varColor=RED;
pElement->get_innerHTML(&combstr);
CString strCurID(combstr);
if(m_strID!=strCurID)
{
CComPtr<IHTMLElement> preEle;
GetElementInterface (m_strID,IID_IHTMLElement,(void **) &preEle);
if(preEle!=NULL)
{
CComPtr<IHTMLStyle> style;
preEle->get_style (&style);
if(style!=NULL)
style->put_background (bstrcolor);
}
m_strID=strCurID;
}
CComPtr<IHTMLElement> spTR;
pElement->get_parentElement(&spTR);
CComPtr<IHTMLStyle> style2;
//pElement->get_style (&style);
spTR->get_style (&style2);
if(style2!=NULL)
{
//style->put_backgroundColor (varColor);
// style->put_cursor (L"hand");
style2->put_backgroundColor(varColor);
}
return S_OK;
}
HRESULT CMainDlg::OnRecordOut(IHTMLElement *pElement)
{
/*
//COleVariant varColor;
CComBSTR combstr,bstrcolor("");
// varColor=NULL;
pElement->get_innerHTML(&combstr);
CString strID(combstr);
CComPtr<IHTMLElement> spTR;
pElement->get_parentElement(&spTR);
CComPtr<IHTMLStyle> style,style2;
pElement->get_style (&style);
AfxMessageBox(strID);
spTR->get_style(&style2);
if(style!=NULL)
{
style->put_background( bstrcolor);
style2->put_background(bstrcolor);
// style->put_cursor (L"hand");
}
*/
return S_OK;
}
void CMainDlg::InsertBasic()
{
CAddBasicDlg dlg;
dlg.DoModal ();
RefreshBasic();
}
void CMainDlg::DeleteBasic ()
{
if(m_strID.IsEmpty())
{
AfxMessageBox("單擊第一列選擇一個記錄");
return;
}
CBASIC basicset;
basicset.Open();
CString strSQL;
strSQL.Format("delete from BASIC where BASIC_ID=%s",m_strID);
basicset.m_pDatabase ->ExecuteSQL (strSQL);
basicset.Close();
//RefreshBasic();
}
HRESULT CMainDlg::OnButtonDel(IHTMLElement *pElement)
{
switch(m_nCurTable)
{
case 1:
DeleteBasic();
RefreshBasic();
break;
case 2:
DeleteFile();
RefreshFile();
break;
default:
AfxMessageBox("請打開一個表");
}
return S_OK;
}
void CMainDlg::DeleteFile ()
{
if(m_strID.IsEmpty())
{
AfxMessageBox("單擊第一列選擇一個記錄");
return;
}
CFILE fileset;
fileset.Open();
CString strSQL;
strSQL.Format("delete from FILE where FILE_ID=%s",m_strID);
fileset.m_pDatabase ->ExecuteSQL (strSQL);
fileset.Close();
}
HRESULT CMainDlg::OnButtonAbout(IHTMLElement *pElement)
{
CAboutDlg dlg;
dlg.DoModal ();
return S_OK;
}
void CMainDlg::InsertFile()
{
AfxMessageBox("功能未實現(xiàn)!");
}
void CMainDlg::OnOK()
{
}
void CMainDlg::RefreshBasic()
{
//::SetCursor(AfxGetApp()->LoadCursor(IDC_WAIT));
//SetCapture ();
if(m_bLogin)
{
m_strID="";
m_nCurTable=1;
CString strTable,strTd;
strTable = _T("<TABLE BORDER='1' CELLPADDING='0' CELLSPACING='0' STYLE='color:blue;Font-size: 9pt'>")
_T("<THEAD><TR><TD>ID</TD><TD>姓名</TD><TD>性別</TD><TD>民族</TD><TD>崗位</TD><TD>職稱</TD><TD>職務(wù)</TD><TD>部門</TD><TD>電話</TD><TD>電郵</TD><TD>主頁</TD></TR></THEAD>");
// recreate the filelist table
CComPtr<IHTMLElement> spRecordTable;
GetElementInterface(_T("RecordTable"), IID_IHTMLElement, (void **) &spRecordTable);
if (spRecordTable != NULL)
{
CBASIC basicset;
basicset.Open();
CString strBasicID;
CString strBasicName;
CString strBasicSex;
CString strBasicNation;
CString strBasicJob;
CString strBasicZhicheng; //技術(shù)職稱
CString strBasicDuty; //行政職務(wù),
CString strBasicDept;
CString strBasicTelNo;
CString strBasicEmail;
CString strBasicHomepage;
while(!basicset.IsEOF ())
{
basicset.GetFieldValue (0,strBasicID);
basicset.GetFieldValue (1,strBasicName);
basicset.GetFieldValue (2,strBasicSex);
basicset.GetFieldValue (4,strBasicJob);
basicset.GetFieldValue (3,strBasicNation);
basicset.GetFieldValue (5,strBasicZhicheng);
basicset.GetFieldValue (6,strBasicDuty);
basicset.GetFieldValue (7,strBasicDept);
basicset.GetFieldValue(8,strBasicTelNo);
basicset.GetFieldValue (9,strBasicEmail);
basicset.GetFieldValue (10,strBasicHomepage);
//if(strBasicDept.IsEmpty ()) strBasicDept.Format("%s"," ");
strTd.Format(_T("<TR ID='%s'><TD CLASS='Record'>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD></TR>"),
strBasicID,strBasicID,strBasicName,strBasicSex,strBasicNation,strBasicJob,strBasicZhicheng,strBasicDuty,strBasicDept,strBasicTelNo,strBasicEmail,strBasicHomepage);
strTable+=strTd;
basicset.MoveNext ();
}
strTable += _T("</TABLE>");
BSTR bstrTable = strTable.AllocSysString();
spRecordTable->put_innerHTML(bstrTable);
SysFreeString(bstrTable);
}
}
else
{AfxMessageBox("未知用戶,請登錄");
}
//ReleaseCapture();
}
void CMainDlg::RefreshFile()
{
//::SetCursor(AfxGetApp()->LoadCursor(IDC_WAIT));
//SetCapture ();
if(m_bLogin)
{
m_strID="";
m_nCurTable=2;
CString strTable,strTd;
strTable = _T("<TABLE BORDER='1'CELLPADDING='0' CELLSPACING='0'STYLE='color:blue;Font-size: 9pt' WIDTH='500'>\n")
_T("<THEAD><TR><TD >ID</TD><TD>文號</TD><TD>標(biāo)題</TD><TD>發(fā)文機(jī)關(guān)</TD><TD>發(fā)文日期</TD><TD>執(zhí)行時間</TD></TR></THEAD>");
CComPtr<IHTMLElement> spRecordTable;
this->GetElementInterface (_T("RecordTable"),IID_IHTMLElement,(void **) &spRecordTable);
if (spRecordTable != NULL)
{
CFILE fileset;
fileset.Open();
CString strFileID;
CString strFileNumber;
CString strFileTitle;
CString strFileDept;
CString strFileDate;
CString strFileDate2;
while(!fileset.IsEOF ())
{
fileset.GetFieldValue (0,strFileID);
fileset.GetFieldValue (1,strFileNumber);
fileset.GetFieldValue (2,strFileTitle);
fileset.GetFieldValue (3,strFileDept);
fileset.GetFieldValue (4,strFileDate);
fileset.GetFieldValue (5,strFileDate2);
strTd.Format(_T("<TR ID='%s'><TD CLASS='Record'>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD></TR>"),\
strFileID,strFileID,strFileNumber,strFileTitle,strFileDept,strFileDate,strFileDate2);
strTable+=strTd;
fileset.MoveNext();
}
strTable+=_T("</TABLE>");
BSTR bstrTable=strTable.AllocSysString ();
spRecordTable->put_innerHTML(bstrTable);
SysFreeString(bstrTable);
fileset.Close();
}
}
else{AfxMessageBox("未知用戶,請登錄");
}
//ReleaseCapture();
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -