Architecture modifications for advanced users
Printed From: Codejock Forums
Category: Codejock Products
Forum Name: Visual C++ MFC
Forum Description: Topics related to Codejock Visual C++ MFC products
URL: http://forum.codejock.com/forum_posts.asp?TID=13834
Printed Date: 21 November 2024 at 8:07pm Software Version: Web Wiz Forums 12.04 - http://www.webwizforums.com
Topic: Architecture modifications for advanced users
Posted By: mdoubson
Subject: Architecture modifications for advanced users
Date Posted: 27 March 2009 at 9:20pm
Hi guys, please give me know before we will oficially release version 13.1 about your needs in some architecture changes like:
1. Make some non-virtual function to declare as virtual
2. Make some private members or functions public
I will analyze your requests (for Calendar, Report and SyntaxEdit components) and will try to make you happy in your advanced development
Please put your proposal as respond on this post - it make easy to collect it all
------------- Mark Doubson, Ph.D.
|
Replies:
Posted By: znakeeye
Date Posted: 30 March 2009 at 6:53am
Brilliant move
Perhaps you should update the icons for CXTEditListBox. There are 24bit-icons nowadays...
------------- PokerMemento - http://www.pokermemento.com/
|
Posted By: znakeeye
Date Posted: 31 March 2009 at 6:21pm
void CXTPDockingPaneLayout::Serialize(CArchive& ar) { CXTPPropExchangeArchive px(ar); DoPropExchange(&px); // BOOL gone... }
All calls to DoDropExchange should return the returned BOOL! I believe this needs to be changed for several CXTPDocking* classes.
------------- PokerMemento - http://www.pokermemento.com/
|
Posted By: kanitamildasan
Date Posted: 01 April 2009 at 12:54am
Hi,
int CXTPResourceManager::GetMenuLocaleString(CMenu* pMenu, UINT nIDItem, CString& rString, UINT nFlags)
Making this method to virtual will help us to load menu strings dynamically at runtime without difficulty.
Thanks
|
Posted By: znakeeye
Date Posted: 01 April 2009 at 6:39am
CXTPRibbonBar should have a method/variable that disables the right-click menu. Today I have to derive this class and override WM_RBUTTONUP... An extra class for such a simple thing :(
------------- PokerMemento - http://www.pokermemento.com/
|
Posted By: inmaurik
Date Posted: 14 April 2009 at 3:24am
It should be possible to, in a convenient way, set the report's paint manager to always draw the selected row as if it had focus. Similar to the LVS_SHOWSELALWAYS style of CListCtrl!
I have been looking in a way to implement it myself but then I have to overwrite all of the following functions because they call CXTPReportControl::HasFocus. CXTPReportPaintManager::FillGroupRowMetrics CXTPReportPaintManager::DrawGroupRow CXTPReportPaintManager::DrawLink2 CXTPReportRow::Draw CXTPReportRow::GetItemMetrics CXTPReportRow::DrawFixed Because my derived class of the PaintManager is not a friend of CXTPReportRow you get into problems because of access to protected members. Maybe it is possible to extend IsRowFocusVisible and have the focused logic in this function. This function can then return TRUE when the control has the focus and the row focus should be shown. If every function mentioned above would use this function (instead of HasFocus) there is just one place to overwrite to show the focus always. Unfortunately this function is also not virtual.
------------- Product: Xtreme SuitePro (MFC) version 13.3.1
Platform: Windows 7 Enterprise (64bit)
Language: C++ (Visual Studio 2008 SP1)
|
Posted By: inmaurik
Date Posted: 14 April 2009 at 5:22am
I'm using the Report control to show information from the database. The control is filled with an initial set of data and when the user scrolls down the next data is added to the control. This however prompts me with a problem. To add the rows to the control I have to call populate.
When I do this the current selection gots lost because Populate wants to set the selection back to the selected record instead of the selected row (e.g. a group row) or when there is no selection the top row is set.
It would be great if Populate would set back the focus to the selected row (without ensuring visibility) or just leave the control without selection (as before calling Populate).
------------- Product: Xtreme SuitePro (MFC) version 13.3.1
Platform: Windows 7 Enterprise (64bit)
Language: C++ (Visual Studio 2008 SP1)
|
Posted By: znakeeye
Date Posted: 14 April 2009 at 11:36am
What's this? The function is non-virtual and makes a lot of your code unused...
BOOL CXTPPropertySheet::IsWizard() const { // Not implemented
return FALSE; //m_psh.dwFlags & (PSH_WIZARD | PSH_WIZARD97);
}
------------- PokerMemento - http://www.pokermemento.com/
|
Posted By: znakeeye
Date Posted: 15 April 2009 at 6:56am
Time for release any time soon? It's been a while since 27 March
------------- PokerMemento - http://www.pokermemento.com/
|
Posted By: inmaurik
Date Posted: 15 April 2009 at 4:03pm
The 13.0.0 release was on February 9th, 2009, wasn't it? What was on march 27th?
------------- Product: Xtreme SuitePro (MFC) version 13.3.1
Platform: Windows 7 Enterprise (64bit)
Language: C++ (Visual Studio 2008 SP1)
|
Posted By: znakeeye
Date Posted: 17 April 2009 at 3:13am
Topic: Architecture modifications for advanced users Posted: 27 March 2009 at 9:20pm
------------- PokerMemento - http://www.pokermemento.com/
|
Posted By: mnowaczy
Date Posted: 20 April 2009 at 9:16am
To take control over multipage printing of xaml documents I made 2 members public:
1. class _XTP_EXT_CLASS CXTPMarkupVisual CPoint m_ptVisualOffset; // The offset value of the visual object.
2. class _XTP_EXT_CLASS CXTPMarkupUIElement CSize m_szDesiredSize; // Gets the size that this element computed during the measure pass of the layout process
It would be nice you make them public or add multi page printing support. I was asking about it here: https://forum.codejock.com/forum_posts.asp?TID=11636&KW=
|
Posted By: zitz
Date Posted: 27 May 2009 at 4:44am
For report: http://forum.codejock.com/forum_posts.asp?TID=14321 and for calendar: http://forum.codejock.com/forum_posts.asp?TID=13443
|
Posted By: zitz
Date Posted: 28 May 2009 at 8:23am
Please add patch for CXTSplitterWnd::OnMouseMove https://forum.codejock.com/forum_posts.asp?TID=11300
|
Posted By: zitz
Date Posted: 29 May 2009 at 2:49am
Please add SetCustomTransparentColor( COLORREF clr ) to CXTPTransparentBitmap Please add CXTPKeyboardMonitor class
|
Posted By: inmaurik
Date Posted: 29 May 2009 at 4:23am
Also the ability to check/uncheck all rows of the selection in the CXTPReportControl
https://forum.codejock.com/forum_posts.asp?TID=14410
------------- Product: Xtreme SuitePro (MFC) version 13.3.1
Platform: Windows 7 Enterprise (64bit)
Language: C++ (Visual Studio 2008 SP1)
|
Posted By: xxLuda
Date Posted: 11 June 2009 at 3:50am
Could be possible to add [virtual] to these functions ?
PropertyGrid\XTPPropertyGridItem.h
LN608: [add:[virtual]] CString GetValue() const;
PropertyGrid\XTPPropertyGridInplaceButton.h
LN69: [add:[virtual]] int GetWidth();
LN89: [add:[virtual]] CString SetCaption() const;
|
Posted By: znakeeye
Date Posted: 16 June 2009 at 5:42am
Please change these functions!
void AddComboButton(BOOL bInside = FALSE); void AddExpandButton(BOOL bInside = FALSE); void AddSpinButton(BOOL bInside = FALSE);
Should be: CXTPReportInplaceButton* AddComboButton(BOOL bInside = FALSE); CXTPReportInplaceButton* AddExpandButton(BOOL bInside = FALSE); CXTPReportInplaceButton* AddSpinButton(BOOL bInside = FALSE);
It's brain-damaged not to return the added pointer-value! :(
------------- PokerMemento - http://www.pokermemento.com/
|
Posted By: mdoubson
Date Posted: 16 June 2009 at 7:25am
Agree. Done
------------- Mark Doubson, Ph.D.
|
Posted By: robin_l
Date Posted: 22 June 2009 at 3:14pm
It is too late for 13.1 but I'd like to see CXTResizePropertySheet get the same automatic placement handling that CXTPPropertySheet does, which means adding the following to OnInitDialog
if (!m_strSection.IsEmpty())
{
LoadPlacement(m_strSection);
}
|
Also, can you please either make m_strSection (in CXTResize) public rather than protected, or add a public function that allows it to be set. AutoLoadPlacement() doesn't really do this job as it tries to set the window position immediately, which bombs if the window has not yet been created.
What I would like to do is the following:
CXTResizePropertySheet sheet;
// add pages here
sheet.m_strSection = _T("Foo");
sheet.DoModal();
|
Currently, to do this I have to subclass CXTResizePropertysheet and this seems unnecessary.
Thanks!
Robin
------------- Product: Xtreme ToolkitPro 2009 (13.4.1)
Platform: Windows 7 Ultimate(64bit)
Language: Visual Studio 2010 (C++)
|
Posted By: zitz
Date Posted: 24 June 2009 at 6:22am
CXTPImageManager.AddIcons Change
void AddIcons(CXTPImageManager* pImageManager); |
to
void AddIcons(CXTPImageManager* pImageManager, UINT* pCommands=NULL, int nCount=0); |
i want copy command range, not all.
------------- Xtreme ToolkitPro v13.1.0, static, VC++6
|
Posted By: zitz
Date Posted: 25 June 2009 at 2:39am
I want track changes of CXTPCommandBarsOptions::bDirtyState
void CXTPCommandBars::ToggleVisible(int nIndex) { ASSERT(nIndex >= 0 && nIndex < GetCount());
CXTPToolBar* pBar = GetAt(nIndex); if (pBar) { pBar->SetVisible(!pBar->IsVisible()); << bDirtyState changes here already }
m_pOptions->bDirtyState = TRUE; << unnecessary and IMHO wrong }
|
I overload CXTPToolBar::SetVisible and CXTPToolBar::OnLButtonDown and CXTPToolBar::OnNcLButtonDown function to track CXTPCommandBarsOptions::bDirtyState, but i can't change CXTPCommandBars::ToggleVisible :( After tracking i change CXTPCommandBarsOptions::bDirtyState to FALSE, but at CXTPCommandBars::ToggleVisible it changes to TRUE back :( 1. Add virtual to CXTPCommandBars::ToggleVisible 2. Add virtual CXTPCommandBarsOptions::SetDirtyState I want track bDirtyState to save CommandBars at the time of change (i Serialize them)
------------- Xtreme ToolkitPro v13.1.0, static, VC++6
|
Posted By: zitz
Date Posted: 25 June 2009 at 2:45am
Please add virtual BOOL CXTPControl::OnMButtonDown(CPoint point); virtual BOOL CXTPControl::OnMButtonUp(CPoint point);
------------- Xtreme ToolkitPro v13.1.0, static, VC++6
|
Posted By: zitz
Date Posted: 25 June 2009 at 2:59am
Please add void CXTPCommandBars::SetCustomToolBarClass(CRuntimeClass* pToolBarClass); not static, only for this CXTPCommandBars
------------- Xtreme ToolkitPro v13.1.0, static, VC++6
|
Posted By: znakeeye
Date Posted: 29 June 2009 at 7:13am
void CXTPZipMemFile::AttachCompressedBuffer
void CXTPZipMemFile::DetachCompressedBuffer
Both these should return a BOOL! Especially the first one.
------------- PokerMemento - http://www.pokermemento.com/
|
Posted By: znakeeye
Date Posted: 04 August 2009 at 4:43pm
Perhaps CXTPToolTipContext should have a Clone()-function, so that you can easily copy tooltip-styles between controls?
------------- PokerMemento - http://www.pokermemento.com/
|
Posted By: Barto
Date Posted: 05 August 2009 at 7:07am
Please add GetDefaultValue() to CXTPPropertyGridItem (counterpart to SetDefaultValue())
|
Posted By: znakeeye
Date Posted: 05 August 2009 at 8:35am
What's the point of deriving CXTPPropertyGridItemConstraint when you cannot use the class?
CXTPPropertyGridItemConstraint* CXTPPropertyGridItemConstraints::AddConstraint(LPCTSTR str, DWORD_PTR dwData, int nImage) { CXTPPropertyGridItemConstraint* pConstaint = new CXTPPropertyGridItemConstraint();
...
You should have another "AddConstraint" that accepts a CXTPPropertyGridItemConstraint pointer!
------------- PokerMemento - http://www.pokermemento.com/
|
Posted By: crystyce
Date Posted: 03 November 2009 at 4:55am
void CreateMultiRowIndexer(CXTPTabManager* pTabManager, CDC* pDC, int nWidth);
in XTPTabPaintManager should be virtual
CXTPMarkupUIElement* m_pMarkupUIElement; in CXTPReportGroupRow should have a GetMarkupUIElement() function;
------------- Product: Xtreme SuitePro (MFC) version 13.1.0
Platform: Windows XP (32bit) - SP 2
Language: Visual C++ 2008
|
Posted By: adrien
Date Posted: 09 December 2009 at 2:12am
I have a new one. When you close a message bar from the SC_CLOSE button, it should post a message to its parent, so we can tell if it's closed. E.g. something like
void CXTPMessageBar::Click(CXTPMessageBarButton* pButton)
{
if (pButton->m_nID == SC_CLOSE)
{
SetWindowPos(NULL, 0, 0, 0, 0, SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_HIDEWINDOW);
::PostMessage(m_pParent->m_hWnd, WM_XTP_MESSAGEBARCLOSED, 0, 0);
m_pCommandBars->RecalcFrameLayout();
}
else
{
m_pCommandBars->GetSite()->SendMessage(WM_COMMAND, pButton->m_nID);
}
}
------------- http://www.wingate.com - http://www.wingate.com
|
|