Forum
Please
Log In
to post a new message or reply to an existing one. If you are not registered, please
register.
NOTE: Some forums may be read-only if you are not currently subscribed to
our technical support services.
Subject |
Author |
Date |
|
Rado Manzela
|
Apr 11, 2008 - 7:50 AM
|
I think filters in the grid header are great, especially for filtering out some unimportant rows before printing.
But in my application I would need to filter numeric and currency cells so I would need numeric filters like "less than X", "equal X", etc. It would be also more efficient than text filters.
Do you think you could implement this ? Thank you!
|
|
Technical Support
|
Apr 12, 2008 - 4:26 AM
|
We currently suppor conditional filters for text only. The type based filter implementation should be similar. The CExtGridCellHeaderFilter::OnQueryTextValueFilteredStateTF() performs conditional comparisson of text values. We need to implement a similar method but it should use grid cell objects in comparission instead of strings.
|
|
Rado Manzela
|
Apr 15, 2008 - 9:30 AM
|
Thank you for informatio, I’ll check this method later. Is there a chance you would implement this in near future? (filters for date ranges would be also helpful). Thank you.
|
|
Rado Manzela
|
Apr 11, 2008 - 7:23 AM
|
The print preview for tree grid looks great, unluckily I cannot find any documentation for it so I need answers to my problems: 1. I have number and currency cells, aligned to right. But in print preview it shows right alignment only for children of root, deeper cells have left alignment (I guess it is a bug) 2. can I turn off printing of the icons in the string cells? (how?) 3. can printing keep expand status of the tree? (currently it expands all nodes) 4. can it preserver current column widths? long items would be print using ellipses like on the screen I mean something like WYSIWYG mode by points 3 and 4. Thank you and great job!
|
|
Rado Manzela
|
Apr 15, 2008 - 9:33 AM
|
Thank you, I’ll check it.
|
|
Technical Support
|
Apr 11, 2008 - 12:32 PM
|
The same virtual methods of the CExtGridCell class are used both for screen painting and printing. I.e. the CExtGridCell::OnPaintForeground() method and other CExtGridCell::OnPaint***() methods are invoked in both cases. All the painting methods have a dwHelperPaintFlags parameter which takes a set of __EGCPF_*** flags. __EGCPF_PRINTER is present when painting methods are invoked for print or print preview and __EGCPF_PRINT_PREVIEW is present in the print preview only. None of these flags are present during on-screen painting. So, all the grid cells know where they paint their content, but these flags are never used by the painting code. I.e. the printed/previewed cells will look exactly like on the screen. You can turn off any part of any cell in the printer output but you will have to use your own cell class(es) for that. You can override the CExtGridCell::OnPaintIcon() virtual method which does not invoke the parent class method if it’s invoked for printing.
The CExtPPVW < CExtTreeGridWnd > version of the printing/previewing component prints the entire tree content by default. But you can override the CExtPPVW < CExtTreeGridWnd > :: OnCalcPrintableTreeItemArrayImpl() recursive virtual method which is invoked for building a linear list of HTREEITEM tree row handles for further generating the printed/previewed content. Your method should be similar to the original one but not invoke itself for collapsed items.
|
|
howard liu
|
Apr 11, 2008 - 6:29 AM
|
Hi support, There are some methods not supported directly in CExtToolControlBar when compared against CToolbar , I am listing out some of the methods over here related to CToolBar class of MFC can u help me in suggesting the equivalent methods in ProfUI CExtToolControlBar. CToolBar Methods of MFC CExtToolControlBar 1) LoadBitMap 1) ??????????????? 2) SetBitMap 2) ??????????????? 3) SetHeight 3) ??????????????? 4) SetSizes 4) ??????????????? 5) GetButtonText 5) ??????????????? 6) SetButtonText 6) ??????????????? thanks & regards, Raghavendra H V
|
|
howard liu
|
Apr 11, 2008 - 6:25 AM
|
Hi support, There are some methods not supported directly in CExtToolControlBar when compared against CToolbar , I am listing out some of the methods over here related to CToolBar class of MFC can u help me in suggesting the equivalent methods in ProfUI CExtToolControlBar. CToolBar Methods of MFC 1) LoadBitMap 2) SetBitMap 3) SetHeight 4) SetSizes 5) GetButtonText 6) SetButtonText
|
|
tera t
|
Apr 11, 2008 - 1:58 AM
|
Hello. By __PROF_UIS_VERSION, I want to change a build source. Thanks,
|
|
tera t
|
Apr 14, 2008 - 10:58 PM
|
Hello. For example.
I do such how to use.
Hope don’t mind. #if __PROF_UIS_VERSION < 0x02080200
PmBridge_GetPM()->PaintIcon(
dc,
true,
sItemText,
pIcon,
rcItemForIcon,
rcTmpText,
false,
true,
false,
0
);
#else
PmBridge_GetPM()->PaintIcon(
dc,
true,
pIcon,
rcItemForIcon,
false,
bEnabled,
false,
CExtPaintManager::__ALIGN_HORIZ_LEFT | CExtPaintManager::__ALIGN_VERT_TOP
);
#endif
|
|
Technical Support
|
Apr 16, 2008 - 5:01 AM
|
Your code is OK. You can use version macro in such way. Please give us more details on any unresolved issues you have.
|
|
Technical Support
|
Apr 12, 2008 - 3:46 AM
|
Please let us know what you mean by a build source?
|
|
Malcolm D
|
Apr 10, 2008 - 11:38 PM
|
What is a way of having a button/item which changes its image? It needs to work with customisation. It is a button that is like a checked/ unchecked except its image changes instead of its checked state. therefore it also needs to update based on some internal variable.
Is there a simple way of doing this?
|
|
Technical Support
|
Apr 11, 2008 - 9:56 AM
|
In the case of non-customizable toolbars and menus, you should use the command manager (the CExtCmdManager::CmdSetIcon() method). Otherwise, the command manager keeps the original version of command’s icon. Each toolbar button and menu item is described by the corresponding instance of the CExtCustomizeCmdTreeNode , which stores a customized version of the icon because the user can change/edit the icon when the Customize dialog is open. The customized version of icon is stored in the CExtCustomizeCmdTreeNode::m_iconCustomized property. Its protected in 2.82 but public in 2.83 and will be public in latter versions. So, you should mark it as public.
|
|
tera t
|
Apr 10, 2008 - 8:22 PM
|
Hello. It reappears in RibbonBar-MDI. I start RibbonBar-MDI
In NewFile, Child opens
I change a theme
On WindowCaption, rectangular drawing runs.
|
|
tera t
|
Apr 14, 2008 - 8:30 PM
|
Hello.
The program works well. However, there is a place to flicker at the time of a theme change.
Please revise it sometime.
|
|
Technical Support
|
Apr 11, 2008 - 10:10 AM
|
We modified this sample for you. Now the corner area does not displays the content of scrollable window anymore.
download link
This sample application contains a new version of the CExtScrollContainerWnd class which you should update in your project(s).
|
|
Technical Support
|
Apr 11, 2008 - 10:06 AM
|
We recoded the non-client area skinning subsystem for v.2.83. It should now solve any problems like those you reported and provides skinned areas of MDI child windows. You can see it in action in the RibbonBarMDI sample compiled with Prof-UIS 2.83.
download link
|
|
tera t
|
Apr 10, 2008 - 7:36 PM
|
There is time when expression collapses. 1, When I changed a theme.
or
2, At the time of application start. CExtRibbonNode * pNodeMoji =
new CExtRibbonNode( ID_ZUMEN_MOJI , 0, NULL, 0, _T("Str") );
pNodeMoji->RibbonILE_RuleRemoveSmallILV();
VERIFY( pNodeMoji->m_iconBig.m_bmpNormal.LoadBMP_Resource( MAKEINTRESOURCE(IDB_ZUMEN_MOJI_BIG) ) );
pNodeMoji->m_iconBig.m_bmpNormal.Make32();
pNodeMoji->m_iconBig.m_bmpNormal.AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
VERIFY( pNodeMoji->m_iconSmall.m_bmpNormal.LoadBMP_Resource( MAKEINTRESOURCE(IDB_ZUMEN_MOJI_SMALL) ) );
pNodeMoji->m_iconSmall.m_bmpNormal.Make32();
pNodeMoji->m_iconSmall.m_bmpNormal.AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
pRibbonGroup->InsertNode( NULL, pNodeMoji ); Thanks,
|
|
Technical Support
|
Apr 24, 2008 - 1:45 PM
|
v.2.83 is not yet released. Please contact us via email at support@prof-uis.com. We will reply with how to download the latest snapshot of v.2.83.
|
|
tera t
|
Apr 16, 2008 - 2:28 AM
|
Hello. There is time when size collapses by all means.
I want to perform right drawing.
Please teach a good command.
|
|
Technical Support
|
Apr 23, 2008 - 5:45 AM
|
When the current theme changes, it is handled absolutely differently by the ribbon in v.2.83 and you should no longer see the incorrect layout. We can provide you with the latest snapshot of v.2.83.
|
|
tera t
|
Apr 23, 2008 - 6:30 PM
|
Hello. when I can obtain Prof-UIS2.83?
|
|
tera t
|
Apr 10, 2008 - 6:42 PM
|
|
|
tera t
|
Apr 14, 2008 - 8:45 PM
|
The program worked well.
Thank you very much for your advice.
|
|
Rado Manzela
|
Apr 10, 2008 - 10:43 AM
|
I need to restore sort order used in tree grid control after program restart. I call CExtGridDataProvider::SortOrderSet() with needed sort order while initializing of the grid (adding columns). Althought sorting works, the sorting arrows are not displayed in the column headers. How to solve this?
Thank you.
|
|
Technical Support
|
Apr 11, 2008 - 12:27 PM
|
There is a CExtGridWnd::OnGridSyncCellSortArrows() method that you can use to assign sort arrows to header cells.
|
|
Offer Har
|
Apr 10, 2008 - 5:14 AM
|
I have a grid, in which I set the background to be the same color as the dialog background of the there. I use the CExtPaintManagerOffice2007_Black theme , and because of that, the cell text have to be white I query the color of the text line this:
CWindowDC dcFake(NULL);
COLORREF m_clrText =
PmBridge_GetPM()->QueryObjectTextColor(
dcFake,
true,
false,
false,
false,
(CObject*)this
); This will give me white in black themes, and black in the others. My problem is that when the text does not fit into the cell, the tool-tip is displayed. The tool-tip has a yellow background, so I get white on yellow... as you can imagine nothing is seen. Is there a way to fix the tool-tip text color to be black? Where do I set the color of the toot-tip’s text?
|
|
Technical Support
|
Apr 23, 2008 - 4:58 AM
|
The version is almost ready. Just needs some last touches.
|
|
Technical Support
|
Apr 15, 2008 - 5:01 AM
|
The text and background colors of the content popup window displayed for a cell is inherited from a cell. All the painting procedures are invoked from the CExtGridCell::OnPaintExpandedContent() virtual method when the client area of the content popup window is being painted. Just take a look at this method and you will see that the text is painted in the CExtGridCell::OnPaintText() method, so the text color is the same as the color of the cell text.
If you need some different text colors, you can do the following:
a) Override CExtGridCell::OnPaintExpandedContent() and pass some dwHelperPaintFlags value to the OnPaintText() method call. OnPaintText(
rcItem,
wndGrid,
picd.m_dc,
htInfo.m_nVisibleColNo,
htInfo.m_nVisibleRowNo,
htInfo.m_nColNo,
htInfo.m_nRowNo,
htInfo.GetInnerOuterTypeOfColumn(),
htInfo.GetInnerOuterTypeOfRow(),
htInfo.m_rcExtra,
htInfo.m_rcItem,
rcVisibleRange,
htInfo.m_dwAreaFlags,
>>>>>> 0L //dwHelperPaintFlags <<<<<<
); b) Override CExtGridCell::OnQueryTextColor() virtual method. Check the dwHelperPaintFlags parameter in it and return any needed color.
|
|
Offer Har
|
Apr 18, 2008 - 3:55 PM
|
It’s impossible to implement this solution, as I need to copy all the function, which uses some constant values you define in the ExtGridWnd.cpp file:
#define __EXT_EXPANDED_TEXT_GAP_X 2
#define __EXT_EXPANDED_TEXT_GAP_Y 2 In any case, this is rather a lot of work for something as simple as that - would it be possible that you will set a special value in dwHelperPaintFlags when the paint is coming from a tooltip paint call for next version - this is what I did now (changed the ExtGridWnd.cpp so that in the OnPaint call you mentioned above I pass a special value, in the function CExtGridCell::OnPaintExpandedContent , and in my cell’s OnQueryTextColor I look for that special value as you wrote in (b) Let me know if you think this is not a good idea.
|
|
Technical Support
|
Apr 22, 2008 - 8:54 AM
|
We added a __EGCPF_EXPANDED_CONTENT value which is now passed to the OnQueryBackColor and OnPaintText methods when they paint the cell’s expanded content. You can either wait for the next version release or request the new code by email.
|
|
Offer Har
|
Apr 22, 2008 - 8:57 AM
|
Thanks. Any news when the next version is to be released?
|
|
tera t
|
Apr 10, 2008 - 1:22 AM
|
Hello. What kind of structure will this move in?
Does the skin take over the drawing such as buttons?
|
|
Technical Support
|
Apr 16, 2008 - 5:00 AM
|
The skinable look of controls is provided by the CExtPaintManagerSkin class from a ProfSkin library, which is a stand alone project based on Prof-UIS. The skin is described by a tree like structure based on CExtSkinItem objects which are loaded from an .XML file or a binary .SKIN file. Each skin node describes how to paint a particular UI element.
|
|
Technical Support
|
Apr 12, 2008 - 4:27 AM
|
Please let us know which UI items would you like to skin if they are not skinned or skin them in some different way?
|
|
tera t
|
Apr 15, 2008 - 2:45 AM
|
Hello. How is drawing of the skin performed?
I inquire it.
|
|
tera t
|
Apr 10, 2008 - 12:23 AM
|
Hello. About the Cell contents of the expression range of the red frame.
Is it difficult to let you do Fit of a column by these contents?
I ask you an opinion.
|
|
Technical Support
|
Apr 12, 2008 - 4:27 AM
|
The grid control uses proportional resizing of its two columns (property name column and property value column). The fitting feature raises many additional complicated questions:
Whether to fit by expanded tree branches only? Whether to fit by name column or by value column? Whether to use categorized or sorted tree grid? ( the column layout and tree indents are different in these tree grids)
|
|
Scott Moore
|
Apr 9, 2008 - 3:23 PM
|
I have a dynamic control bar docked to the right side of my tab container and auto-hidden (__EDBS_AUTO_HIDDEN). It slides out when the user mouses over it, but is it possible to make it slide out programatically?
|
|
Technical Support
|
Apr 10, 2008 - 10:50 AM
|
You should send a WM_COMMAND message to the main frame window, with control bar’s dialog control identifier specified in the WPARAM parameter: CExtControlBar * pBar = . . .
CFrameWnd * pMainFrame = . . . // you know it or you can get it as pBar’s property: pMainFrame = pBar->m_pDockSite;
pMainFrame->SendMessage( WM_COMMAND, WPARAM(pBar->GetDlgCtrlID()) ); The bar’s dialog control identifier is equal to the command identifier of the menu item which is used for activation and displaying of the bar. The code above simply emulates the invocation of the menu item which activates and shows the bar. If you want to invoke this code only when the bar is auto-hidden, then you can use the CExtControlBar::AutoHideModeGet() method for checking whether the bar is auto-hidden.
|
|
David Skok
|
Apr 9, 2008 - 3:02 PM
|
I use the LPARAM of report grid nodes to hold a pointer to data created with new which is the only pointer to this data. I override
the function CExtReportGridWnd::_ReportItemUnRegisterImpl
so that I may delete the data before the node is actually removed and returned to the pool. It was always successful until I tried to clear the Report of all nodes using the following: LONG nRowCount = m_wndGrid.RowCountGet();
if( nRowCount > 0L )
{
HTREEITEM hRootItem = m_wndGrid.ItemGetRoot();
ASSERT( hRootItem != NULL );
if( hRootItem != NULL )
m_wndGrid.ItemRemove( hRootItem, true, true );
} I have found that _ReportItemUnRegisterImpl is not called in this case which is disaterous. Can you recommend an override that I may implement to GUARANTEE that I will catch when a report item is removed. Thanks
|
|
Technical Support
|
Apr 10, 2008 - 10:51 AM
|
Please override the CExtTreeGridWnd::OnTreeGridNodeRemoved() virtual method in a CExtReportGridWnd -derived class. The CExtTreeGridCellNode * pointer is really the CExtReportGridItem * pointer in the case of report grid.
|
|
David Skok
|
Apr 9, 2008 - 6:43 PM
|
Never mind. Duh, the answer is OnTreeGridNodeRemoved. I requested that function last year.
|
|
Offer Har
|
Apr 9, 2008 - 9:51 AM
|
I have a tree grid with two columns. I want that each column will occupy 50% of the grid. I initialized my grid as follows, but it does not happen. The first column size stays fixed, and the second column occupy the rest of the grid. Can you please check if there is a problem in my code or a bug? Thanks.
SiwModifyStyle(
(__ESIS_STH_NONE|__ESIS_STV_ITEM) // Item scroll window styles
| __EGBS_SFB_FULL_ROWS // Selection/focus type - full rows
| __EGBS_DYNAMIC_RESIZING // Resize rows/columns on-the-fly
| __EGBS_RESIZING_CELLS_OUTER // enable row/column resizing
,0, false);
SiwModifyStyleEx(
__EGBS_EX_CELL_TOOLTIPS_INNER
| __EGBS_EX_CELL_EXPANDING_INNER
| __EGWS_EX_PM_COLORS
| __EGBS_EX_CORNER_AREAS_3D
| __EGBS_EX_CORNER_AREAS_CURVE
| __EGBS_EX_HVI_EVENT_CELLS
,0, false);
BseModifyStyleEx(__EGBS_BSE_EX_PROPORTIONAL_COLUMN_WIDTHS);
OuterRowCountTopSet(1, false);
OuterRowHeightSet(true, 0, 0);
ColumnAdd(2, false);
CExtGridCell* pCell = NULL;
HTREEITEM htiCurrent = NULL;
CExtGridCellHeader* pCellHdr = NULL;
pCellHdr = (CExtGridCellHeader*)GridCellGetOuterAtTop(0, 0, RUNTIME_CLASS(CExtGridCellHeader));
pCellHdr->ExtentPercentSet(0.5);
pCellHdr = (CExtGridCellHeader*)GridCellGetOuterAtTop(1, 0, RUNTIME_CLASS(CExtGridCellHeader));
pCellHdr->ExtentPercentSet(0.5);
|
|
Offer Har
|
Apr 10, 2008 - 11:26 AM
|
Found the problem I did have an extra ExtentSet Thanks.
|
|
Technical Support
|
Apr 10, 2008 - 11:07 AM
|
The proportional column resizing work equally for the CExtReportGridWnd , CExtTreeGridWnd and CExtGridWnd controls. This feature is completely implemented in the CExtGridWnd class. We have quickly checked the problem in the report grid with two columns and we found no problems. We know that the first column can have a persistent width only if you specified the minimal/current/maximal width in pixels in the header cell of this column using the CExtGridCell::ExtentSet() method. Only in this case the double value specified in the CExtGridCell::ExtentPercentSet() method is ignored. You told that the second column is resized. This means the proportional column resizing feature is active and working in the grid window. We don’t know any other way to freeze the first column except specifying its 3 fixed width in pixels. Please check your code additionally. If you do not find suspected assignments of all three fixed width in your code, we will try to create a smallest possible test project for you.
|
|
Offer Har
|
Apr 10, 2008 - 11:15 AM
|
Thank you for the reply - I will check my code to see if an ExtentSet is called somewhere else and let you know.
|
|
Larry Ranahan
|
Apr 9, 2008 - 8:46 AM
|
Hello It is possible to add to a CExtTreeGridWnd grid a CExtGridCellComboBox with two (or more) columns? Thanks in advance
|
|
Technical Support
|
Apr 10, 2008 - 11:42 AM
|
No, this is not supported. You can only emulate a multicolumn view if you paint combo box items manually.
|
|
Offer Har
|
Apr 9, 2008 - 7:58 AM
|
I override OnTreeGridToggleItemExpandedState , for implementing my virtual tree. According to the help file this function is: "Called when a tree grid item is expanded or collapsed." Hoever, if you set the focus to a node, and press the right arrow, which expands this node, the fucntion is not called. Please fix....
|
|
Offer Har
|
Apr 10, 2008 - 11:04 AM
|
This is from the help file of 2.82: ItemExpand: Expands or collapses the list of child items, if any, associated with the specified parent item. OnTreeGridToggleItemExpandedState: Called when a tree grid item is expanded or collapsed. So, if I understand the help, the second function is an event firing, whereas the first one is a command to expand a node. It is very unclear to me why the OnXXX is fired when I click with the mouse on a node, and not when I use the keyboeard - please explain to me what is the difference, and how your solution can solve the problem. All user method of expanding and collapsing a node should end in the same OnXXX function.
|
|
Technical Support
|
Apr 10, 2008 - 10:54 AM
|
The name of the OnTreeGridToggleItemExpandedState() method contains the word Toggle. This means the method is invoked for toggling the expanded state rather than forcibly expanding or collapsing a node regardless of its state. Please override the CExtTreeGridWnd::ItemExpand() method instead.
|
|
Offer Har
|
Apr 11, 2008 - 2:26 PM
|
Dear Support, Even though I think there is some confusion in the definitions in the help file, overrding ItemExand does catch all cases that a node is exanded or collapsed, so I don’t need OnTreeGridToggleItemExpandedStat at all. Can you please give me an example when OnTreeGridToggleItemExpandedState is used? Thanks.
|
|
Technical Support
|
Apr 16, 2008 - 4:58 AM
|
In fact, the OnTreeGridToggleItemExpandedState() method is currently used by the CExtTreeGridWnd class internally only and only in the case when a tree row should toggle its expanded state. We think we should update the documentation or improve this method. This is not the only duplicated virtual method in Prof-UIS and we think the several ways of catching similar events is not a problem. You simply catch different particular events on the different layers.
|
|
Offer Har
|
Apr 10, 2008 - 11:05 AM
|
This is from the help file of 2.82: ItemExpand: Expands or collapses the list of child items, if any, associated with the specified parent item. OnTreeGridToggleItemExpandedState: Called when a tree grid item is expanded or collapsed. So, if I understand the help, the second function is an event firing, whereas the first one is a command to expand a node. It is very unclear to me why the OnXXX is fired when I click with the mouse on a node, and not when I use the keyboeard - please explain to me what is the difference, and how your solution can solve the problem. All user method of expanding and collapsing a node should end in the same OnXXX function.
|
|
Offer Har
|
Apr 8, 2008 - 3:23 PM
|
Dear Support, Is it possible to replace the default drawing of a check-box? I would like to display a start un-start like picasa instead of the standard check un-check. Thanks, Ron.
|
|
Technical Support
|
Apr 10, 2008 - 11:43 AM
|
The cell paints its check box in CExtGridCell::OnPaintCheck() . So you can override it and implement any custom painting in it.
|
|
Offer Har
|
Apr 8, 2008 - 9:28 AM
|
Dear Support, I would like to repeat this from a previous thread, which I never got an answer to: Can you please add for the coming version passing of the parameters of grid, row & cell to the OnValueIncrement() and OnValueDecrement() methods? If you say they are invoked from the the CExtGridCell::OnButtonPressing() method, which does contain this information it does not seems to be too complicated. This is what I intend to do myself... If you want I can check it out and let you know if it works. Ron.
|
|
Offer Har
|
Apr 10, 2008 - 5:23 AM
|
I would like to show you another problem in this issue - when an increment button is pressed, the grid is receiving an OnGridCellInputComplete call, but the cell does not! You can see it in CExtGridCell::OnButtonPressing :
... switch( nButtonType )
{
case __EBTT_UPDOWN_UP:
if( IsButtonEnabled(__EBTT_UPDOWN_UP)
&& OnQueryEnabledIncrement()
)
{
if( OnValueIncrement() )
{
wndGrid.OnGridCellInputComplete(
*this,
nColNo,
nRowNo,
nColType,
nRowType
);
bRedrawCell = true;
}
}
break;
case __EBTT_UPDOWN_DOWN:
if( IsButtonEnabled(__EBTT_UPDOWN_DOWN)
&& OnQueryEnabledDecrement()
)
{
if( OnValueDecrement() )
{
wndGrid.OnGridCellInputComplete(
*this,
nColNo,
nRowNo,
nColType,
nRowType
);
bRedrawCell = true;
}
}
break;
...
I think that the cell should be notified here that the cell was changed. I am going to do it myself, but I think that this is a fix that should be added to the library.
|
|
Technical Support
|
Apr 10, 2008 - 10:39 AM
|
We modified the grid code. Here are the details: modified in CExtGridCell:
virtual bool OnQueryEnabledIncrement(
const CExtGridWnd & wndGrid,
LONG nColNo,
LONG nRowNo,
INT nColType,
INT nRowType
) const;
virtual bool OnQueryEnabledDecrement(
const CExtGridWnd & wndGrid,
LONG nColNo,
LONG nRowNo,
INT nColType,
INT nRowType
) const;
virtual bool OnValueIncrement(
CExtGridWnd & wndGrid,
LONG nColNo,
LONG nRowNo,
INT nColType,
INT nRowType
);
virtual bool OnValueDecrement(
CExtGridWnd & wndGrid,
LONG nColNo,
LONG nRowNo,
INT nColType,
INT nRowType
);
virtual bool OnQueryButtonInfo(
INT nButtonType,
CExtGridWnd * pWndGrid = NULL,
LONG nColNo = 0,
LONG nRowNo = 0,
INT nColType = 0,
INT nRowType = 0,
bool * p_bEnabled,
bool * p_bPressed = NULL,
bool * p_bStayPressed = NULL,
UINT * p_nTimerElapseValue = NULL
) const;
bool IsButtonEnabled(
INT nButtonType, // e_button_type_t
CExtGridWnd * pWndGrid = NULL,
LONG nColNo = 0,
LONG nRowNo = 0,
INT nColType = 0,
INT nRowType = 0,
) const;
bool IsButtonPressed(
INT nButtonType, // e_button_type_t
CExtGridWnd * pWndGrid = NULL,
LONG nColNo = 0,
LONG nRowNo = 0,
INT nColType = 0,
INT nRowType = 0,
) const;
bool IsButtonStayPressed(
INT nButtonType, // e_button_type_t
CExtGridWnd * pWndGrid = NULL,
LONG nColNo = 0,
LONG nRowNo = 0,
INT nColType = 0,
INT nRowType = 0
) const;
modified in CExtGridCellVariant:
virtual bool OnValueIncrement(
LPVARIANT pvarValue,
CExtGridWnd & wndGrid,
LONG nColNo,
LONG nRowNo,
INT nColType,
INT nRowType
);
virtual bool OnValueDecrement(
LPVARIANT pvarValue,
CExtGridWnd & wndGrid,
LONG nColNo,
LONG nRowNo,
INT nColType,
INT nRowType
);
modified in CExtGridCellComboBox::
void _DoItemsIterate(
CExtGridWnd & wndGrid,
LONG nColNo,
LONG nRowNo,
INT nColType,
INT nRowType,
HWND hWndInplaceControl,
bool bNext,
bool bSetSel = false
);
added into CExtGridWnd:
virtual bool OnGridHookCellQueryEnabledIncrement(
LONG nColNo,
LONG nRowNo,
LONG nColType,
LONG nRowType,
const CExtGridCell & _cell,
bool & bEnabled
) const;
virtual bool OnGridHookCellQueryEnabledDecrement(
LONG nColNo,
LONG nRowNo,
LONG nColType,
LONG nRowType,
const CExtGridCell & _cell,
bool & bEnabled
) const;
virtual bool OnGridHookCellValueIncrement(
LONG nColNo,
LONG nRowNo,
LONG nColType,
LONG nRowType,
CExtGridCell & _cell,
bool & bResult
);
virtual bool OnGridHookCellValueDecrement(
LONG nColNo,
LONG nRowNo,
LONG nColType,
LONG nRowType,
const CExtGridCell & _cell,
bool & bResult
);
virtual bool OnGridHookCellQueryButtonInfo(
INT nButtonType,
const CExtGridCell & _cell,
LONG nColNo,
LONG nRowNo,
INT nColType,
INT nRowType,
bool * p_bEnabled,
bool * p_bPressed,
bool * p_bStayPressed,
UINT * p_nTimerElapseValue,
bool & bRetVal
) const;
|
|