// ClientContract.cpp : implementation file // #include "stdafx.h" #include "ylgl.h" #include "ClientContract.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // ClientContract dialog ClientContract::ClientContract(CWnd* pParent /*=NULL*/) : CDialog(ClientContract::IDD, pParent) { //{{AFX_DATA_INIT(ClientContract) //}}AFX_DATA_INIT } void ClientContract::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(ClientContract) DDX_Control(pDX, IDC_LIST1, m_List1); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(ClientContract, CDialog) //{{AFX_MSG_MAP(ClientContract) ON_BN_CLICKED(IDC_BUTadd, OnBUTadd) ON_BN_CLICKED(IDC_BUTdel, OnBUTdel) ON_BN_CLICKED(IDC_BUTshow, OnBUTshow) ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // ClientContract message handlers BOOL ClientContract::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here if (IsHasRights2new(16) == 1 || IsHasRights2new(49) == 1) { GetDlgItem(IDC_BUTadd)->EnableWindow(1); GetDlgItem(IDC_BUTdel)->EnableWindow(1); } else { GetDlgItem(IDC_BUTadd)->EnableWindow(0); GetDlgItem(IDC_BUTdel)->EnableWindow(0); } m_List1.SetHeadings("编号,50;上传日期,150"); m_List1.LoadColumnInfo(304); GetData(); this->CenterWindow(g_pMainWnd); return false; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void ClientContract::OnCancel() { // TODO: Add extra cleanup here CDialog::OnCancel(); } void ClientContract::OnOK() { // TODO: Add extra validation here CDialog::OnOK(); } void ClientContract::FillGrid() { UpdateData(); m_List1.DeleteAllItems2(); int ii = 0; m_List1.m_arLabels.SetSize(m_List1array.GetSize(), 1); int count = 0; for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++) { m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii)); } m_List1.m_arLabels.SetSize(count, 1); ii = count; m_List1.m_LabelCount = ii; m_List1.SetItemCountEx(ii); } extern void SaveImageToFile2(Image *img, CString path, ULONG quality); void ClientContract::OnBUTadd() { // TODO: Add your control notification handler code here CFileDialog fdlg(true, NULL, "", OFN_HIDEREADONLY, "jpg files(*jpg)|*.jpg||"); if (fdlg.DoModal() != IDOK)return; CString path = fdlg.GetPathName(); Image *m_pImg = NULL; if (m_pImg)delete m_pImg; m_pImg = NULL; ::LoadImageFromBuf(&m_pImg, path); if (m_pImg == NULL) { AfxMessageBox("无效图片文件!"); return; } Image *simg2 = NULL; CRect rc2(0, 0, 2000, 2000); RectFitDes(m_pImg->GetWidth(), m_pImg->GetHeight(), rc2); simg2 = m_pImg->GetThumbnailImage(rc2.Width(), rc2.Height(), NULL, NULL); Graphics graphic2(simg2);//防止GetThumbnailImage影响质量 graphic2.Clear(Color(255, 255, 255, 255)); graphic2.DrawImage(m_pImg, 0, 0, simg2->GetWidth(), simg2->GetHeight()); if (m_pImg)delete m_pImg; m_pImg = NULL; path = g_mainpath + "\\1.jpg"; ::SaveImageToFile2(simg2, path, 40); delete simg2; CFile fp; if (!fp.Open(path, CFile::modeRead)) { AfxMessageBox("文件打开失败!"); return; } DWORD length = fp.GetLength(); BYTE *m_pData = new BYTE[length + 100]; fp.Read(m_pData, length); fp.Close(); ::DeleteFile(path); // 删除1.jpg文件; char no[100]; memset(no, 0, 100); #ifdef VC60 strcpy(no, m_id + ";"); #else strcpy_s(no, 100, m_id + ";"); #endif memcpy(m_pData + length, no, 100); g_nSendCode = 39; g_pMainWnd->ProcessChatMessageRequest2(m_pData, length + 100); g_nSendCode = 0; delete[]m_pData; if (g_bSendOK == 0) { if (m_pImg)delete m_pImg; m_pImg = NULL; return; } AfxMessageBox("上传成功!"); GetData(); } void ClientContract::OnBUTdel() { // TODO: Add your control notification handler code here POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { AfxMessageBox("请先选中您要删除的合同"); return; } if (AfxMessageBox("是否删除此合同, 确认吗?", MB_YESNO | MB_ICONINFORMATION) != IDYES)return; int iItem = m_List1.GetNextSelectedItem(pos); CString date = m_List1.GetItemText(iItem, 1); BYTE *m_pData = new BYTE[100]; char no[100]; memset(no, 0, 100); #ifdef VC60 strcpy(no, m_id + ";" + date); #else strcpy_s(no, 100, m_id + ";" + date); #endif memcpy(m_pData, no, 100); g_nSendCode = 39; g_pMainWnd->ProcessChatMessageRequest2(m_pData, 100); g_nSendCode = 0; delete[]m_pData; if (g_bSendOK == 0) { return; } AfxMessageBox("删除成功!"); GetData(); } void ClientContract::GetData() { CString filter = "id='" + m_id + "'"; g_sendhead.bsql = 0; g_sendhead.code[0] = 230; g_sendhead.tabcount = 1; g_pMainWnd->ProcessChatMessageRequest2(filter); if (g_bSendOK == 0)return; DataToArray(&m_List1array); FillGrid(); } void ClientContract::OnBUTshow() { // TODO: Add your control notification handler code here POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { AfxMessageBox("请先选中您要查看的合同!"); return; } int iItem = m_List1.GetNextSelectedItem(pos); CString date = m_List1.GetItemText(iItem, 1); char no[100]; memset(no, 0, 100); #ifdef VC60 strcpy(no, m_id + ";" + date); #else strcpy_s(no, 100, m_id + ";" + date); #endif g_nSendCode = 40; g_pMainWnd->ProcessChatMessageRequest2((BYTE*)no, 100); g_nSendCode = 0; if (g_bSendOK == 0) { return; } CString path = g_mainpath + "\\1.jpg"; ::DeleteFile(path); // 删除1.jpg文件; CFile fp; fp.Open(path, CFile::modeCreate | CFile::modeWrite); fp.Write(g_pData, g_nLeng); fp.Close(); ShellExecute(NULL, _T("open"), path, NULL, NULL, SW_SHOWMAXIMIZED); } void ClientContract::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here OnBUTshow(); *pResult = 0; }