|
Subject |
Author |
Date |
|
|
Borremans Pierre
|
Apr 15, 2010 - 9:20 AM
|
I’m using CExtResizablePropertySheet in my application, but the button and the title stay in the standard style. 
Is there a solution, a function to override or anything else to do for having the same color in all the CExtResizableProperySheet ?
|
|
|
Technical Support
|
Apr 16, 2010 - 4:53 AM
|
2.85 would require a lot of changes and improvements for that. It would finally become 2.88 after these improvements but 2.88 is already available.
|
|
|
Technical Support
|
Apr 15, 2010 - 2:16 PM
|
A themed tab common control (CExtThemedTabCtrl) inside a resizable property sheet is supported in Prof-UIS 2.88.
|
|
|
Borremans Pierre
|
Apr 16, 2010 - 2:59 AM
|
There isn’t a solution with the CExtResizableProperySheet ? We use the Prof-uis 2.85
|
|
|
Wilhelm Falkner
|
Apr 13, 2010 - 11:20 AM
|
Hi to All,
I use a MDI Doc/View application. Now I want to have the feature to create a "new horizontal/vertical tab group", like it can be done in VS 2003/2005/2008 or 2010. This means, when I have more than 1 doc open, I want to have 2 or more areas for viewing.
In other words, using the ProfStudio sample, i want to split the "ProfStudio child window". I need to have different views for different documents.
Can You show me, how to do?
TIA
Willi
|
|
|
Technical Support
|
Apr 16, 2010 - 8:28 AM
|
We sent you an e-mail with FTP download information.
|
|
|
Wilhelm Falkner
|
Apr 16, 2010 - 4:52 AM
|
Sound fine, tnx I have tested now VC 2010 and have seen, that the requested feature is allready realized here. So I have two choices: 1) switch all my software to VC 2010 or 2) wait, till you have realized the feature. I would prefere solution 2), caused I have seen, I have to do a lot of modifications for VC 2010. In the first step your 2.88 seems to work at VC 2010, but not full tested, olny a short look. My eMail for the pre-release of 2.89 is W.Falkner@falcon.de TIA Willi
|
|
|
Technical Support
|
Apr 15, 2010 - 2:15 PM
|
You can drop us an e-mail so we will provide you with the Prof-UIS 2.89 pre-release version which supports two Visual Studio 2010 related features: full Visual Studio 2010 support and Visual Studio 2010 UI theme.
To say more correctly and more exact, the problem is not directly in the document/view architecture. The problem is in the standard MDI interface. The MDI client area window works like mini desktop for the MDI child frame windows. The splitter window with the tabbed containers inside is an absolutely different compound UI element. The only way to make the splitter with the tabbed group working with the standard MDI interface is to use some trick like this one:
1) Create the splitter window with the tabbed groups and place it over the MDI client area window.
2) Let the MDI client area window to be happy. Let it to think it’s occupying the central part of the main frame window. Indeed, it’s always will be covered by the splitter window with the tabbed containers.
3) Let the MDI client area window to be even more happy. It will contain MDI child frame windows inside it. It will manage its MDI child windows as it does this usually. The MFC frame work will not come across with anything unusually surprising.
4) Change the parent window of each view window. The original parent is the MDI child frame window. The desired parent is some tab page container window created as splitter pane.
This looks like should be compatible with any MFC classic toys. But, of course, this is just a theory. We need to try to implement it and debug everything supposed.
|
|
|
Wilhelm Falkner
|
Apr 15, 2010 - 8:40 AM
|
As VC 2010 is released, I think you will very soon release your 2.90. right? I’m happy to hear, that you will implement this usefull feature, but 99% of my code depend on the Doc/View architecture. Do you think, it is possible to extend it to Doc/View? TIA Willi Some other word, I have to be say: I use now Prof-Uis for about 5 years in my products. You guys to a pretty ans phantastic work. And, from no other company I get this fast answering and competential support. Thank you!!!
|
|
|
Technical Support
|
Apr 15, 2010 - 7:05 AM
|
Yes, 2.90 we think. We have the CExtTabPageContainerWnd class and it implements a tabbed window group like we need. We have the CExtSplitterWnd class and it implements a splitter window group like we need. Using the combination of splitter and tabbed containers will give us what your are looking for. But we should implement drag-n-dropping, context menus and state persistence features for such compound control. We also need to integrate this compound window container with Prof-UIS dynamic control bars demonstrated in the <span class="newgreen">SDI_DynamicBars</code> and <span class="newgreen">MDI_DynamicBars</code> sample applications. Please also note, this control will not support the MDI interface and MFC’s document/view architecture. This compound control is the coded from scratch UI solution which replaces the MDI interface - not extends it.
|
|
|
Wilhelm Falkner
|
Apr 14, 2010 - 7:36 AM
|
What does DO-TO mean? 2.90? or later? Or may be Ypu can give me some hints to implement this feature? TIA Willi
|
|
|
Technical Support
|
Apr 14, 2010 - 6:48 AM
|
We are sorry this feature is not implemented yet. But it’s in our TO-DO list.
|
|
|
Cameron
|
Apr 9, 2010 - 10:11 AM
|
hi all, first of all, great toolkit with a wonderful look and feel. i have a couple of ideas for feature requests for future versions. not sure if this is the right forum for these but here they are:
1. add columns to the new CExtTreeCtrl, similar to those available for CExtListCtrl.
2. an edit control (standalone or within a grid/property grid) that has a popup button with a user-definable action. similar to CExtDateTimeWnd with the calendar popup but instead of popping up a calendar it would allow the user to override the popup button press to do anything. it would also be nice if the icon for the popup button were customizable.
3. a groupbox with a collapsible option. this would allow a set of controls to be placed in a groupbox but would allow the groupbox to be minimized/maximized via an icon/button long the top border.
just some ideas, keep up the great work! thanks! cameron
|
|
|
Enrico Migliore
|
Apr 7, 2010 - 2:21 AM
|
Hello, we are a small firm located in Italy and have been using MFC for 2 years now. We design software for industrial process control. We have focused our attention on the Prof-uis framework for our next programs and would like to ask the forum a couple of things: 1) Are there any classes to plot data? We need to plot data coming from the plant. The plot is: data versus time. The plot scrolls from right to left. 2) Are there any classes to draw dials or other industrial widgets? Our users need to input the temperature Set Point of the plant. Thanks in advance for any help, Enrico
|
|
|
Technical Support
|
Apr 8, 2010 - 9:55 AM
|
The Prof-UIS library is a set of themed UI controls including basic common controls, control bars and advanced controls like grids. We provide a set of tools for building UI but not for solving any specific tasks related to any particular industry. The plotting task is very specific and we believe it should be coded with attention to industry tasks where you need to plot something. Unfortunately we have no ready to use solution for the plotting task inside Prof-UIS. But we have experience with plotting like tasks as part of custom Prof-UIS based projects. You can drop us an e-mail to the support mail box so we will provide you with screen shots.
|
|
|
Mediatime Conseil
|
Apr 6, 2010 - 8:57 AM
|
Hi,
I create a dialog that contain a grid that contain a FontFaceName Combo box.
When I call my dialog in the main thread, all is working correctly.
But when I call my dialog.domodal() from a thread, the dialog displays correctly, the fonts are well displayed and the combo scrolls well when I use the mouse wheel. but the application crashes when I try to clic on the scrollbar of the CExtGridCellFontFaceName control?
it crashes at the line 1706 in the ExtScrollWnd.cpp bool bAnimationLocked = AnimationClient_CacheGeneratorIsLocked();
and the "this" pointer said that hwnd is not good 0xfeeefeee?
Thank you
|
|
|
Mediatime Conseil
|
Apr 7, 2010 - 1:36 AM
|
Hi,
It’s not a multi threading problem, I am not accessing controls from thread, I have a thread that run a dialog.
I made some debugging, the problem occurs in the ExtScrollwnd.cpp
Line 1703 : if( ! m_bPopupInactiveLightMode ) Line 1704 : ActivateTopParent();
before the call to ActivateTopParent, the m_hWnd of the scrollbar is OK, and after the m_hWnd is no more good.
It seems that the ActivateTopParent is modifiying this hwnd.
This happens because the main application is not the parent of my dialog ...
Any Idea?
Thank you
|
|
|
Technical Support
|
Apr 7, 2010 - 2:15 PM
|
Please use Prof-UIS classes implementing any UI controls within the main UI thread only. We mean buttons, grids, control bars, combo boxes, dialogs, property sheets and everything else.
|
|
|
Technical Support
|
Apr 6, 2010 - 11:46 AM
|
Prof-UIS classes which implement UI controls are not multithreaded. There is a global paint manager component that paints themed UI elements for all Prof-UIS controls. The paint manager caches GDI objects. The GDI system is not multithreaded. As a result, the Prof-UIS library is not multithreaded either.
|
|
|
Gwen Conel
|
Apr 2, 2010 - 3:41 PM
|
Hello,
Using Prof-UIS v2.81, I could stretch my application window over multiple monitors (application size exceeds the screen resolution). After migrating to 2.85, I can no longer extend my application beyond the size of one screen. For example, if i have two screens with a resolution of 1600x1200, and a total desktop size of 3200x1200, I cannot set the width of my window over 1600 px.
I also have the same problem with the sample app MDIDOCVIEW after rebuilding it, for example.
Thank you in advance.
|
|
|
Technical Support
|
Apr 5, 2010 - 5:15 AM
|
We confirm that it is the case in 2.85. But it is fixed in 2.88.
|
|
|
Therese P
|
Apr 1, 2010 - 8:04 AM
|
Hi, I have a grid with filters applied. Because I want to update all the data (since they are updated in real-time) in my grid (including the hidden rows), I want to reload all the data in the grid without filters and then re-apply my filters. Is there a method to keep the filter information and then apply it in the grid. Thanks
|
|
|
Therese Phan
|
Apr 13, 2010 - 9:43 AM
|
Hi thanks for the reply. I am still new to the Prof UI world. Could you provide me with an example of how to use this method? Thank you again
|
|
|
Technical Support
|
Apr 1, 2010 - 12:09 PM
|
You can serialize all filtering rules for all columns by using the CExtGridWnd::FilterStateForOuterRowSerialize() method, which re-filters the grid control after re-loading all filtering rules.
|
|
|
Therese Phan
|
Apr 13, 2010 - 9:44 AM
|
Hi thanks for the reply. I am still new to the Prof UI world. Could you provide me with an example of how to use this method? Thank you again
|
|
|
Therese P
|
Apr 1, 2010 - 7:46 AM
|
Hi, I have a grid with filters. When I apply the filter and modify a row with a pop up window: the cell is updated keeping the filter applied. However the data in the grid can be modified by a third party, and I would like that their modification be reflected in my grid in the hidden rows too. How do I access those hidden rows/cells to update the data? Thanks Terrie
|
|
|
Technical Support
|
Apr 1, 2010 - 10:42 AM
|
Hidden rows are not accessible in the CExtGridWnd control. You can invoke the CExtGridWnd::RowUnHideAll() API, perform modifications of all the required grid cells and apply filtering rules again.
|
|
|
Bart Kampers
|
Apr 1, 2010 - 4:41 AM
|
Hello, I derived a grid class from CExtGridWnd and show it in a dialog. Now I want to send it to a PrintJob so I chnged its base class to CExtPPVW < CExtGridWnd >. Now what do I have to do to get the grid printed by the PrintJob? I checked the FilteredGrid, PropertyGrid and FormulaGrid samples but they don’t give a clue. I noticed that ProfUIS_Controls sapmle crashes when I try to open the print-preview of the grid. Regards, Bart.
|
|
|
Technical Support
|
Apr 7, 2010 - 2:18 PM
|
The ID_FILE_PRINT command makes the CExtPPVW < CExtGridWnd > grid control print its content to the current printer. The CExtPPVW template class also supports the ID_FILE_PRINT_PREVIEW command which makes the grid control display the preview window. But the CExtPPVW is not designed to provide the painting feature for some custom device context. Besides the grid data can be enough large to fit the maximum bitmap size available in GDI. If your grid control contains only a few rows and columns, then you can send the WM_PRINT message to the CExtGridWnd window to capture its surface. Additionally, the CExtPPVW template class generates one EMF metafile for each printed/previewed page. These metafiles are stored in the temporarily folder. It’s possible to intercept the metafile generation process and collect a collection of metafiles. Is that what you may need?
|
|
|
Bart Kampers
|
Apr 1, 2010 - 9:29 AM
|
The crash was my fault. But still nothig of the grig gets printed to my PrintJob after sending the message.
|
|
|
Bart Kampers
|
Apr 1, 2010 - 8:23 AM
|
Sending these messages makes my application crash. And I want the grid to be printed to an existing PrintJob, so how can I send it to that particular job?
|
|
|
Technical Support
|
Apr 1, 2010 - 12:07 PM
|
We suspect you may have implemented some virtual methods like OnCmdMsg() and, in these methods you may have invoked the CExtGridWnd::OnCmdMsg() parent class methods instead of CExtPPVW < CExtGridWnd > :: OnCmdMsg(). That may be the cause of what you have encountered.
|
|
|
Bart Kampers
|
Apr 7, 2010 - 5:57 AM
|
No I did not implement OnCmdMsg(). Now, how would the grid know that I want to print it to my onw DC by just sending the ID_FILE_PRINT message to it?
|
|
|
Technical Support
|
Apr 1, 2010 - 6:36 AM
|
You should send the WM_COMMAND message to your CExtPPVW < CExtGridWnd > grid window with the ID_FILE_PRINT value in the WPARAM parameter. You can send the ID_FILE_PRINT_PREVIEW command to switch your grid window into the print preview mode.
|
|
|
Danil Asotsky
|
Mar 31, 2010 - 12:43 PM
|
Hello, I have CExtGridWnd placed in CExtResizableDialog and I add anchors to CExtGridWnd control to fit all dialog window.My grid has a fixed number of columns. I need to make total width of columns equal to width of grid control and automatically resize columns when dialog window size is changed. E.g. user could not have horizontal scroll bar in grid and could not see any free area at the right side of the grid. Can you propose some simple way to implement such behaviour of CExtGridWnd control?
|
|
|
Danil Asotsky
|
Apr 1, 2010 - 9:34 AM
|
Thank you! It’s work fine.
|
|
|
Technical Support
|
Apr 1, 2010 - 6:36 AM
|
First of all, your grid window should not use the horizontal scroll bar. This means you should specify the __ESIS_STH_NONE style (not the __ESIS_STH_ITEM or __ESIS_STH_PIXEL styles) using the SiwModifyStyle() API. Second, you should tell the grid control that it should perform automatic proportional resizing. This means you should specify the __EGBS_BSE_EX_PROPORTIONAL_COLUMN_WIDTHS style using the BseModifyStyleEx() API. The automatic proportional resizing for columns works only of the horizontal scrolling is disabled.
|
|
|
Cho jiyeon
|
Mar 31, 2010 - 6:29 AM
|
Hi. I have a question about CExtGridCell. I want to use text in GridCell. The Text is not string, Perhaps, The Text is drawn by TextOut or DrawText. I want to draw picture of simbol of text. Or, The simbol of text is similler like Charcter map of Windows How to use? I want exam or sample code.
|
|
|
Technical Support
|
Mar 31, 2010 - 8:23 AM
|
You can draw your specific text into a memory bitmap and then display this bitmap using the CExtGridCellPicture grid cell.
|
|
|
Borremans Pierre
|
Mar 30, 2010 - 6:43 AM
|
Is it possible to change the text color in a CExtMsgBox ?
|
|
|
Technical Support
|
Mar 30, 2010 - 12:29 PM
|
You should use your own CExtMsgBox-derived class and override the OnInitDialog() virtual method. Your method should invoke the parent class method and then colorize the label control displaying the message text. For example, this line of code makes the message text red: m_wndLabelMsgBoxMessageText.SetTextColor( true, RGB(255,0,0) );
|
|
|
park ki tae
|
Mar 26, 2010 - 10:11 PM
|
I Want to check a state of checkbox item in the CExtTreeCtrl, so I add a NM_CLICK notification handling function and run program. When i click checkbox, but the HitTest(pt,&uFlags) returns TVHT_ONITEMRIGHT So i changed CExtTreeCtrl to CTreeCtrl and run. When i click checkbox, the HitTest(pt,&uFlags) returns TVHT_ONITEMSTATEICON correctly What’s the problem? BOOL CTestDlg::OnInitDialog()
{
CDialog::OnInitDialog(); HTREEITEM root = m_tree.InsertItem("D", NULL, NULL); HTREEITEM item = m_tree.InsertItem("1", root, NULL);
m_tree.TreeItemInfoGet( item ).m_eCheckBoxType = CExtTreeCtrl::e_cbt_check_box;
m_tree.InsertItem("2", root, NULL); return TRUE; // return TRUE unless you set the focus to a control
} void CTestDlg::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
UINT uFlags;
//HTREEITEM hClickedItem = m_ItemTree.HitTest(pt, &uFlags);
DWORD pos = GetMessagePos();
CPoint pt(LOWORD(pos), HIWORD(pos));
m_tree.ScreenToClient(&pt);
HTREEITEM hClickedItem = m_tree.HitTest(pt,&uFlags); if( hClickedItem != NULL && (uFlags & TVHT_ONITEMSTATEICON)!= 0 )
{ }
*pResult = 0;
}
|
|
|
Technical Support
|
Mar 29, 2010 - 12:32 PM
|
The tree view common control does not support check boxes on very old Windows OS versions which are still supported by the Prof-UIS library. The CExtTreeCtrl control implements its own check boxes and radio buttons which are not based on the check boxes provided by the tree view common control. Besides, the CExtTreeCtrl control supports the per-tree-item check boxes and radio buttons. I.e. you can make only some of tree items displaying check boxes and radio buttons. The CExtTreeCtrl control also provides advanced features like attached controls. These features cannot be found in the tree view common control. As result, we had to provide our own APIs for working with the tree rows of the CExtTreeCtrl control and our own virtual methods for handling the CExtTreeCtrl control events. Please use the CExtTreeCtrl::TreeItemHitTest() method and the __EXT_TVHT_*** for hit testing tree items. The CExtTreeCtrl::OnTreeMouseClick() virtual method provides detailed information about the tree control mouse click event with detailed hittesting information.
|
|
|
park ki tae
|
Mar 26, 2010 - 7:52 PM
|
I want to use CExtTreeCtrl Class in Working Thread. but i can’t ! for example when i’m going to change treeitem color in worktread, i must use this function ( "TreeItemInfoGet( hitem ).m_clrTextNormal = color" ) but program is crashed because ot the ASSERT_VALID(this). Is It Impossible to use CExtTreeCtrl in workthread? please let me know. thanks CExtTreeCtrl::TREEITEMINFO_t * CExtTreeCtrl::TreeItemInfoGetPtr( HTREEITEM hti )
{
ASSERT_VALID( this );
if( hti == NULL )
{
ASSERT( false );
::AfxThrowUserException();
}
TREEITEMINFO_t * pTII = NULL;
if( ! m_mapItemInfo.Lookup( hti, pTII ) )
return NULL;
ASSERT( pTII != NULL );
return pTII;
}
|
|
|
Technical Support
|
Mar 29, 2010 - 12:31 PM
|
All the themed by Prof-UIS paint manager controls are not multithread safe. The paint manager component is the compound component which draws all the parts of all the themed UI elements. The paint manager caches many GDI objects. The GDI library is not multithreaded. As result, the paint manager and all the themed Prof-UIS controls, including the CExtTreeCtrl control, are not multithreaded. Please create all the UI elements of your app in the main UI thread and make your worker threads performing their heavy work in the background and without explicit UI access. All the well-known Microsoft’s applications are based on this single threaded UI design.
|
|
|
Borremans Pierre
|
Mar 26, 2010 - 4:55 AM
|
I use a CExtTreeGridWnd and I want when a child Item is too smal to resize it automaticaly. I try with the function BestFitRow but nothing change. How to ? thanks
|
|
|
Technical Support
|
Apr 8, 2010 - 9:57 AM
|
The grid controls do not resize the rows/columns automatically during initialization. You should invoke the CExtGridWnd::BestFitRow() method after initializing all the row cells.
|
|
|
Borremans Pierre
|
Apr 12, 2010 - 6:12 AM
|
thanks with all reply I find the solution for my problem
|
|
|
Borremans Pierre
|
Apr 2, 2010 - 2:11 AM
|
Ok but the option wrap text works only for text on two lines ? In my application the text is a file’s path. Is it possible to have a text on more than two lines ? thanks
|
|
|
Borremans Pierre
|
Apr 2, 2010 - 2:16 AM
|
ok I find the solution for the wrap text problem
|
|
|
Technical Support
|
Mar 26, 2010 - 11:48 AM
|
The variable row height feature requires two things:
1) The __EGBS_FIXED_SIZE_ROWS grid style must be absent.
2) The grid control should contain one outer header column on left and the CExtGridCellHeader grid cells should be instantiated in it. These header cells keep information about row heights. If you don’t need to see any outer header columns in your tree grid, then you can make the header column zero width using the CExtGridWnd::OuterColumnWidthSet() method.
|
|
|
Borremans Pierre
|
Apr 7, 2010 - 5:52 AM
|
I try it and I can manualy resize the row but when I insert a new row or subitem, the new row is not automaticaly resizing
|
|
|
Oliver Rau
|
Mar 26, 2010 - 4:29 AM
|
Dear ProfUIS-Team,
is there an easy way to expand the combobox "Choose commands from:" within the Ribbonbar’s QATB setup options page by a ’File’ entry for the commands that can be found under the file button (e.g. "New", "Open", "Save" ...)? Currently these commands can only be found under the "All commands" item.
Best regards,
Martin
|
|
|
Technical Support
|
Mar 29, 2010 - 12:33 PM
|
We hope very much that each newer version is better than any older. If you have no restrictions in switching into the newer version, then please drop us an e-mail to the support mail box so we will provide you with the source code update. If you cannot switch to the newer version, then we will try to mix the required feature with 2.87 for you.
|
|
|
Technical Support
|
Mar 26, 2010 - 11:47 AM
|
The Choose commands from: combo box contains the Application button combo box item in Prof-UIS 2.88.
|
|
|
Oliver Rau
|
Mar 29, 2010 - 9:21 AM
|
Is it possible to get this functionality with version 2.87, too?
|
|
|
park ki tae
|
Mar 25, 2010 - 11:02 PM
|
BOOL CPageListCtrl::OnInitDialog() { .... INT nColumnCount = 5, nColumnIndex;
for( nColumnIndex = 0; nColumnIndex < nColumnCount; nColumnIndex ++ )
{
CExtSafeString strColumnCaptionText;
// strColumnCaptionText.Format( _T("Column %02d"), nColumnIndex ); strColumnCaptionText.Format( _T("%d"), nColumnIndex );
m_wndList.InsertColumn( nColumnIndex, strColumnCaptionText, LVCFMT_LEFT, 150 );
} .... } i changed the code above and complie in WIN32 MBCS Mode and run. then the program is crashed when i click ListView Button but in VC 7.1, there is no problem.
|
|
|
Technical Support
|
Mar 26, 2010 - 9:39 AM
|
Thank you for reporting this issue. You can fix it by updating the following two methods:
void CExtHeaderCtrl::OnPaint()
{
ASSERT_VALID( this );
CRect rcClient;
GetClientRect( &rcClient );
CPaintDC dcPaint( this );
CExtMemoryDC dc( &dcPaint, &rcClient );
OnEraseHeaderBackground( dc, rcClient );
INT nColNo, nColCount = INT(GetItemCount());
for( nColNo = 0; nColNo < nColCount; nColNo++ )
{
CRect _rcItemEntire;
if( ! GetItemRect( nColNo, &_rcItemEntire ) )
continue;
if( ! dc.RectVisible( &_rcItemEntire ) )
continue;
HD_ITEM _item;
::memset( &_item, 0, sizeof(HD_ITEM) );
_item.mask = UINT(-1);
TCHAR strText[ 1024 ];
::memset( strText, 0, sizeof(strText) );
_item.cchTextMax = sizeof( strText ) / sizeof( strText[0] );
_item.pszText = strText;
GetItem( nColNo, &_item );
OnPaintHeaderItem( dc, _item, nColNo, _rcItemEntire );
}
}
CSize CExtHeaderCtrl::OnCalcHeaderItemSize(
INT nColNo
) const
{
ASSERT_VALID( this );
if( GetSafeHwnd() == NULL )
return CSize( 0, 0 );
INT nColCount = INT( GetItemCount() );
ASSERT( 0 <= nColNo && nColNo < nColCount );
CExtPaintManager * pPM = PmBridge_GetPM();
ASSERT_VALID( pPM );
const EXTENDED_ITEM_DATA & _eii = ExtendedItemDataGet( nColNo );
CSize _sizeEntireItem( 0, 0 );
if( ! _eii.m_iconButton.IsEmpty() )
{
CSize sizeButton = _eii.m_iconButton.GetSize();
INT nButtonPaddingBefore = 0, nButtonPaddingAfter = 0;
pPM->Header_GetButtonPadding( nButtonPaddingBefore, nButtonPaddingAfter, nColNo, nColCount, (CObject*)this );
sizeButton.cx += nButtonPaddingBefore + nButtonPaddingAfter;
_sizeEntireItem.cx += sizeButton.cx;
_sizeEntireItem.cy = max( _sizeEntireItem.cy, sizeButton.cy );
}
if( ! _eii.m_iconItem.IsEmpty() )
{
INT nBetweenIconAndText = pPM->Header_GetDistanceBetweenIconAndText( nColNo, nColCount, (CObject*)this );
CSize _sizeIcon = _eii.m_iconItem.GetSize();
_sizeIcon.cx += nBetweenIconAndText;
_sizeEntireItem.cx += _sizeIcon.cx;
_sizeEntireItem.cy = max( _sizeEntireItem.cy, _sizeIcon.cy );
}
INT nSortRuleNo = m_sortOrder.GetColPos( nColNo );
if( nSortRuleNo >= 0 )
{
INT nBetweenIconAndSortArrow = pPM->Header_GetDistanceBetweenIconAndSortArrow( nColNo, nColCount, (CObject*)this );
INT nSortArrowExtent = pPM->Header_GetSortArrowWidth( nColNo, nColCount, (CObject*)this );
_sizeEntireItem.cx += nSortArrowExtent + nBetweenIconAndSortArrow;
}
HD_ITEM _item;
::memset( &_item, 0, sizeof(HD_ITEM) );
_item.mask = UINT(HDI_TEXT);
TCHAR strText[ 1024 ];
::memset( strText, 0, sizeof(strText) );
_item.cchTextMax = sizeof( strText ) / sizeof( strText[0] );
_item.pszText = strText;
GetItem( nColNo, &_item );
CExtSafeString s;
s = _item.pszText;
CFont * pFont = &pPM->m_FontNormal; //GetFont();
if( pFont->GetSafeHandle() == NULL )
pFont = &(pPM->m_FontNormal);
CClientDC dc( (CWnd*)this );
CSize _sizeText = CExtPaintManager::stat_CalcTextDimension( dc, *pFont, s ).Size();
_sizeEntireItem.cx += _sizeText.cx;
_sizeEntireItem.cy = max( _sizeEntireItem.cy, _sizeText.cy );
CRect rcItemPadding = pPM->Header_GetItemPadding( nColNo, nColCount, (CObject*)this );
_sizeEntireItem.cx += rcItemPadding.left + rcItemPadding.right;
_sizeEntireItem.cy += rcItemPadding.top + rcItemPadding.bottom;
return _sizeEntireItem;
}
|
|
|
Bart Kampers
|
Mar 25, 2010 - 9:39 AM
|
Hello, I inserted a CExtGridCellSlider in a CExtGridWnd. When this cell is not editing it shows a value in stead of the slider. Can I make this cell show the slider always? Kind regards, Bart.
|
|
|
Technical Support
|
Mar 25, 2010 - 2:33 PM
|
Please use the CExtGridCellInplaceSlider in-place slider grid cell class.
|
|
|
mohamed abdou
|
Mar 25, 2010 - 6:32 AM
|
Hello there, it is a simple question i need to buy a Prof-UIS One User License with 90 Days Technical does that mean that i can’t use it after 90 days or just i can’t benefit from the technical services? thanks...
|
|
|
Technical Support
|
Mar 25, 2010 - 8:00 AM
|
Thank you for your interest in Prof-UIS. When you buy a license, you are granted the right to use the software forever. The supported period in any item’s name (e.g. 90 Days Technical Support) means the following:
- You can get any new versions and updates during the supported period for free. - You can post your questions to the technical support forum or to the support mailbox and get priority support from the tech support team.
|
|
|
park ki tae
|
Mar 25, 2010 - 1:01 AM
|
first all i’m sorry i’m not good at english. i have a problem using CExtTabMdiWhidbeyWnd . when i created child view in UI Thread, no ploblem but when i created child view in Multi Thread, it occur problem. attach homepage address including screen captrue jpg file. i can’t find the reason why this problem occur. http://blog.naver.com/nowan4ever/memo/30083138264
|
|
|
Technical Support
|
Mar 31, 2010 - 8:24 AM
|
Please try implementing the following in your multithreaded project:
- If the worker thread changes the MDI child frame widow title or its document title, then it should send some (WM_USER+123) message to the main frame window.
- The main frame window should handle the (WM_USER+123) message. The message handler should invoke the CExtTabWnd::UpdateTabWnd() method of the Whidbey MDI tabs control.
We believe this solution will provide the MDI tab items with the correct size and layout.
|
|
|
park ki tae
|
Mar 30, 2010 - 2:31 AM
|
Thank for your answer. I Watch out the OnTabWndQueryItemText() Function. But Thereis no differencem, pActiveDoc->GetTitle() returns same value. So I follow the function step by step... i found the difference in " void CExtTabWhidbeyWnd::stat_OnTabWndDrawItemWhidbeyImpl()" Function. The rcEntireItem Parameter Value is different. rcEntireItem value In UI Thread Is " {top=6 bottom=21 left=13 right=126} "
rcEntireItem value In WorkThread Is " {top=3 bottom=20 left=1 right=25}" The rcEntireItem Recr’s width is 5. So it is not enough to short drawing The Document Title Text In WorkThread.
|
|
|
Technical Support
|
Mar 25, 2010 - 7:53 AM
|
The CExtTMWI::OnTabWndQueryItemText() virtual method provides MDI tab items with text strings. It can use the CDocument::GetTitle() API in the single threaded version of your application. It can use the CWnd::GetText() API in the multithreaded version of your application. It’s possible the document title and MDI child frame window text is different. You can setup breakpoint into the CExtTMWI::OnTabWndQueryItemText() method and debug it in both versions of your application to see the difference.
|
|
|
park ki tae
|
Mar 30, 2010 - 2:32 AM
|
Thank for your answer. I Watch out the OnTabWndQueryItemText() Function. But Thereis no differencem, pActiveDoc->GetTitle() returns same value. So I follow the function step by step... i found the difference in " void CExtTabWhidbeyWnd::stat_OnTabWndDrawItemWhidbeyImpl()" Function. The rcEntireItem Parameter Value is different. rcEntireItem value In UI Thread Is " {top=6 bottom=21 left=13 right=126} "
rcEntireItem value In WorkThread Is " {top=3 bottom=20 left=1 right=25}"
The rcEntireItem Recr’s width is 5. So it is not enough to short drawing The Document Title Text In WorkThread
|