亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? contactdlg.cpp

?? 一個非常好用的ADO封裝類,程序員不再需要跟煩人的COM接口打交道,寫數據庫程序不再麻煩!
?? CPP
字號:
// ContactDlg.cpp : implementation file
//

#include "stdafx.h"
#include "CardFile.h"
#include "ContactDlg.h"

#include "CardFileDlg.h"

// CContactDlg dialog

IMPLEMENT_DYNAMIC(CContactDlg, CDialog)

CContactDlg::CContactDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CContactDlg::IDD, pParent)
{
  m_bEditMode = FALSE;
  m_pContactSet = NULL;
  m_pParent = pParent;
}

CContactDlg::CContactDlg(BOOL bEditMode, CWnd* pParent /*=NULL*/)
	: CDialog(CContactDlg::IDD, pParent)
{
  m_bEditMode = bEditMode;
  m_pContactSet = NULL;
  m_pParent = pParent;
}

CContactDlg::~CContactDlg()
{
}

//Since data buffering occurs in the derived AxLib recordset
//object, we can exchange data directly with the recordset's
//data fields
void CContactDlg::DoDataExchange(CDataExchange* pDX)
{
  CDialog::DoDataExchange(pDX);
  DDX_Text(pDX, IDC_CONT_NAME, m_pContactSet->m_szName);
  DDX_Text(pDX, IDC_CONT_TITLE, m_pContactSet->m_szTitle);
  DDX_Text(pDX, IDC_CONT_PHONE, m_pContactSet->m_szPhone);
  DDX_Text(pDX, IDC_CONT_EXTN, m_pContactSet->m_szExtn);
  DDX_Text(pDX, IDC_CONT_EMAIL, m_pContactSet->m_szEmail);
  DDX_Text(pDX, IDC_CONT_NOTE, m_pContactSet->m_szNote);
  DDX_Control(pDX, IDC_PHOTO_ID, m_ctrlPhotoID);
}

BEGIN_MESSAGE_MAP(CContactDlg, CDialog)
  ON_BN_CLICKED(IDC_OK, &CContactDlg::OnBnClickedOk)
  ON_BN_CLICKED(IDC_CANCEL, &CContactDlg::OnBnClickedCancel)
  ON_BN_CLICKED(IDC_GET_IMAGE, &CContactDlg::OnBnClickedGetImage)
END_MESSAGE_MAP()


// CContactDlg message handlers

BOOL CContactDlg::OnInitDialog()
{
  //Set pointers to the single instances of the CAxAccountSet
  //and CAxContactSet members of the main dialog
  m_pAccountSet = &((CCardFileDlg*)m_pParent)->m_AccountSet;
  m_pContactSet = &((CCardFileDlg*)m_pParent)->m_ContactSet;

  CDialog::OnInitDialog();

  //If we are adding a new record, make sure all of the
  //dialog edit fields are blank
  if ( !m_bEditMode )
  {
    for ( int i = IDC_CONT_NAME; i <= IDC_CONT_NOTE; i++ )
      SetDlgItemText(i, _T(""));
  }
  else
    SetDlgItemText(IDC_GET_IMAGE, _T("Show Photo ID"));

  return TRUE;  // return TRUE unless you set the focus to a control
  // EXCEPTION: OCX Property Pages should return FALSE
}

//If this is a new record, allow the user to browse for an image. This
//demo only supports bitmap images, so the file search is limited to .bmp.
//If the current record is simply being edited, the saved photo is retrieved
//from the database a displayed.
void CContactDlg::OnBnClickedGetImage()
{
  if ( m_bEditMode )
  {
    if ( m_pContactSet->m_pimgPhotoID )
      DrawPhotoID(m_pContactSet->m_pimgPhotoID);
    return;
  }

	CFileDialog FileDlg(TRUE, _T("bmp"), NULL,
			OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("Photo ID (*.bmp)|*.bmp"), NULL);
	FileDlg.m_ofn.lpstrTitle = _T("Select Photo ID image");

	if ( FileDlg.DoModal() != IDOK )
		return;

  //BINDATAINFOHEADER is defined in AxLib.h and is used to tag a binary
  //data field with file meta-data information
  BINDATAINFOHEADER imgHeader;

	struct _stat file_stat;
	CString szPath(FileDlg.GetPathName());
  _wstat((LPCTSTR)szPath, &file_stat);

  //Setup buffer to hold image file data
 	ZeroMemory((void*)&imgHeader, sizeof(BINDATAINFOHEADER));
  imgHeader.imgSize = file_stat.st_size;
  long bufsize = sizeof(BINDATAINFOHEADER) + imgHeader.imgSize;

  m_pContactSet->m_pimgPhotoID = new BYTE[bufsize];

  //Move header info into buffer
	BYTE* pBuf = m_pContactSet->m_pimgPhotoID;
	memcpy((void*)pBuf, (const void*)&imgHeader, sizeof(BINDATAINFOHEADER));
	pBuf += sizeof(BINDATAINFOHEADER);

  //Open image file and read into buffer
  FILE *fp = NULL;
  _wfopen_s(&fp, (LPCTSTR)szPath, _T("rb"));
  for ( int i = 0; i < imgHeader.imgSize; i++ )
    fread(pBuf++, sizeof(BYTE), 1, fp);
  fclose(fp);

  //Display the image
  DrawPhotoID(m_pContactSet->m_pimgPhotoID);
}

//Not a very sophisticated viewer (rather crude actually), but
//we are demonstrating how binary data (i.e. BLOBs) can be saved
//and recalled.
//                        ~~~~~~~~~~~~~~~~~~~
//Bitmap files are comprized of a file header (BITMAPFILEHEADER - 14 bytes),
//infoheader (BITMAPINFOHEADER - 40 bytes), and possibly an array of bytes
//specifying the color table to use in rendering the bitmap. This is followed
//by the actual bits of the bitmap itself. To enable the display of the image
//the API function CreateDIBSection is used to create a Device Independent Bitmap
//(DIB) and StretchBlt is used to make it fit. The result is not the highest
//quality image, but as noted, this is for demonstration purposes only.

void CContactDlg::DrawPhotoID(BYTE* pImage)
{
  BYTE* pBuf = pImage;

  BITMAPFILEHEADER bfh;
  BITMAPINFOHEADER bih;

  pBuf += sizeof(BINDATAINFOHEADER);            //Skip AxLib binary info header
  memcpy(&bfh, pBuf, sizeof(BITMAPFILEHEADER));
  pBuf += sizeof(BITMAPFILEHEADER);
  memcpy(&bih, pBuf, sizeof(BITMAPINFOHEADER));
  pBuf += sizeof(BITMAPINFOHEADER);
  const BYTE* pColorTable = pBuf;

  //Is this a bitmap
  char szFileType[3];
  memcpy((void*)szFileType, (const void*)&bfh, (2*sizeof(char)));
  szFileType[2] = '\0';
  if ( strcmp(szFileType, "BM") != 0 )
  {
    AfxMessageBox(_T("Invalid bitmap file"));
    return;
  }

  //Determine the size of the color table
  int nColorTableSize = 0;
  switch ( bih.biBitCount)
  {
  case 1:
    nColorTableSize = 2;
    break;

  case 2:
    nColorTableSize = 4;
    break;

  case 4:
    nColorTableSize = 16;
    break;

  case 8 :
    nColorTableSize = 256;
    break;
  }

  pBuf += nColorTableSize * sizeof(RGBQUAD);
  const BYTE* pBits = pBuf;

  //Fill in the BITMAPINFO structure. BITMAPINFO is inherited and an 
  //additional 255 elements added to support color table info. See
  //BMINFO struct definition in ContactDlg.h
  BMINFO dibInfo;
  memcpy((void*)&dibInfo.bmiHeader, (const void*)&bih, sizeof(BITMAPINFOHEADER));
  memcpy((void*)&dibInfo.bmiColors, (const void*)pColorTable, (nColorTableSize * sizeof(RGBQUAD)));

  //Create the DIB
  HDC hDC = ::GetDC(NULL);
  VOID  *ppBits = NULL;
  HBITMAP hBM = CreateDIBSection(hDC, (const BITMAPINFO*)&dibInfo, DIB_RGB_COLORS, 
    (LPVOID*)&ppBits, NULL, 0);
  ::ReleaseDC(NULL, hDC);
	memcpy(ppBits, pBits, dibInfo.bmiHeader.biSizeImage);

  //Render to the dialog
  CRect rc;
  m_ctrlPhotoID.GetClientRect(&rc);

  CDC* pDC = m_ctrlPhotoID.GetDC();
  CDC* memDC = new CDC;
  memDC->CreateCompatibleDC(pDC);
  memDC->SelectObject(hBM);

  BOOL bSuccess = pDC->StretchBlt(0, 0, rc.Width(), rc.Height(), memDC, 
                0, 0, bih.biWidth, bih.biHeight, SRCCOPY);

  delete memDC;
  memDC = NULL;
  m_ctrlPhotoID.ReleaseDC(pDC);
  DeleteObject(hBM);
}

