Subject |
Author |
Date |
|
Alastair Watts
|
Apr 1, 2012 - 7:41 AM
|
Is it possible to have 2 buttons in a grid cell, eg: __EBTT_DROPDOWN & __EBTT_UPDOWN* Thanks in advance
|
|
Technical Support
|
Apr 2, 2012 - 2:40 PM
|
Sure. The ellipsis, up-down and drop-down buttons are built-in and can be turned on/off in any grid cell. The following cell styles can be applied to show appropriate built-in cell buttons:
// have up-down button
#define __EGCS_BUTTON_UPDOWN 0x00400000L
// have drop-down button
#define __EGCS_BUTTON_DROPDOWN 0x02000000L
// have ellipsis button
#define __EGCS_BUTTON_ELLIPSIS 0x08000000L
|
|
Andreas Spachtholz
|
Mar 29, 2012 - 12:53 PM
|
Hi, I would like to change the colour of the border of the main fram of our application. Exactly I would like to let the colour change between two colours every second.
I already searched the forum and played around with WM_NCPAINT, but didn’t find the correct way.
Could you please help me !
Thanks a lot.
BR, Andreas
|
|
Technical Support
|
Apr 2, 2012 - 2:42 PM
|
You should start a timer and send the WM_NCPAINT message from your timer handler. The WM_NCPAINT message should draw what you need into the window device context with an excluded client area rectangle. You should also disable the window glass provided by DWM when running on Windows Vista or 7. This can be done using the DwmSetWindowAttribute() API invocation (you can see how we did this in the CExtNcFrameImpl::NcFrameImpl_AdjustVistaDwmCompatibilityIssues() method).
But ... You can simply use the standard FlashWindow() Win32 API which does what you need using system defined colors and style.
|
|
Barbara Roth
|
Mar 28, 2012 - 1:17 PM
|
I have an MDI application. I want to show a list of the currenly open MDI windows, so I call SetMdiWindowPopupName which does show all the open MDI windows. Is their a simple method that I can use to pick and choose which MDI windows I want to show if I don’t want to show all of them?
|
|
Technical Support
|
Apr 2, 2012 - 2:42 PM
|
You should avoid using the SetMdiWindowPopupName() API and implement MDI window list from scratch. Please insert some command item into any menu(s) where you want to see MDI window list. This command item we call marker item because your app will search it for removing and inserting a set of MDI menu items instead of it. So, the first thing you need is to add message handler for the CExtPopupMenuWnd::g_nMsgPrepareOneMenuLevel message into your main frame class:
ON_REGISTERED_MESSAGE( CExtPopupMenuWnd::g_nMsgPrepareOneMenuLevel, OnExtMenuPrepare )
LRESULT CMainFrame::OnExtMenuPrepare(WPARAM wParam, LPARAM lParam)
{
lParam;
CExtPopupMenuWnd::MsgPrepareMenuData_t * pData =
reinterpret_cast
< CExtPopupMenuWnd::MsgPrepareMenuData_t * >
( wParam );
ASSERT( pData != NULL );
CExtPopupMenuWnd * pPopup = pData->m_pPopup;
ASSERT( pPopup != NULL );
for( INT nReplacePos = pPopup->ItemFindPosForCmdID( ID_MY_MARKER_MENU_ITEM ); nReplacePos >= 0; nReplacePos = pPopup->ItemFindPosForCmdID( ID_MY_MARKER_MENU_ITEM ) )
{
VERIFY( pPopup->ItemRemove( nReplacePos ) );
//
// TO-DO: detect all required MDI documents and insert appropriate menu items into nReplacePos position of the pPopup menu here
//
} // if( nReplacePos >= 0 )
return 1L;
}
The standard MDI menu command items are sequential starting from the __ID_MDIWNDLIST_FIRST identifier. The maximum command count is __ID_MDIWNDLIST_COUNT . These commands are handled automatically. But you cannot use these command identifiers because your MDI menu contains only optionally selected MDI windows. This means you should use your own range of commands and handle them manually in main frames OnCmdMsg() virtual method.
|
|
Alastair Watts
|
Mar 20, 2012 - 4:15 AM
|
I’ve added a button menu to CExtPropertyGridToolBar but it is displayed above the toolbar. How do I make it appear below? Thanks.
|
|
Technical Support
|
Apr 2, 2012 - 2:41 PM
|
If a toolbar is top-docked in its parent window, then menus displayed from its windows are bottom-oriented. The same opposite rule is applied to the toolbars docked to other sides. How are you initializing your button and its menu?
|
|
Alastair Watts
|
Mar 30, 2012 - 2:04 AM
|
|
|
Alastair Watts
|
Mar 23, 2012 - 1:23 AM
|
I meant the position of the menu!
|
|
Technical Support
|
Mar 22, 2012 - 1:23 PM
|
The toolbar always organizes all its buttons in one row. It’s not possible to put a button into a toolbar and above it. Please provide us with some more details and a screenshot.
|
|
Alastair Watts
|
Mar 14, 2012 - 10:37 AM
|
|
|
Technical Support
|
Mar 16, 2012 - 6:46 AM
|
First, of all, you should get the active tree grid window inside the property grid control:
CExtPropertyGridCtrl * pPGC = . . .
CExtPropertyGridWnd * pPGW = GetActiveGrid();
if( pPGW == NULL )
return . . .
Second, you should get the focused tree item: HTREEITEM hti = pPGW->ItemFocusGet();
if( hti == NULL )
return . . .
Third, you should get property item which corresponds to the focused tree item. CExtPropertyItem * pPI = pPGW->PropertyItemFromTreeItem( hti );
if( pPI == NULL )
return . . .
Fourth, the property item can be a property category. User always change property values - not categories. So, you should also check whether focused row in tree grid is property value row: CExtPropertyValue * pValue = DYNAMIC_DOWNCAST( CExtPropertyValue, pPI );
if( pValue == NULL )
return . . .
|
|
Celal Sen
|
Mar 13, 2012 - 8:15 AM
|
|
|
Alastair Watts
|
Mar 6, 2012 - 6:08 AM
|
I’m having a few problems when using white-space: nowrap
If I type the following into RichContentFeatures.exe the text TWO isn’t displayed. I’m a complete novice with HTML but it works OK in a browser!
<html>
<p style="white-space: nowrap">
ONE<b>TWO</b>THREE
</p>
</html>
|
|
Technical Support
|
Mar 8, 2012 - 6:25 AM
|
Thank you for reporting this issue. To fix it, please update the source code for the following method:
void CExtRichContentItem::ComputeLinearListForParagraph(
CTypedPtrList < CPtrList, CExtRichContentItem * > & _listItems
, bool bParentIsParagraph // = false
)
{
if( m_eType == __EHIT_TEXT_RANGE
|| m_eType == __EHIT_TEXT_SPACE
|| ( bParentIsParagraph
&& ( IsParagraphItem()
|| QueryGenericTagName() == _T("img")
|| GetDisplay() == CExtRichStyleDescription::ed_table
|| GetDisplay() == CExtRichStyleDescription::ed_inline_table
|| GetDisplay() == CExtRichStyleDescription::ed_inline_block
)
)
)
_listItems.AddTail( this );
if( bParentIsParagraph )
return;
POSITION pos = m_listItems.GetHeadPosition();
for( ; pos != NULL; )
{
CExtRichContentItem * pRCI = m_listItems.GetNext( pos );
__EXT_DEBUG_RICH_CONTENT_ASSERT( pRCI != NULL );
if( pRCI->m_eType == __EHIT_GENERIC_TAG )
{
CExtRichStyleDescription::e_position_t eP = pRCI->GetPosition();
if( eP != CExtRichStyleDescription::ep_static && eP != CExtRichStyleDescription::ep_relative )
continue;
}
if( pRCI->GetDisplay() == CExtRichStyleDescription::ed_none
|| pRCI->GetDisplay() == CExtRichStyleDescription::ed_ui_dock
)
continue;
bool bParent =
( pRCI->IsParagraphItem()
|| pRCI->QueryGenericTagName() == _T("img")
|| pRCI->GetDisplay() == CExtRichStyleDescription::ed_table
|| pRCI->GetDisplay() == CExtRichStyleDescription::ed_inline_table
|| pRCI->GetDisplay() == CExtRichStyleDescription::ed_inline_block
|| pRCI->GetDisplay() == CExtRichStyleDescription::ed_inline_block
);
pRCI->ComputeLinearListForParagraph( _listItems, bParent );
} // for( ; pos != NULL; )
}
|
|
Emmanuel V.
|
Mar 5, 2012 - 9:50 AM
|
Hi, In my application, I’m using a CExtGridCellSystemNumber in a CExtPropertyGridCtrl. I set a range m_pCell->RangeSet(0.0, 1.0) to the cell, but when I enter a value out of range, the cell is flicking and the application is frozen for about 10 secondes ! I already used this outside a PropertyGrid. Is it a bug specific to the PropertyGrid ? Thanks.
|
|
Emmanuel V.
|
Mar 12, 2012 - 2:22 AM
|
Hi, I tried also with your sample, and I got the same strange behavior : in the cell, erase previous value and type "10000". When the fourth 0 is typed, the value seems corrected to something like "10e0" many times, and then corrected to "10000" (max is 1000). It is finally corrected to "1000" when focus is loosed. It’s faster than in my application : in your sample the value is switching for 1 second, in my application it took 10 seconds. If it can help you : I’m using VisualStudio 6.0, with Prof-UIS v2.92, on Windows 7 32bits, french language. I compiled with your sample modified according to your previous message. No other modification. Thanks.
|
|
Technical Support
|
Mar 8, 2012 - 6:25 AM
|
We added the following code to the end of the CStarButton::GetPropertyStore() method in the PropertyGrid sample application:
. . .
CExtPropertyValue * pValSystemNumber = new CExtPropertyValue( _T("System Number") );
pValSystemNumber->NameSet( _T("System Number") );
pValSystemNumber->DescriptionSet( _T("System Number.") );
CExtGridCellSystemNumber * pCellSystemNumber = STATIC_DOWNCAST( CExtGridCellSystemNumber, pValSystemNumber->ValueDefaultGetByRTC( RUNTIME_CLASS( CExtGridCellSystemNumber ) ) );
pCellSystemNumber->LongDoubleSet( ((long double)::rand()) + ((long double)::rand())/1000 );
pCellSystemNumber->RangeSet( 0.0, 1000.0 );
pValSystemNumber->ValueActiveFromDefault();
pCategoryMisc->ItemInsert( pValSystemNumber );
return m_pPS;
}
This made each star button displaying a CExtGridCellSystemNumber cell in its properties. But we didn’t notice any lags.
|
|
Wilhelm Falkner
|
Feb 29, 2012 - 2:01 AM
|
Dear support team, like most of your customers, I have all my progs written with traditional menus. But as time goes by, I want now to switch to ribbons. Waht I’m missing ist a short tutorial, how to do this. Starting with a traditional MDI application, replacing now menu with ribbon. Not starting a new project! And, like most of your customers, I’m not writing progs for myself. So I have to take care of existing customers, customers, they are using my progs for years. And like most of teh customers, they want to have new things, but don’t loose features. So, what I want to do? Updating my existing progs, adding ribbon feature. But keep also old meu. Not displayed at the same time, but switchable. You have articles, how to come from CDialg to CExtResizableDialog. Do you also have a description to come from menu to ribbon? TIA Willi
|
|
Technical Support
|
Mar 1, 2012 - 8:58 AM
|
The ribbon bar replaces both a menu bar and toolbars. It’s possible to use toolbar resources for initializing ribbon icons because the ribbon bar is a very advanced version of a toolbar. But it’s not possible to use menu resources for initializing the ribbon bar’s content. A menu tree is not similar to a command tree, which is used by the ribbon bar. The top level of a menu tree does not exactly correspond to ribbon tabs. The ribbon uses additional types of items which are new: galleries, different types of button groups, an application menu in Office 2007 or a backstage view in Office 2010, quick access toolbar buttons and buttons on the right of tabs. Ribbon buttons also contain rules describing how a ribbon layout is compressed when there is not enough horizontal space to display all the buttons.
This means there is no conversion procedures between toolbars, menus and the ribbon bar. You can simply create a ribbon bar, initialize tab pages, button groups and buttons one by one until menu bar and toolbars will not be needed. Then remove menu bar and toolbar. You will need to think about how to organize and group your commands inside ribbon, which buttons should display menus, which buttons should appear as check boxes, where and whether to use galleries and what should be displayed in application menu or backstage view. You can copy paste ready to use functions initializing ribbon button groups from the RibbonBar sample application. But it’s much more important to design entire ribbon layout well. Some apps are small and they have no enough commands to fill even one ribbon tab page. You can use CExtRibbonPage control instead of CExtRibbonBar in such small apps.
|
|
Walter Eicher
|
Feb 20, 2012 - 9:11 AM
|
Hi! I made a simple example using the CExtShellDialogFile void CTestProfUISView::OnFileOpen ()
{
CString strPathName;
CExtShellDialogFile dlgShellFile (NULL, CExtShellDialogFile::__EFDT_OPEN_SINGLE);
dlgShellFile.m_comboFileTypes.SetFilter(
_T("Bitmap files (*.bmp)|*.bmp|")
_T("All files (*.*)|*.*|")
_T("|")
);
dlgShellFile.m_nInitialFileTypeIndex = 0;
dlgShellFile.m_bFilesMustExist = true;
if( dlgShellFile.DoModal() != IDOK )
return;
ASSERT( dlgShellFile.m_arrRetValNames.GetSize() == 1 );
strPathName = LPCTSTR(dlgShellFile.m_arrRetValNames[0]);
} On some PC’s ist working perfectly but on some the application goes to not responding for about 4 Minutes when pressing the Open or Cancel Button. Then I build the BitmapEditor-u.exe and now it gets crazy :-( on some PC’s my Example is working and the Bitmap Editor goes to not responding and on others the Bitmap Editor is working and my Example goes to not responding. The PC’s I used for the test are 3 IPC’s with Win7 Pro 32 Bit SP1 E8500 3.16GHZ 2GB Ram -> different results even on these 3 PC’s.
One DELL Precision M6500 Win7 Pro 64Bit SP1 X920 2.0GHz 8GB Ram
One DELL Optiplex 745 Win7 Enterprise 32 Bit SP1 6600 2.4GHz 2GB Ram All Pc’s are up to date Feb 19.2012 Different results I get also when I run the examples from a local drive or a network drive. The BitmapEditor and my Example are compiled with VS2010 Unicode Dynamic Link to MFC this is what we use for all of our applications. Do you have any Idea how we can resolve this massive Bug? Best Regards
Walter
|
|
Walter Eicher
|
Feb 22, 2012 - 9:48 AM
|
Hi!
When I put in the following Sleep() Statements then the Open and Cancel Buttons of the CExtShellDialogFile dialog are working. That means, after the dialog is closed, I can immediatly reopen the dialog.
But that’s not a solution it’s only the evidence that someting is completely wrong!
ExtControlShell.cpp Line 461
_SL.Unlock();
_SLTP.Unlock();
Sleep (50); // Inserted this Sleep
::WaitForSingleObject( hThread, INFINITE );
ExtControlShell.cpp Line 472
_SL.Unlock();
_SLTP.Unlock();
Sleep (50); // Inserted this Sleep
::WaitForSingleObject( m_eventResponse, INFINITE );
But when closing the application it hangs in crtexe.c on Line 568 for at least 2 minutes.
I will not investigate this problem. I think this is your job!
Best Regards
Walter
|
|
Technical Support
|
Feb 29, 2012 - 12:59 PM
|
You put Sleep(50) into the thread procedure which watches folder modifications and lets shell controls to update their lists of displayed shell items automatically. If the Sleep(50) affects the behavior of shell controls in your app, you simply opened the shell file dialog in a folder which contains frequently updated content.
|
|
Walter Eicher
|
Feb 22, 2012 - 5:15 AM
|
Hi! Your answer does not fit to my Problem. At least the 3 IPC’s (Industrial PC’s) have no Network Connections, no Printer, no A: or B: diskette drivers and there was no CD in the CD Drive. The only thing they have is a C: and D: wich are partitions on the local HD. - This 3 PC’s have the same Hardware, Win7 Pro 32 Bit 1. IPC BitmapEditor is working correct, my TestProf-UIS is not responding 2. IPC BitmapEditor and my TestProf-UIS working correct 3. IPC BitmapEditor is not responding, my TestProf-UIS is working Then I made a Test on my Office PC with 7 network connected drives and 2 Network Printers. BitmapEditor and my TestProf-UIS working correct. The CExtShellFileDialog is not responding after I pressed the Open or Cancel Button on the CExtShellFileDialog and NOT when I open the Dialog! So I dont think its a problem with with the shell enumerations. For me it looks like a thread synchronsiation problem that would explain the different results on PC’s with the same Hardware. Best Regards
Walter
|
|
Technical Support
|
Feb 21, 2012 - 2:31 AM
|
Shell controls need to enumerate some count of shell namespace items during initialization. Local file system always enumerated very fast. But if your PC have diskette drive or A: and/or B: drives without physical diskette drives, then shell enumerations is much slower. The same is related to CD/DVD drives with bad disk inside. The network part of shell namespace and mapped to network drives (especially unavailable) are always much slower than file systems. Network part of shell namespace can be enumerated faster if network discovery is enabled on your PCs. Finally, believe or not, printing settings can simply kill performance of MFC app. If the default printer is a network printer and it’s unavailable or network connection to it poor, then say goodbye to performance.
|
|
Celal Sen
|
Feb 20, 2012 - 5:35 AM
|
We have two unanswered questions. One is posted on Dec 22, 2011 and the other is Feb 10, 2012. If you don’t have any answers, at least you can reply and say that you are working on it. We even e-mailed you about the problems but you did not reply. We have a lot of customers and we are facing big troubles because of these kinds of problems. We try to solve some of them by our own but in some cases we have to get support from you. And when the support comes very late or doesn’t even come, we are placed in difficult circumstances. So, once again we are asking you to provide solutions to the problems we have faced.
|
|
Technical Support
|
Mar 3, 2012 - 6:15 AM
|
It looks like a lost notification. We support only persistently linked spin windows and edit controls. If you need to disable "spinning" for some editor, please hide both editor and spin windows and show another second editor at the same location.
|
|
Bill Olson
|
Feb 29, 2012 - 8:24 PM
|
I’m in the same position. I posted a question on January 31 with no answer. When I first started using Prof-UIS, tech support was very fast and answered all questions. It’s seemed to be hit or miss the last few months. If tech support doesn’t have an answer for something and/or Prof-UIS is no longer going to be supported, I would like to know. Bill
|
|
Barbara Roth
|
Feb 15, 2012 - 10:25 AM
|
I am on a Windows 7 machine using Profuis 293 with multiple monitors When I maximize on my main monitor the form does change size, but there is a border around the form and does not take up the whole screen. (Does not look maximized) When I maximize on my left (other) monitor the form does maximize correctly. I am using you "Ribbon Bar" example.
|
|
Technical Support
|
Feb 17, 2012 - 2:09 AM
|
We cannot confirm this. We checked both Aero and XP like desktop modes, both with left main display and right main display configurations, both equal size displays and different size displays configurations. We also tried different Prof-UIS UI themes. The main frame window of the RibbonBar sample application maximized and restored correctly in each combination of configurations. Besides nobody reported similar issue yet. Please provide us with additional information about your computer’s UI settings, Prof-UIS UI settings, Prof-UIS build configuration used, Visual Studio its service pack version, any changes you may applied to Prof-UIS library and RibbonBar sample projects, any changes in compiler and linker settings.
|
|
Celal Sen
|
Feb 10, 2012 - 7:17 AM
|
We are using tooltip windows with icon size larger than 16x16. In this case, the tooltip window doesn’t show the icon correctly. In CExtPopupMenuTipWnd class,
HRGN CExtPopupMenuTipWnd::CalcRegion(
CDC & dc, CSize * pSize // = NULL ) { ... ... ...
CRect rcWnd = rcTextMeasure; e_tip_style_t eTS = GetTipStyle(); switch( eTS ) { case __ETS_BALLOON: case __ETS_BALLOON_NO_ICON: { rcWnd.InflateRect( m_sizeRounders ); -->> PROBLEM IS HERE if( eTS != __ETS_BALLOON_NO_ICON && (! m_icon.IsEmpty() ) ) { rcWnd.right += m_sizeRenderingIcon.cx + m_nIconMarginDX;
if( rcWnd.Height() < m_sizeRenderingIcon.cy ) -->> PROBLEM IS HERE rcWnd.bottom = rcWnd.top + m_sizeRenderingIcon.cy;
} ... ... }
rcWnd.Height() never becomes smaller than m_sizeRenderingIcon.cy when the icon size is, for example, 24x24. Because the InflateRect functions makes rcWnd.top negative. The solution I found is to move the line
rcWnd.InflateRect( m_sizeRounders );
below
if( rcWnd.Height() < m_sizeRenderingIcon.cy ) rcWnd.bottom = rcWnd.top + m_sizeRenderingIcon.cy;
If I’m wrong please provide an exact solution for this problem. Thanks.
|
|
Andreas Spachtholz
|
Feb 9, 2012 - 10:59 AM
|
Hi,
I try to put my own ContextMenu to the CExtComboBox, but up to now I couldn’t find the correct place where to exchange the standard Context Menu with my own.
How can I do this?
Thanks
BR, Andreas
|
|
Technical Support
|
Feb 10, 2012 - 3:28 AM
|
The the WM_CONTEXTMENU message handler is the most correct place to show a context menu. In particular UI design cases you may need to handle the right button click and context menu key and your show context in a special way in each of these cases. But the WM_CONTEXTMENU message handler is enough in most cases.
|
|
Hendrik Stephani
|
Feb 9, 2012 - 8:45 AM
|
Hello, ist there a way to change the height of a CExtHeaderCtrl? best regards,
Tobias
|
|
Technical Support
|
Feb 10, 2012 - 3:30 AM
|
|
|
Alastair Watts
|
Feb 8, 2012 - 10:00 AM
|
We constrain some cell values which works just fine, however, when PropertyStoreSynchronize() is called the cell displays the previous un-constrained value. What am I missing?
void CWidgetManagerPagePropertyValueHeaderSize::Apply(CExtGridCell* pValue)
{
ASSERT_VALID(this);
CWidgetManagerPagePropertyValueBase::Apply(pValue);
if(m_pPaperCtrl == NULL)
return;
CExtGridCellUpDown* pValueUpDown = STATIC_DOWNCAST(CExtGridCellUpDown, ((pValue == NULL) ? ValueActiveGet() : pValue));
m_pPaperCtrl->SetPageHeaderSize(pValueUpDown->lVal);
UINT nNewValue = m_pPaperCtrl->GetPageHeaderSize();
pValueUpDown->_VariantAssign(nNewValue, VT_I4);
}
void CWidgetManagerPropertiesCtrl::OnPgcInputComplete( CExtPropertyGridWnd* pPGW,
CExtPropertyItem* pPropertyItem )
{
CExtPropertyGridCtrl::OnPgcInputComplete(pPGW, pPropertyItem);
if( pPropertyItem->IsKindOf(RUNTIME_CLASS(CWidgetManagerPagePropertyValueHeader)) ||
pPropertyItem->IsKindOf(RUNTIME_CLASS(CWidgetManagerPagePropertyValueFooter)) ||
pPropertyItem->IsKindOf(RUNTIME_CLASS(CWidgetManagerPagePropertyValueBorderType)) ||
pPropertyItem->IsKindOf(RUNTIME_CLASS(CWidgetManagerPropertyValueBkgndType)) ||
pPropertyItem->IsKindOf(RUNTIME_CLASS(CWidgetManagerPropertyValueTextFormat)) )
{
PropertyStoreSynchronize();
}
}
|
|
Technical Support
|
Feb 17, 2012 - 11:36 AM
|
The CWidgetManagerPropertiesCtrl::OnPgcInputComplete() method invokes the PropertyStoreSynchronize() API just for particular cell types and without performing any additional actions. You need to invoke PropertyStoreSynchronize() API only if your code changes some properties and needs to make changes visible in tree grid windows inode property grid control. In all the other cases property grid control takes care about performing any value synchronizations. The CWidgetManagerPagePropertyValueHeaderSize::Apply() should invoke the parent class Apply() method finally - not initially. Please fix this.
|
|
Alastair Watts
|
Feb 17, 2012 - 4:24 AM
|
The problem occurs using the standard CExtGridCellUpDown class and not one derived from it. I got it working by deriving from CExtGridCellUpDown & contsraining the value there. I think its a better solution as the up/down buttons are now enabled/disabled.
|
|
Technical Support
|
Feb 17, 2012 - 2:10 AM
|
|
|
Alastair Watts
|
Feb 14, 2012 - 4:07 AM
|
|
|
Alastair Watts
|
Feb 7, 2012 - 9:06 AM
|
Is it possible to test whether the value has changed in OnPgcInputComplete() ?
|
|
Alastair Watts
|
Feb 10, 2012 - 12:15 AM
|
|
|
Technical Support
|
Feb 9, 2012 - 12:29 PM
|
No. This can be done in the CExtGridCell::OnInplaceControlTextInputVerify() and CExtGridWnd::OnGridCellInplaceControlTextInputVerify() virtual methods. There are a set of similar methods for other cell types available. You may need to create your own CExtPropertyGridWndCategorized -derived and CExtPropertyGridWndSorted -derived tree grid classes and instantiate them in the overriden CExtPropertyGridCtrl::OnPgcCreateGrids() virtual method. Your tree grids may implement the CExtGridWnd::OnGridCellInplaceControlTextInputVerify() virtual method.
|
|
Bill Olson
|
Jan 31, 2012 - 3:34 AM
|
I have a control bar which is similar to the MDI_DynamicInnerOuterBars example (I started with this sample to add the bars) with an inner bar derived from CExtResizableDialog on the panel. I have a number of controls on the panel including some edit boxes with spinner controls attached. Some of the edit boxes and related spinners are always on, others are turned on by various conditions in the program. I turn the controls on and off with calls to ShowWindow() and EnableWindow().
The spinners that are always on have no problems, but the spinners that can be turned on and off sometimes are not visible when they should be enabled and visible, but they appear when I mouse over them. When the spinners are doing this behavior, the related edit box, and other controls enabled at the same time are visible without any issues.
The only difference in the different spinner controls is some are always enabled and always visible, and some are made visible and invisible in the program and show up invisible sometimes. I have tried just making the controls invisible with ShowWindow(), but I get the same behavior.
All controls are declared with the Prof UIS functions.
I can send some screen shots if you want. I haven’t tried reproducing this in a stripped down program yet. I was hoping you knew what was going on.
|
|
Bill Olson
|
Jun 7, 2012 - 8:30 PM
|
For the sake of someone else who may run into this in the future, I fixed this problem. The control was inside a Group Box pretty much for aesthetics. In the .RC file, the Group Box was listed first followed by the edit box and finally the spin control. For some reason when these controls are made invisible and then made visible, if the Group Box comes first in the .RC file, the spinner will be invisible until moused over when it is made visible. I moved the Group Box below the Edit and Spinner in the .RC file and it now enables fine. Bill
|
|
Bill Olson
|
Mar 8, 2012 - 2:43 AM
|
I didn’t get notified when you answered this. Thanks for responding. The spinner and editor are both disabled and made invisible at the same time. I never have just an edit box with no spinner. Would the order with which they were made invisible or visible have something to do with it? Bill
|
|
Technical Support
|
Mar 3, 2012 - 6:16 AM
|
We support only persistently linked spin windows and edit controls. If you need to disable "spinning" for some editor, please hide both editor and spin windows and show another second editor at the same location.
|
|
Bill Olson
|
Feb 21, 2012 - 3:40 AM
|
It’s been three weeks. No answer?
|
|
Jeff Mayo
|
Jan 30, 2012 - 1:52 PM
|
Using version 2.91. If I create a CExtGridCellDateTime as follows:
CExtGridCellDateTime* pCell =
STATIC_DOWNCAST(
CExtGridCellDateTime,
pGrid->GridCellGet(
nCol++,
nRow,
0L,
0L,
RUNTIME_CLASS(CExtGridCellDateTime)
)
);
if (pCell != NULL) {
COleDateTime dtValue;
dtValue.ParseDateTime(paramValue);
pCell->SetMode(CTcsGridCellDateTime::all);
pCell->SetTimeFormat(CTcsGridCellDateTime::h24);
pCell->SetDateTime(dtValue);
} When I click on one of the time fields to edit them the text changes from "1/30/2012 0:00:00" to "1JanJanuary/30/20120:00:00". Is there something I am not configuring correctly?
|
|
Technical Support
|
Feb 1, 2012 - 7:47 AM
|
Thank you for reporting this issue. Please drop us an e-mail to the support mail box at this web site so we will provide you with the source code update.
|
|
Jeff Mayo
|
Jan 30, 2012 - 1:57 PM
|
Should be correct this time:
CExtGridCellDateTime* pCell =
STATIC_DOWNCAST(
CExtGridCellDateTime,
pGrid->GridCellGet(
nCol++,
nRow,
0L,
0L,
RUNTIME_CLASS(CExtGridCellDateTime)
)
);
if (pCell != NULL) {
COleDateTime dtValue;
dtValue.ParseDateTime(paramValue);
pCell->SetMode(CExtGridCellDateTime::all);
pCell->SetTimeFormat(CExtGridCellDateTime::h24);
pCell->SetDateTime(dtValue);
}
|
|
Jeff Mayo
|
Jan 30, 2012 - 1:56 PM
|
Sorry for the typo the code snippet should be: CExtGridCellDateTime* pCell = STATIC_DOWNCAST(
CExtGridCellDateTime
pGrid->GridCellGet( nCol++, nRow, 0L, 0L, RUNTIME_CLASS(CExtGridCellDateTime) ) ); if (pCell != NULL) { COleDateTime dtValue; dtValue.ParseDateTime(paramValue); pCell->SetMode(CExtGridCellDateTime::all); pCell->SetTimeFormat(CExtGridCellDateTime::h24); pCell->SetDateTime(dtValue); }
|
|
Kazi Ali
|
Jan 26, 2012 - 1:15 AM
|
Hi, I just purchased prof-ui v2.93 subscription yesterday. After installation, when i run the integration wizard it pops up an error saying: "a referral was returned from the server". I am running vs 2010 in Windows 7. Does v2.93 support VS 2010 in Windows 7? Please help. Thanks Kazi
|
|
Technical Support
|
Feb 1, 2012 - 7:41 AM
|
Prof-UIS 2.93 supports both Windows 7 and VS 2010. The "a referral was returned from the server" occasionally occurs on some of computers. Please run the wizard using right click, context menu and Run As Administrator menu command.
|