| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- // AddType.cpp : implementation file
- //
- #include "stdafx.h"
- #include "cp_main.h"
- #include "AddType.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // CAddType dialog
- CAddType::CAddType(CWnd* pParent /*=NULL*/)
- : CDialog(CAddType::IDD, pParent)
- {
- //{{AFX_DATA_INIT(CAddType)
- m_eCustomType = _T("");
- //}}AFX_DATA_INIT
- }
- void CAddType::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CAddType)
- DDX_Control(pDX, IDC_LIST1, m_lbDefaultTypes);
- DDX_Text(pDX, IDC_EDIT1, m_eCustomType);
- DDV_MaxChars(pDX, m_eCustomType, 50);
- //}}AFX_DATA_MAP
- }
- BEGIN_MESSAGE_MAP(CAddType, CDialog)
- //{{AFX_MSG_MAP(CAddType)
- //}}AFX_MSG_MAP
- ON_BN_CLICKED(IDC_RADIO1, &CAddType::OnBnClickedRadio1)
- ON_BN_CLICKED(IDC_RADIO2, &CAddType::OnBnClickedRadio2)
- ON_BN_CLICKED(IDC_RADIO3, &CAddType::OnBnClickedRadio3)
- ON_BN_CLICKED(IDC_ADD_3, &CAddType::OnBnClickedAdd)
- ON_LBN_DBLCLK(IDC_LIST1, &CAddType::OnLbnDblclkList)
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // CAddType message handlers
- BOOL CAddType::OnInitDialog()
- {
- CDialog::OnInitDialog();
-
- ::CheckDlgButton(m_hWnd, IDC_RADIO2, BST_CHECKED);
- OnBnClickedRadio2();
-
- m_lbDefaultTypes.SetFocus();
- theApp.m_Language.UpdateOptionSupportedTypesAdd(this);
- return FALSE;
- }
- void CAddType::AddCurrentClipboardTypes()
- {
- m_lbDefaultTypes.ResetContent();
- COleDataObject oleData;
- if (!oleData.AttachClipboard())
- return;
- oleData.BeginEnumFormats();
- FORMATETC test;
- while (oleData.GetNextFormat(&test))
- {
- BOOL b = oleData.IsDataAvailable(test.cfFormat);
- m_lbDefaultTypes.AddString(GetFormatName(test.cfFormat));
- }
- oleData.Release();
- }
- void CAddType::AddCommonTypes()
- {
- m_lbDefaultTypes.ResetContent();
- m_lbDefaultTypes.AddString(_T("CF_TEXT"));
- m_lbDefaultTypes.AddString(_T("CF_BITMAP"));
- m_lbDefaultTypes.AddString(_T("CF_METAFILEPICT"));
- m_lbDefaultTypes.AddString(_T("CF_SYLK"));
- m_lbDefaultTypes.AddString(_T("CF_DIF"));
- m_lbDefaultTypes.AddString(_T("CF_TIFF"));
- m_lbDefaultTypes.AddString(_T("CF_OEMTEXT"));
- m_lbDefaultTypes.AddString(_T("CF_DIB"));
- m_lbDefaultTypes.AddString(_T("CF_PALETTE"));
- m_lbDefaultTypes.AddString(_T("CF_PENDATA"));
- m_lbDefaultTypes.AddString(_T("CF_RIFF"));
- m_lbDefaultTypes.AddString(_T("CF_WAVE"));
- m_lbDefaultTypes.AddString(_T("CF_UNICODETEXT"));
- m_lbDefaultTypes.AddString(_T("CF_ENHMETAFILE"));
- m_lbDefaultTypes.AddString(_T("CF_HDROP"));
- m_lbDefaultTypes.AddString(_T("CF_LOCALE"));
- m_lbDefaultTypes.AddString(_T("CF_OWNERDISPLAY"));
- m_lbDefaultTypes.AddString(_T("CF_DSPTEXT"));
- m_lbDefaultTypes.AddString(_T("CF_DSPBITMAP"));
- m_lbDefaultTypes.AddString(_T("CF_DSPMETAFILEPICT"));
- m_lbDefaultTypes.AddString(_T("CF_DSPENHMETAFILE"));
- m_lbDefaultTypes.AddString(GetFormatName(RegisterClipboardFormat(CF_RTF)));
- m_lbDefaultTypes.AddString(GetFormatName(RegisterClipboardFormat(CF_RTFNOOBJS)));
- m_lbDefaultTypes.AddString(GetFormatName(RegisterClipboardFormat(CF_RETEXTOBJ)));
- m_lbDefaultTypes.AddString(GetFormatName(RegisterClipboardFormat(_T("HTML Format"))));
- }
- void CAddType::OnBnClickedRadio1()
- {
- AddCommonTypes();
- ::ShowWindow(::GetDlgItem(m_hWnd, IDC_LIST1), SW_SHOW);
- ::ShowWindow(::GetDlgItem(m_hWnd, IDC_EDIT1), SW_HIDE);
- m_lbDefaultTypes.SetFocus();
- if (m_lbDefaultTypes.GetCount() > 0)
- {
- m_lbDefaultTypes.SetCurSel(0);
- m_lbDefaultTypes.SetSel(0);
- }
- }
- void CAddType::OnBnClickedRadio2()
- {
- AddCurrentClipboardTypes();
- ::ShowWindow(::GetDlgItem(m_hWnd, IDC_LIST1), SW_SHOW);
- ::ShowWindow(::GetDlgItem(m_hWnd, IDC_EDIT1), SW_HIDE);
- m_lbDefaultTypes.SetFocus();
- if (m_lbDefaultTypes.GetCount() > 0)
- {
- m_lbDefaultTypes.SetCurSel(0);
- m_lbDefaultTypes.SetSel(0);
- }
- }
- void CAddType::OnBnClickedRadio3()
- {
- ::ShowWindow(::GetDlgItem(m_hWnd, IDC_EDIT1), SW_SHOW);
- ::ShowWindow(::GetDlgItem(m_hWnd, IDC_LIST1), SW_HIDE);
- ::SetFocus(::GetDlgItem(m_hWnd, IDC_EDIT1));
- }
- void CAddType::OnBnClickedAdd()
- {
- m_csSelectedTypes.RemoveAll();
- if (IsDlgButtonChecked(IDC_RADIO1) == BST_CHECKED ||
- IsDlgButtonChecked(IDC_RADIO1) == BST_CHECKED)
- {
- int nCount = m_lbDefaultTypes.GetSelCount();
- if (nCount)
- {
- CString cs;
- CArray<int, int> items;
- items.SetSize(nCount);
- m_lbDefaultTypes.GetSelItems(nCount, items.GetData());
- for (int i = 0; i < nCount; i++)
- {
- m_lbDefaultTypes.GetText(items[i], cs);
- m_csSelectedTypes.Add(cs);
- }
- }
- }
- else if (IsDlgButtonChecked(IDC_RADIO3) == BST_CHECKED)
- {
- UpdateData();
- m_csSelectedTypes.Add(m_eCustomType);
- }
- EndDialog(IDOK);
- }
- void CAddType::OnLbnDblclkList()
- {
- OnBnClickedAdd();
- }
|