//Add a new record or Update an existing record's info
void CContactDlg::OnBnClickedOk()
{
  long lTransLevel = 0;
  CAxConnection *pCn = &((CCardFileDlg*)m_pParent)->m_Cn;

  try
  {
    if ( !m_bEditMode )
    {
      //We don't need a transaction to simply add a new
      //record, but one is used here for demo purposes.
      if ( pCn->_SupportsTransactions() )
      {
        pCn->BeginTrans(&lTransLevel);
          m_pContactSet->AddNew();
            m_pContactSet->m_szAccountID = m_pAccountSet->m_szAccountID;
            UpdateData(TRUE);
          m_pContactSet->Update();
        pCn->CommitTrans();
      }
    }
    else
    {
      UpdateData(TRUE);
      m_pContactSet->Update();
    }
  
    //Audible alert of Add or Update
    MessageBeep(MB_OK);
  }
  catch ( CAxException *e )
  {
    if ( lTransLevel > 0 )
      pCn->RollbackTrans();

    MessageBeep(MB_ICONEXCLAMATION);
    MessageBox(e->m_szErrorDesc, _T("CardFile Message"), MB_OK);
    delete e;
  }

  EndDialog(IDOK);
}

void CContactDlg::OnBnClickedCancel()
{
  EndDialog(IDCANCEL);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩影院在线观看| 国产精品网站一区| 色噜噜狠狠成人中文综合| 紧缚奴在线一区二区三区| 天堂午夜影视日韩欧美一区二区| 亚洲欧美中日韩| 日韩一区在线免费观看| 国产精品免费人成网站| 综合av第一页| 一区二区久久久久| 亚洲va欧美va国产va天堂影院| 亚洲一区二区三区激情| 日本vs亚洲vs韩国一区三区二区 | 韩国三级在线一区| 国产伦精一区二区三区| 国产成人a级片| 成人一级视频在线观看| 国产98色在线|日韩| av资源站一区| 欧美日韩中文字幕精品| 日韩一区二区精品葵司在线| 精品国产区一区| 国产精品视频一二三| 亚洲人成网站影音先锋播放| 亚洲一二三区在线观看| 日本伊人色综合网| 国产成人精品午夜视频免费| 91网站最新地址| 91精品在线麻豆| 久久精品欧美一区二区三区麻豆| 中文字幕一区二区三区在线播放| 最新成人av在线| 日日夜夜精品视频免费| 国产精品一区久久久久| 91在线国产福利| 91精品国产美女浴室洗澡无遮挡| 精品嫩草影院久久| 精品嫩草影院久久| 伊人开心综合网| 国内精品不卡在线| 欧美日韩国产综合视频在线观看| 久久尤物电影视频在线观看| 一区二区视频在线| 国产综合成人久久大片91| 欧亚洲嫩模精品一区三区| 久久先锋资源网| 视频精品一区二区| 91在线丨porny丨国产| 精品国免费一区二区三区| 一区二区三区成人| 成人综合日日夜夜| 日韩欧美一级二级| 亚洲自拍偷拍麻豆| 成人a区在线观看| 精品免费一区二区三区| 亚洲aaa精品| 91老师国产黑色丝袜在线| 精品国产乱码久久久久久图片 | a4yy欧美一区二区三区| 26uuu久久综合| 日韩经典中文字幕一区| 色婷婷综合五月| 国产精品初高中害羞小美女文| 久久99九九99精品| 欧美一区二区免费观在线| 亚洲一区精品在线| 色噜噜狠狠一区二区三区果冻| 国产精品免费视频一区| 风间由美一区二区av101| 精品88久久久久88久久久| 日本成人在线电影网| 欧美精品777| 天天影视涩香欲综合网| 欧美日韩精品综合在线| 一区二区三区 在线观看视频| 91原创在线视频| 亚洲视频一区二区免费在线观看| 不卡的av网站| 亚洲欧洲日韩综合一区二区| 成人av网站在线观看| 国产精品色婷婷| www..com久久爱| 亚洲免费看黄网站| 91色在线porny| 一二三区精品福利视频| 欧美丝袜丝交足nylons| 日韩精品亚洲专区| 日韩视频在线永久播放| 国产九色精品成人porny| 国产精品美女久久久久久久久久久| 懂色av中文一区二区三区| 1024亚洲合集| 欧美蜜桃一区二区三区| 美女脱光内衣内裤视频久久网站 | 久久精品夜色噜噜亚洲a∨| 高清不卡一区二区| 亚洲天堂福利av| 欧美日韩免费在线视频| 午夜视频久久久久久| 久久久.com| 91久久奴性调教| 精品一区在线看| 最新国产成人在线观看| 欧美二区三区91| 丰满岳乱妇一区二区三区| 一区二区在线观看不卡| 日韩视频一区二区| 99久久777色| 日韩电影免费在线| 国产精品麻豆视频| 日韩一二三区视频| 91丨porny丨首页| 免费成人美女在线观看.| 国产精品电影院| 日韩欧美不卡在线观看视频| 99re6这里只有精品视频在线观看| 日韩中文字幕区一区有砖一区| 久久免费偷拍视频| 欧美日韩黄色一区二区| 国产成人av一区二区三区在线观看| 亚洲大尺度视频在线观看| 国产亚洲精品福利| 欧美日韩亚洲综合在线 | 精品视频免费看| 国产suv精品一区二区883| 午夜电影一区二区三区| 日韩美女啊v在线免费观看| 日韩精品一区二区三区在线播放 | 成人app软件下载大全免费| 青青草成人在线观看| 一区二区三区波多野结衣在线观看| 久久免费电影网| 日韩一区二区精品在线观看| 色婷婷综合视频在线观看| 国产v日产∨综合v精品视频| 久久精品国产亚洲高清剧情介绍| 一区二区三区四区不卡在线 | 欧美国产激情一区二区三区蜜月| 欧美色精品天天在线观看视频| 91在线高清观看| 成人a区在线观看| 成人国产亚洲欧美成人综合网 | 亚洲乱码中文字幕综合| 国产女主播在线一区二区| 精品久久国产老人久久综合| 日韩欧美一卡二卡| 91精品国产高清一区二区三区蜜臀| 91久久精品日日躁夜夜躁欧美| 91蝌蚪porny| 91小宝寻花一区二区三区| 成人的网站免费观看| 成人高清av在线| 成人免费视频视频在线观看免费| 国产不卡在线一区| 成人精品小蝌蚪| 99久久精品国产一区| av在线不卡网| 色天使色偷偷av一区二区| 色综合久久久久久久久久久| 一本一本大道香蕉久在线精品 | 亚洲精品成人在线| 亚洲精品欧美在线| 一区二区三区在线免费| 午夜视频一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲欧洲国产日本综合| 亚洲免费在线播放| 亚洲最大成人综合| 日韩精品久久理论片| 国产又黄又大久久| 成人教育av在线| 欧美午夜视频网站| 日韩视频国产视频| 国产精品国产自产拍高清av | 蜜臀av一区二区在线观看| 激情五月播播久久久精品| 国产成人av一区二区三区在线| 成人黄色小视频在线观看| 欧美在线不卡视频| 日韩欧美在线1卡| 中文字幕成人在线观看| 一区二区免费在线| 国产一区二区不卡在线| 91香蕉视频污在线| 日韩精品综合一本久道在线视频| 欧美激情艳妇裸体舞| 亚洲第一激情av| 成人综合在线网站| 欧美日韩亚洲丝袜制服| 国产视频视频一区| 亚洲午夜久久久久久久久电影网| 极品少妇一区二区三区精品视频| 成人激情免费电影网址| 日韩午夜在线观看视频| 中文字幕亚洲一区二区av在线| 日本aⅴ免费视频一区二区三区| 国产成人日日夜夜| 日韩视频在线永久播放| 亚洲精品欧美在线| 风流少妇一区二区|