// TestMarkupDlg.cpp // // (c)1998-2025 Codejock Software, All Rights Reserved. // // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN // CONSENT OF CODEJOCK SOFTWARE. // // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A // SINGLE COMPUTER. // // CONTACT INFORMATION: // support@codejock.com // http://www.codejock.com // ///////////////////////////////////////////////////////////////////////////// #include "StdAfx.h" #include "Resource.h" #include "TestMarkupDlg.h" #ifdef _DEBUG # define new DEBUG_NEW # undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CTestMarkupDlg dialog CTestMarkupDlg::CTestMarkupDlg(CWnd* pParent) : CDialog(CTestMarkupDlg::IDD, pParent) { //{{AFX_DATA_INIT(CTestMarkupDlg) //}}AFX_DATA_INIT } void CTestMarkupDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CTestMarkupDlg) DDX_Control(pDX, IDC_GRID, m_wndGrid); DDX_Control(pDX, IDC_HITTEST, m_wndHitTest); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CTestMarkupDlg, CDialog) //{{AFX_MSG_MAP(CTestMarkupDlg) ON_WM_MOUSEMOVE() ON_BN_CLICKED(IDC_SET_SCROLL_POSITION, OnSetScrollPosition) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CTestMarkupDlg message handlers BOOL CTestMarkupDlg::OnInitDialog() { CDialog::OnInitDialog(); // Set the default font for all dialog controls. SendMessageToDescendants(WM_SETFONT, (WPARAM)(HFONT)XTPFontManager()->GetFont()); enum Constants { ColumnCount = 5, RecordCount = 3 }; // Initialize list control first m_wndHitTest.InsertColumn(0, _T("Event"), LVCFMT_LEFT, 200); m_wndGrid.EnableMarkup(TRUE); #if defined(_XTP_INCLUDE_MARKUP) m_wndGrid.GetMarkupContext()->AddHandler( CXTPMarkupHyperlink::m_pClickEvent, CreateMarkupClassDelegate(this, &CTestMarkupDlg::OnHyperlinkClick)); m_wndGrid.GetMarkupContext()->AddHandler( CXTPMarkupButton::m_pClickEvent, CreateMarkupClassDelegate(this, &CTestMarkupDlg::OnButtonClick)); m_wndGrid.GetMarkupContext()->SetDpiAware(); #endif // Add columns m_wndGrid.AddColumn(new CXTPGridColumn(0, _T("Hyperlink"), 100)); m_wndGrid.AddColumn(new CXTPGridColumn(1, _T("Button"), 100)); CString sHyperlink = _T("Test link"); CString sButton = _T(""); CString sScrollViewer = _T("") _T("") _T("Option1") _T("Option2") _T("Option3") _T("Option4") _T("") _T(""); // Add sample records for (int nRecord = 0; nRecord < RecordCount; nRecord++) { CXTPGridRecord* pRecord; CXTPGridRecordItemText* pItem; // Body records pRecord = m_wndGrid.GetRecords()->Add(new CXTPGridRecord()); pItem = new CXTPGridRecordItemText(); pRecord->AddItem(pItem); pItem->SetCaption(sHyperlink); pItem = new CXTPGridRecordItemText(); pRecord->AddItem(pItem); pItem->SetCaption(sButton); } { CXTPGridRecord* pRecord; CXTPGridRecordItemText* pItem; // Body records pRecord = m_wndGrid.GetRecords()->Add(new CXTPGridRecord()); pItem = new CXTPGridRecordItemText(); pRecord->AddItem(pItem); pItem->SetCaption(_T("Scrollviewer")); m_pItemScrollViewer = new CXTPGridRecordItemText(); pRecord->AddItem(m_pItemScrollViewer); m_pItemScrollViewer->SetCaption(sScrollViewer); } m_wndGrid.GetPaintManager()->SetFixedRowHeight(FALSE); m_wndGrid.GetGridHeader()->SetAutoColumnSizing(FALSE); m_wndGrid.ShowGroupBy(FALSE); m_wndGrid.ShowHeaderRows(TRUE); m_wndGrid.ShowFooterRows(FALSE); m_wndGrid.Populate(); return FALSE; } void CTestMarkupDlg::OnSetScrollPosition() { CXTPMarkupUIElement* pElement = m_pItemScrollViewer->GetMarkupUIElement(); #if defined(_XTP_INCLUDE_MARKUP) if (NULL != pElement && pElement->IsKindOf(MARKUP_TYPE(CXTPMarkupScrollViewer))) { CXTPMarkupScrollViewer* pScrollViewer = MARKUP_DYNAMICCAST(CXTPMarkupScrollViewer, pElement); pScrollViewer->SetScrollPos(SB_VERT, 20); } #endif } void CTestMarkupDlg::OnOK() { CDialog::OnOK(); } int CTestMarkupDlg::AddEvent(LPCTSTR pszEvent) { int nItem = m_wndHitTest.InsertItem(m_wndHitTest.GetItemCount(), pszEvent); m_wndHitTest.EnsureVisible(nItem, FALSE); return nItem; } #if defined(_XTP_INCLUDE_MARKUP) void CTestMarkupDlg::OnHyperlinkClick(CXTPMarkupObject* pSender, CXTPMarkupRoutedEventArgs* pArgs) { if (pSender->IsKindOf(MARKUP_TYPE(CXTPMarkupHyperlink))) { AddEvent(_T("OnHyperlinkClick")); pArgs->SetHandled(); } } void CTestMarkupDlg::OnButtonClick(CXTPMarkupObject* pSender, CXTPMarkupRoutedEventArgs* pArgs) { if (pSender->IsKindOf(MARKUP_TYPE(CXTPMarkupButton))) { AddEvent(_T("OnButtonClick")); pArgs->SetHandled(); } } #endif