Subject |
Author |
Date |
|
Offer Har
|
Apr 23, 2008 - 3:59 PM
|
I have posted this in the past, but it was never resolved: I want to verify with the user that he closes the application, so I added this code:
void CMainFrame::OnClose()
{
int nRes = AfxMessageBox("Are you sure you want to exit?", MB_YESNO|MB_ICONQUESTION);
if (IDNO==nRes)
{
return;
}
CExtNCW<CMDIFrameWnd>::OnClose();
} Just add it to any of your sample application, and use an office 2007 skin, and you’ll see that the frame of the application expaneds a couple of pixles. If the user selects No - then the frame remains in this explanded state forever now...
|
|
Technical Support
|
Apr 24, 2008 - 1:47 PM
|
The CExtNCW template class that skins the non-client area was re-coded for v.2.83 due to several issues including this one and support for MDI child frames. We can provide you with the update.
|
|
Stan Miasnikov
|
Apr 23, 2008 - 1:40 PM
|
Hi, <o:p> </o:p> <o:p> </o:p> Ever since I have upgraded to version 2.82, I’ve notices a problem with detachable menus (toolbars). When I detach a menu, drag the new toolbar window to the desired location and release the mouse, the application hangs for a long time, 20 seconds + up to a minute. Is it a known issue? Is there a fix? <o:p> </o:p> Thanks,
|
|
Technical Support
|
Apr 24, 2008 - 1:49 PM
|
This is already fixed. You can download the latest code snapshot from our ftp server (contact us at support@prof-uis.com if you do not have the ftp download details).
|
|
Offer Har
|
Apr 23, 2008 - 6:41 AM
|
Is there a way to add a check-box inside a CExtDateTimeWnd that will clear the time if unchecked?
|
|
Technical Support
|
Apr 26, 2008 - 1:47 AM
|
This feature is not supported. But there is a None button in the popup date picker which does this work.
|
|
Thomas Maurer
|
Apr 22, 2008 - 4:40 AM
|
Hello Sorry if this has been asked many times before... The following situation: I have a tabbed container with two control bars in them that the user can switch forth and back. I want to be able to: - get the active tab (index or window pointer/handle) for saving when app closes (e.g. "Dokum..." or "Miniatu..." / 0 or 1 respectively)
- set the active tab when app starts (e.g. "Dokum..." or "Miniatu..." / 0 or 1 respectively) IMPORTANT: The order of the tabs should always remain the same. How can I achieve that? ADDITIONAL INFO: I am creating my own tabbed bar by receiving the g_nMsgCreateTabbedBar message. I could do something on creation of the derived bar. Thanks in advance Thomas
|
|
Technical Support
|
Apr 22, 2008 - 11:05 AM
|
The algorithm that restores the state of control bars recreates the layout of control bars so that all controls bars in each tabbed group is restored including the tab order and selection. You can send a command message to the main frame window to select a control bar in your tabbed group, activate and focus a hidden or a auto-hidden bar: CMainFrame * pMainFrame = . . .
CExtControlBar * pBar = . . .
pMainFrame->SendMessage( WM_COMMAND, WPARAM(pBar->GetDlgCtrlID()) ); That is typically enough in most cases. But you can also access a tabbed control bar and get more info about the tabbed group CExtControlBar * pBar = . . .
CExtDynTabControlBar * pTabBar = pBar->_GetNearestTabbedContainer();
if( pTabBar == NULL )
return . . . // the pBar bar is not in tabbed group
LONG nSelIdx = pTabBar->GetSwitcherSelection();
if( nSelIdx < 0 )
return . . . // some temporarily state during drag-n-drop, typically never occur
CExtControlBar * pBarSelectedInTabGroup = pTabBar->GetBarAt( nSelIdx, true );
ASSERT_VALID( pBarSelectedInTabGroup );
if( LPVOID(pBarSelectedInTabGroup) == LPVOID(pBar) )
{
::AfxMessageBox( _T("We are currently selected in tab group.") );
}
else
{
::AfxMessageBox( _T("We are NOT currently selected in tab group.") );
//
// Select pBar. Same as sending command message to main frame.
//
pTabBar->SelectControlBar( pBar );
}
|
|
Monte Variakojis
|
Apr 21, 2008 - 3:52 PM
|
Hello, Is there any way to get the integration wizard to work with Windows Vista (32 bit) and MS Studio 2008? I have reinstalled vista and VS2008 and it (Integration Wizard) still does not function. Matter of fact, IW is tring to REMOVE rather then ADD. I waited for a couple of months for this project and now I need to start it and cannot. I check only two options: + Add Prof-UIS paths to Visual Studio environment variables for Win32 platform + Install Prof-UIS Application Wizard to Visual Studio. Result: Failed, Failed: X Add Prof-UIS paths to Visual Studio environment variables for Win32 platform X Install Prof-UIS Application Wizard to Visual Studio. /*******************************************************************/
REPORT FILE [4-21-2008, 14:24]
/*******************************************************************/ Remove Prof-UIS paths from Visual Studio environment variables for Win32 platform - Failed. Remove Prof-UIS Application Wizard from Visual Studio - Succeeded. (eventhough the IW shows failed and I wanted to add, it shows removed and success) Thanks for your help.
|
|
Technical Support
|
Apr 26, 2008 - 1:54 AM
|
The problem is quite weird. We are puzzled. As an option, we can connect to your desktop remotely to find out what’s wrong on the spot if it is possible at all.
|
|
Monte Variakojis
|
Apr 24, 2008 - 5:44 PM
|
I don’t have a another Vista Ult. machine like this one. I have installed it on a Vista Ult. P4 machine and it functioned with no problems. The machine I’m having problems with is a Quad core Q6600 Vista Ult (32 bit) supplied by Dell (XPS 720). Also I cleaned the machine, reinstalled vista, VS2008 and then Prof-uis and had the same problem. I suppose that DELL breaks your software for some reason. Thanks for you help.
|
|
Technical Support
|
Apr 23, 2008 - 4:16 AM
|
Did you try to install Prof-UIS on some other computer? We receive reports like "absolutely nothing is working" very rarely. There must be something special and something enough simple like viruses or other software which contains incorrectly coded system-wide hooks etc.
|
|
Rado Manzela
|
Apr 21, 2008 - 2:55 AM
|
I’ve tried to use ColumnHide() on tree grid control, but it does not work. Is there some problem ot isn’t it implemented yet? Thank you.
|
|
Technical Support
|
Apr 21, 2008 - 12:41 PM
|
Unfortunately ColumnHide() method is not supported yet by the tree grid’s data provider.
|
|
Rado Manzela
|
Apr 23, 2008 - 9:42 AM
|
Do you plan to add it into next release?
|
|
Stan Miasnikov
|
Apr 18, 2008 - 11:41 AM
|
<o:p> </o:p> <o:p> </o:p> It was reported to us by several users of our applications that use Prof-UIs library: when moving mouse over the application window the CPU usage increases dramatically (could be 75%+) and sometimes the desktop flashes (like if you call invalidate rect on the desktop window). <o:p> </o:p> We have done several tests and have found out that this behavior is not unique to just this application but any other we’ve built with this library. Furthermore, this behavior can be reproduced with ProfStudio sample without any modifications. <o:p> </o:p> This is a very serious problem, which, unless resolved, will force us to drop using this library. <o:p> </o:p> To reproduce: compile ProfStuio sample and run it. Open task manager and monitor CPU usage. Move cursor over the ProfStudio application window and just move the mouse around while the cursor is within the application window limits. Observer CPU usage may go up to 100% and sometimes remains high even after you stop moving the cursor. In some instances, you may see that the entire desktop is invalidated. <o:p> </o:p> Please advise ASAP.
|
|
Technical Support
|
Apr 22, 2008 - 7:44 AM
|
We have analyzed the CPU usage issue. It heavily depends on the number of windows created inside the main frame window. The number of windows in the ProfStudio sample is far greater than it is in any application from our customers we have ever seen. Each of bars receives command updating request. So, the CPU usage is high but not 100% on a 2GHz single CPU computer. You can decrease CPU usage by closing bars in the ProfStudio sample application. The CPU usage in real projects will much more depend on the implementation of each command updating handler method rather than on the number of windows. Your command updating methods should not be heavy. They should return the execution control as earliest as possible. They should not invoke COM, OLE, inter process communication, database and other APIs which may post messages to the thread’s message queue or execute for a long time. The screen flicker was not noticed in our test. We can review your project if you send it to us.
|
|
Stan Miasnikov
|
Apr 22, 2008 - 12:30 PM
|
Well, then, as I suspected, the problem is that you call <o:p></o:p>
CExtToolControlBar::OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler)<o:p></o:p>
on each Mouse move (actually hit test most likely) event for each control bar when the mouse is hovering over the main window, not just specific control bar. I see that this method is calling pTBB->OnUpdateCmdUI for each button<o:p></o:p>
you need to filter UpdateCmdUI calls, so it is not called so often.<o:p></o:p>
while command update handling for each button, at leas in our case, is quick, but due to the large number of buttons still uses lot’s of CPU.<o:p></o:p>
Besides, I never noticed standard MFC application exhibiting similar behavior. We used the stingray library before for number of years, and I don’t remember running into such problem.<o:p></o:p>
|
|
tera t
|
Apr 21, 2008 - 7:19 PM
|
Other sample MDI.exe does not seem to use a microprocessor power so much.
When application uses many CExtControlBar, such a symptom seems to come out ....
|
|
Slim Ghariani
|
Apr 18, 2008 - 2:56 PM
|
We’re having the same problem, and posted about it 3 days ago but no valid answer yet...
|
|
Offer Har
|
Apr 18, 2008 - 6:27 AM
|
I see that when clicking on a cell, it is drawn as pressed. I want to control when this happens to mimic the two state button style. Thanks.
|
|
Technical Support
|
Apr 19, 2008 - 7:28 AM
|
Did you try the following styles? __EGCS_PRESSED_DOWN
__EGCS_PRESSED_UP
__EGCS_PRESSED_DOWN
__EGCS_PRESSED_ELLIPSIS
|
|
Offer Har
|
Apr 19, 2008 - 7:36 AM
|
|
|
Chun Pong Lau
|
Apr 17, 2008 - 8:16 PM
|
Dear Support, I cannot save the UI persistence of control bars when tab container is there. However, i can do it after i close it manually before quitting the application. I think it is a BUG of prof-uis 2.82 as i have followed the instructions given by FAQ, your support team and sample programs. Besides, i cannot change the size of docked control bar on the fly. I think it is a bug of PROF-UIS 2.82. In addition, i have sent several emails to support@prof-uis.com with a test project about these 2 problems. However, i receive no response for a LONG TIME. Please pay immediate attention to them. Regards CP
|
|
Sebastian Leopold
|
Apr 17, 2008 - 2:35 PM
|
Hello, I want to download all bugfixes for 2.82. Where can I download that ? Please send me an e-mail with the needed information. thx. S.Leopold
|
|
Technical Support
|
Apr 18, 2008 - 1:02 PM
|
We sent you the ftp account details by email.
|
|
tera t
|
Apr 16, 2008 - 11:34 PM
|
Hello. In CellComboBox, I want to perform numerical value notation such as CellNumber.
Please teach the method that is good for me.
|
|
Technical Support
|
Apr 18, 2008 - 6:41 AM
|
The CExtGridCellComboBox class is based on CExtGridCellString , so you cannot use numerical features provided by CExtGridCellNumber . The only way is to use CExtGridCellNumber with a drop-down button and drop-down list box which you should implement manually. You can see how it is done in the SimpleGrids sample, whichshould help you to figure out how to implement combo box features even for a very base cell class like CExtGridCell .
|
|
Malcolm D
|
Apr 15, 2008 - 11:29 PM
|
I have a number of edit controls and comboboxes on menus (using the customise built in ones).
How are they meant to be updated? i.e. update the text they display. It doesn’t seem like the OnCmdUIUpdate with SetText works in this case either.
|
|
Technical Support
|
Apr 17, 2008 - 5:06 AM
|
There is a CExtCustomizeSite::UpdateAllCommandItems() method that updates all visible buttons in the customizable toolbars and menus through MFC. Another method, CExtCustomizeSite::RedrawCommandItems() , redraws all screen buttons with specified command identifiers. The built-in text and combo fields in customizable toolbars and menus do not contain any data. They use CExtCustomizeSite::OnTextFieldInplaceTextGet() to get the text value displayed in the combo box or text filed. So you can update a combo box text on the screen by using the CExtCustomizeSite::RedrawCommandItems() method with passing the command identifier of the combo box to it.
|
|
Malcolm D
|
Apr 15, 2008 - 11:19 PM
|
Is there a way to have a text label before a combobox/edit control on a toolbar (the resizeable/customisable combobox./edit controls)? Thanks
|
|
Technical Support
|
Apr 17, 2008 - 5:31 AM
|
There are no built-in labels supported by text/combo fields at the moment. You could used CExtBarLabelButton for that but it will only work for non-customizable toolbars (for customizable toolbars it won’t work). So we regard your message as a feature request.
|
|
Malcolm D
|
Apr 15, 2008 - 11:16 PM
|
I can produce this on the style editor example.
If I go to the font size control on the style menu and cause the list of sizes to popup. If I move the mouse so that it shuts then go back to it again, when it popups up it is empty, and will remian empty until the menu it is on is closed and reopened. Thanks
|
|
Technical Support
|
Apr 17, 2008 - 5:16 AM
|
Thank you for reporting this problem. It is fixed. You can download the update from our ftp server (if you do not have the ftp account information, contact us for the details via email).
|
|
Malcolm D
|
Apr 15, 2008 - 10:40 PM
|
The UI updated for the tabbed toolbar seems to take a long time. I noticed in the code that it does the update for item in every toolbar that is part of the tabbed toolbar. i.e. it does the update for items which are not visible. Can this be changed so the update is only done for visible items. Thanks
|
|
Technical Support
|
Apr 17, 2008 - 6:38 AM
|
Thank you very much for reporting this issue. You can fix this by updating the source code for the CExtTabbedToolControlBar::OnUpdateCmdUI() method: void CExtTabbedToolControlBar::OnUpdateCmdUI(
CFrameWnd * pTarget,
BOOL bDisableIfNoHndler
)
{
CExtTabPageContainerWnd * pWndTabPageContainer = GetTabPageContainer();
if( pWndTabPageContainer == NULL )
return;
LONG nSel = pWndTabPageContainer->PageSelectionGet();
if( nSel <= 0 )
return;
CExtToolControlBar * pToolBar = BarGetAt( nSel );
ASSERT_VALID( pToolBar );
INT nBtnIdx, nCountOfButtons = pToolBar->GetButtonsCount();
for( nBtnIdx = 0; nBtnIdx < nCountOfButtons; nBtnIdx++ )
{
CExtBarButton * pTBB =
pToolBar->GetButton( nBtnIdx );
ASSERT_VALID( pTBB );
pTBB->OnUpdateCmdUI( pTarget, bDisableIfNoHndler, nBtnIdx );
}
pToolBar->UpdateDialogControls( pTarget, bDisableIfNoHndler );
}
|
|
Daisy Peterson
|
Apr 15, 2008 - 1:51 PM
|
In our application we have a menu that shows up when the user right clicks the caption/title bar of an MDI child window. Since upgrading the main frame to utilize Prof-UIS menus and toolbars and such, now when right clicking on the title of an MDI child, we get the system menu (themed to match the main frame). Is there a way to turn this off so our menu can be shown? Kevin Murray (kmurray@agi.com)
AGI
|
|
Daisy Peterson
|
Apr 16, 2008 - 1:21 PM
|
I have no problem with the theme on the system menu; I have a problem with the system menu being shown when the user right clicks the MDI Child’s title bar. I can use the flag CExtMenuControlBar::m_bAllowProfChildFrameSysmenu to turn off the system menu processing of the MDI Child, but that’s not what I want -- theme the system menu, just don’t show it on the right click. Kevin Murray
|
|
Technical Support
|
Apr 18, 2008 - 3:24 AM
|
You should override the CExtMenuControlBar::TrackChildFrameSystemMenu() internal virtual method. Its pPoint parameter is a non-NULL value if the method is invoked on mouse clicks. Your method should track a custom popup menu or invoke the parent class method. The returned value indicates whether the popup menu has been created and tracked successfully.
|
|
Technical Support
|
Apr 16, 2008 - 5:10 AM
|
The skinned system menu is completely controlled by the CExtMenuControlBar class. If the MDI child frame window is maximized, the icon button for it is displayed as the first button in the menu bar. We think it’s correct that this button displays a skinned/themed system menu of the MDI child frame window because all the other buttons of the menu bar also display skinned/themed popup menus. That is why we decided that the menu bar should also display skinned/themed menus for the MDI child frame windows in the non-maximized state. Besides, this approach generally provides a more consistent and solid themed application look. You can insert your custom menu items into the system menu of the MDI child frame windows. But Prof-UIS requires that your custom menu command items should have the registered CExtCmdItem command descriptions in the command manager. So, if you inserted some ID_MY_MENU_COMMAND item into the MDI child frame’s system menu, then you should also invoke the CExtCmdItem * pCmdItem = g_CmdManager->CmdAllocPtr( ..., ID_MY_MENU_COMMAND); code for it and initialize the required properties of the returned CExtCmdItem object.
|
|
2C|!2C
|
Apr 15, 2008 - 1:39 PM
|
When I create a project with Prof-UIS integration ( using the wizard ) add a MfcExtensionDLL and call in the DLL
AfxGetResourceHandle() I get an assertion error and a "0" handle back.
_AFXWIN_INLINE HINSTANCE AFXAPI AfxGetResourceHandle () { ASSERT(afxCurrentResourceHandle != NULL); return afxCurrentResourceHandle; }
If I do the same project without Prof-UIS integration is works perfectly. Is there any reason why this standard call is not working
with Prof-UIS ? The additional 3d party DLLs I have to use with this project are using those calls and I have no way changing them.
Any help is appreciated
|
|
Technical Support
|
Apr 16, 2008 - 5:11 AM
|
Prof-UIS uses its own resource loading subsystem which does not intersect with MFC’s. Could you please send us just some generated EXE/DLL projects which demonstrate this problem to the support mail box at this web site or provide us with more details about how to reproduce this problem? Which version of Visual C++ should we use? Which type of EXE project should we generate (dialog or frame based) and where is the place in it where we should invoke an MFC extension DLL?
|
|
Nigel Channon
|
Apr 15, 2008 - 4:32 AM
|
How I can get access to your FTPserver?
|
|
Technical Support
|
Apr 15, 2008 - 5:31 AM
|
Please contact us via email at support@prof-uis.com so we can provide your with ftp download details.
|
|
Slim Ghariani
|
Apr 15, 2008 - 12:29 AM
|
Hi ! I’m gonna take as a reference the RibbonBarMDI sample.Here is what i’m facing on my home 3.4Ghz dual core CPU : Hovering on the Font ribbon and Paragraph ribbon field, they update very slowly the state of the buttons under the mouse cursor, it takes a little bit under 1 sec to get updated, and 50% of the power of CPU. I think you can understand that is way too much, the user experience is not real-time... Looking at how the CPU react according to where you hover the cursor make me think about of a cache problem, like it would be rebuild again and again.. hope that can help But when i use the reduce Ribbon feature, then the performance on those 2 ribbon fields get way better ! nearly realtime... hope that can lead to some clue... I’ve tryed some samples from other technologies (read other middlewares), they ’re behaving in realtime with a maximum of 20% of the CPU power being used. I really think this reccuring UI performance can be adressed. Of course the sample has been build with this in the core :
CExtPopupMenuWnd
::g_bMenuWithShadows = false; CExtPopupMenuWnd::g_bMenuShowCoolTips = true; CExtPopupMenuWnd::g_bMenuExpanding = false; CExtPopupMenuWnd::g_bMenuHighlightRarely = false; CExtPopupMenuWnd::g_bMenuExpandAnimation = false; CExtPopupMenuWnd::g_DefAnimationType = CExtPopupMenuWnd::__AT_NONE; CExtPopupMenuWnd::g_nDefaultFadeOutAnimationStepCount = 0; CExtPopupMenuWnd::g_nDefaultFadeOutAnimationEllapse = 0; CExtPaintManager::g_DefAnimationParametersNormal
= CExtPaintManager::g_DefAnimationParametersSlow
= CExtPaintManager::g_DefAnimationParametersVerySlow
= CExtPaintManager::g_DefAnimationParametersVerySlowAndSmooth
= CExtPaintManager::g_DefAnimationParametersEmpty; Now when i use the same sample at work on a 2.4GHZ Quad core, the sample reacts as it should be that is : in real-time. without the preceding performance params... Have you got any clue about what’s happening ? I’ve red that you were working on performance monitoring, have you find anything usefull ?? if yes have it been integrated in the 2.83 ? Thank you very much for understanding how important this performance issue is. I’m looking forward to hear how you guys can really improve thisor gining us the methode to do it ourselves (DDB vs DIB ??) Thank you very much !
|
|
Slim Ghariani
|
Apr 16, 2008 - 9:31 PM
|
We forgot to add that the problem only occures under the Office 2007 themes
|
|
Technical Support
|
Apr 22, 2008 - 7:48 AM
|
The ribbon bar’s performance can be tested using our RibbonPage sample application where you can assign different combinations of ribbon groups to be displayed in the ribbon control. The performance first of all depends on the number of buttons in the ribbon. The skinned themes are only a bit slower than simple themes. The home page in the RibbonBar sample is slower than other pages because of the number of buttons rather than the gallery control. Besides both in ribbons and grid controls the release mode is several times faster due to lots of assertion failure checks in the debug mode.
|
|
Slim Ghariani
|
Apr 16, 2008 - 9:31 PM
|
Of course all the test were done with a release version : built on our computer 2.81, 2.82 and today 2.83. All behave the same : when hovering the mouse above the icons there is a huge delay before they get refreshed, when they doso..... the same when you change from one tab to the other, all this with a very high CPU charge... Reading through the forum we realised that we are not the only one suffering from this issue. We would like to know if this major flaw is about to be actively investigated please, we can’t rely on a non consistent behavior from one machine (fairly new machine) to the other from our clients. Again after investigations we have found that other tech, and the new visual studio feature pack behave with reasonable performance with no lags at all across our different machines, on a close GUI ribbon configuration software. A screenshot is being sent directly to support@prof-uis.com Thank you
|
|
Technical Support
|
Apr 16, 2008 - 4:39 AM
|
First of all, Prof-UIS uses very heavy assertions in the debug mode. So, you should keep in mind that any performance issues you have in the debug version may be entirely absent in the release one.
Could you post a screen shot of the ribbon bar in the partially collapsed state when the problem is not notable?
|
|
Adrian M
|
Apr 12, 2008 - 2:51 PM
|
My code resides in a dll. Here, I create a new thread where I instantiate a prof-uis based dialog class, with a bunch of controls. One of the controls is a popup menu button. When I open the menu associated with this button and press the Insert or Delete key, I get an assert/crash in the prof-uis code. I traced this to these lines in extpopupmenuwnd.cpp line 17559:
HKL hKeyboardLayout = ::GetKeyboardLayout( ( ::AfxGetThread() ) -> m_nThreadID );
Basically, m_nThreadID is 0, I’m assuming since it’s trying to get the id of the main thread, while running in a different thead. I get similar crashes in other cases, but they all seem to be cause by this threading issue. Any idea how to fix this? Thanks, Adrian
|
|
Adrian M
|
Apr 13, 2008 - 12:27 PM
|
It turns out that I was starting the thread using beginThreadEx when I should have used AfxBeginThread. I changed the code accordingly and that fixed the crash. Adrian
|