// DnSetRectDlg.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "DnResourceEditer.h" #include "DnSetRectDlg.h" #include "DnControlManager.h" // CDnSetRectDlg ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CDnSetRectDlg, CDialog) CDnSetRectDlg::CDnSetRectDlg(CWnd* pParent /*=NULL*/) : CDialog(CDnSetRectDlg::IDD, pParent) { } CDnSetRectDlg::~CDnSetRectDlg() { } void CDnSetRectDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_EDIT_SETRECT_1, m_editRect1); DDX_Control(pDX, IDC_EDIT_SETRECT_2, m_editRect2); DDX_Control(pDX, IDC_EDIT_SETRECT_3, m_editRect3); DDX_Control(pDX, IDC_EDIT_SETRECT_4, m_editRect4); } BEGIN_MESSAGE_MAP(CDnSetRectDlg, CDialog) ON_BN_CLICKED(IDOK, &CDnSetRectDlg::OnBnClickedOk) ON_WM_KEYDOWN() END_MESSAGE_MAP() // CDnSetRectDlg ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. void CDnSetRectDlg::OnBnClickedOk() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. CString strData[4]; m_editRect1.GetWindowText(strData[0]); m_editRect2.GetWindowText(strData[1]); m_editRect3.GetWindowText(strData[2]); m_editRect4.GetWindowText(strData[3]); SetRect(&DNCTRLMANAGER.m_RectData, _ttoi(strData[0]),_ttoi(strData[1]),_ttoi(strData[2]),_ttoi(strData[3])); OnOK(); } void CDnSetRectDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: ¿©±â¿¡ ¸Þ½ÃÁö 󸮱â Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº»°ªÀ» È£ÃâÇÕ´Ï´Ù. CDialog::OnKeyDown(nChar, nRepCnt, nFlags); } BOOL CDnSetRectDlg::PreTranslateMessage(MSG* pMsg) { // TODO: ¿©±â¿¡ Ư¼öÈ­µÈ Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº» Ŭ·¡½º¸¦ È£ÃâÇÕ´Ï´Ù. if( pMsg->message == WM_KEYDOWN ) { bool bControl = ((GetKeyState(VK_CONTROL) & 0x8000) != 0); if( bControl ) { if(pMsg->wParam == 'v' ||pMsg->wParam == 'V') { return GetClipBoardData(); } } } return CDialog::PreTranslateMessage(pMsg); } void CDnSetRectDlg::ParsingClipBoard(char* pString, std::vector* pList) { char *p = NULL; CString szTemp; p = strtok(pString, ","); while( p ) { szTemp.Empty(); szTemp = p; pList->push_back(szTemp); p = strtok(NULL, ","); } } bool CDnSetRectDlg::GetClipBoardData() { if( OpenClipboard() ) { char *pchData = NULL; std::vector vTempList; if( IsClipboardFormatAvailable(CF_TEXT) || IsClipboardFormatAvailable(CF_OEMTEXT) ) { HANDLE hClipboardData = GetClipboardData(CF_TEXT); pchData = (char*)GlobalLock(hClipboardData); ParsingClipBoard(pchData, &vTempList); GlobalUnlock(hClipboardData); } CloseClipboard(); if( !vTempList.empty() ) { m_editRect1.Clear(); m_editRect2.Clear(); m_editRect3.Clear(); m_editRect4.Clear(); if(vTempList.size() <= 1) { return false; } m_editRect1.SetWindowText(vTempList[0]); m_editRect2.SetWindowText(vTempList[1]); m_editRect3.SetWindowText(vTempList[2]); m_editRect4.SetWindowText(vTempList[3]); } } return true; }