To Mark Doubson: ReportHeader + column resizing |
Post Reply |
Author | |
xcentric
Groupie Joined: 04 September 2008 Status: Offline Points: 41 |
Post Options
Thanks(0)
Posted: 03 August 2009 at 4:55pm |
Mark, there is a method CXTPDockingPaneManager::UseSplitterTracker(BOOL bSplitterTracker).
It sets the flag for display the contents for child pane while the splitter is resized. I would like to ask you to add the same functionality to CXTPReportHeader for column resizing. The code would be pretty simple and I can do it by myself, but it would be great to have this feature out of the box. Thank you. |
|
mdoubson
Senior Member Joined: 17 November 2008 Status: Offline Points: 1705 |
Post Options
Thanks(0)
|
OK - I will consider this feature. Is is something similar to Spitter Keyboard support (MFC - CSplitterWnd::DoKeyboardSplit)?
Give me more details please as DockingPaneManagent is not my component
|
|
xcentric
Groupie Joined: 04 September 2008 Status: Offline Points: 41 |
Post Options
Thanks(0)
|
Sorry for the delay, here is the video (.avi):
1) current implementation: uploads/20090813_134803_1.rar 2) the feature I am talking about uploads/20090813_135213_2.rar Thank you |
|
mdoubson
Senior Member Joined: 17 November 2008 Status: Offline Points: 1705 |
Post Options
Thanks(0)
|
This both video show standard mouse-base behaviour - so useless (don't see diffs between avi1 and avi2 - except draw during resizing - in second case). I like to know - are you want pure keyboard UI? How you will select column and this column border?
Or you will use mouse to select column border (where cursor switch to <> arrows) and now want to use keyboard Left - Right arrow to resize column?
|
|
mdoubson
Senior Member Joined: 17 November 2008 Status: Offline Points: 1705 |
Post Options
Thanks(0)
|
Looks like I understand - you don't care about keyboard at all - just want something like this:
CPoint ptOffset = CPoint(rc.left - point.x, 0) ; SetCapture(); while (CWnd::GetCapture() == this){ MSG msg; while (::PeekMessage(&msg, NULL, WM_PAINT, WM_PAINT, PM_NOREMOVE)){ if (!GetMessage(&msg, NULL, WM_PAINT, WM_PAINT)) return;DispatchMessage(&msg); } if (!GetMessage(&msg, NULL, 0, 0)) break; if (msg.message == WM_MOUSEMOVE){ point = CPoint(msg.lParam); ClientToScreen(&point); point += ptOffset; point.x = max(min(point.x, rcAvail.right), rcAvail.left); point.y = max(min(point.y, rcAvail.bottom), rcAvail.top); if (!m_bHorizSplitting){ if (rc.left == point.x) continue;rc.OffsetRect(point.x - rc.left, 0); } else{ if (rc.top == point.y) continue;rc.OffsetRect(0, point.y - rc.top); } REDRAW REPORT }
else if (msg.message == WM_KEYDOWN && msg.wParam == VK_ESCAPE) break;
else if (msg.message == WM_LBUTTONUP) break;
else ::DispatchMessage(&msg);
} if (CWnd::GetCapture() == this) ReleaseCapture();You can use it in your derived ReportHeader class
|
|
xcentric
Groupie Joined: 04 September 2008 Status: Offline Points: 41 |
Post Options
Thanks(0)
|
Exactly, I want draw during resizing feature.
I have implemented it in my code, but it would be nice to have this feature in Report Control Anyway, thank you. |
|
mdoubson
Senior Member Joined: 17 November 2008 Status: Offline Points: 1705 |
Post Options
Thanks(0)
|
No - it costly. Windows Explorer, Outlook and most other efficient program does not use this with purpose
|
|
Post Reply | |
Tweet
|
Forum Jump | Forum Permissions You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |