Subject |
Author |
Date |
|
tera t
|
Feb 28, 2008 - 7:27 PM
|
Hello.
I make software of the draw system. When they changed time and MDIFrame of the initialization, most of the movement stops. Please teach a method to do speedup.
Thanks,
|
|
Technical Support
|
Mar 1, 2008 - 8:35 AM
|
Is it possible to help you with this issue remotely by debugging this problem? In any case, we need some live project that demonstrates the problem.
|
|
Offer Har
|
Feb 28, 2008 - 11:47 AM
|
Dear Support,
I have a tooltip that updates with it is displayed. I tried calling SetText, but this does not invalidates the tooltip. Is this feature supported? if not is there any plan to implement this?
Thanks, Ron.
|
|
Offer Har
|
Mar 1, 2008 - 8:33 AM
|
Wouldn’t this cause a flicker each time the text updates?
|
|
Technical Support
|
Mar 1, 2008 - 8:30 AM
|
You should keep the CExtPopupMenuTipWnd m_wndCoolTip object somewhere persistently. Then you can invoke this code: CWnd * pWndCoolTipOwner = ...
CRect rcExcludeArea = ...
CExtPopupMenuTipWnd::e_tip_style_t eAdvancedTipStyle = ...
LPCTSTR strToolTipText = ...
m_wndCoolTip.Hide();
m_wndCoolTip.SetText(strToolTipText );
m_wndCoolTip.SetTipStyle( eAdvancedTipStyle );
m_wndCoolTip.Show( pWndCoolTipOwner, rcExcludeArea );
|
|
Offer Har
|
Mar 24, 2008 - 5:14 AM
|
Wouldn’t this cause a flicker each time the text updates?
|
|
Offer Har
|
Feb 28, 2008 - 9:13 AM
|
Dear Support,
I have a cell pointer, and I need to get the HTREEITEM of it. How can I do it? I only sea a method ItemGetByVisibleRowIndex, but I need ItemGetByRowIndex, not visible row.
Thanks, Ron.
|
|
Offer Har
|
Mar 1, 2008 - 8:29 AM
|
Dear Support,
This is a major hit to our applications. We are trying to have an object oriented approach in which the cells manage themselves. Can you please explain what is the benefit of one cell instance appearing in more then one grid? this is something I did not hear before, and I don’t think I used. Also, assuming that I ask the grid - Give me the HTREEITEM of row X regardless of a specific cell, what is the problem?
Thanks, Ron.
|
|
Technical Support
|
Mar 1, 2008 - 8:21 AM
|
You cannot get any grid coordinates from a grid cell. You even cannot get a pointer to the grid window from a grid cell because the cell can be displayed in more than one grids or it may be not in the grid at all. The CExtTreeGridWnd::ItemGetByVisibleRowIndex() and CExtTreeGridWnd::ItemGetVisibleIndexOf() methods allow you to perform conversion between a plain row number and a HTREEITEM row handle. It’s not possible to get a plain index for a hidden row and for a row whose parent is collapsed. In these cases CExtTreeGridWnd::ItemGetVisibleIndexOf() returns a negative value.
|
|
howard liu
|
Feb 28, 2008 - 4:07 AM
|
We would like to get some idea about the skinning, using Prof-UI controls, the tool bars of our MFC based application. Particularly we have problems in skinning the non client area around the tool bars. With out skinning of this non-client area the user interface does not provide a uniform look and feel after the skinning process, and this is very important for us. This non-client area is very similar to empty area that exists after(out side off) the tool bars as in MS-Outlook application.
Thanks Ranga
|
|
Technical Support
|
Feb 29, 2008 - 4:56 AM
|
Would you clarify your question with some screenshots? How do you skin your toolbar. Do you use ProfSkin or you do this yourself?
|
|
Phillip Bernard
|
Feb 28, 2008 - 2:34 AM
|
How often you upgrade your Help file ? I have Help from v 2.82? but not all functions work in accordance with Help file. It slowing down code writing.
|
|
Technical Support
|
Feb 28, 2008 - 7:44 AM
|
The documentation is updated with each new release so the updated help contains information on new classes, methods, properties, and enumerations. You can send your feedback on a particular article in the documentation or request to support@prof-uis.com.
|
|
Offer Har
|
Feb 27, 2008 - 8:57 AM
|
Dear Support,
I have a tree control, in which I remove the tree lines, and I want the children items to be displayed under the parent items, like you did in CExtPropertyGridWnd. What do I need to change to make this happen?
Thanks, Ron.
|
|
Technical Support
|
Mar 1, 2008 - 8:19 AM
|
|
|
Offer Har
|
Feb 28, 2008 - 8:04 AM
|
I am deriving from CExtTreeGridWnd , so to summarize it I need to: 1. override CExtTreeGridWnd::OnGbwAdjustRects 2. override CExtTreeGridWnd::OnGbwPaintCell so that it will paint accordingly.
Am I correct?
|
|
Technical Support
|
Feb 28, 2008 - 7:52 AM
|
In the case of CExtTreeGridWnd , which is used in the property grid control, you should override the CExtTreeGridWnd::OnGbwAdjustRects() virtual method which changes the rectangles of cells in the column with outline in order to reserve some outline space and the CExtTreeGridWnd::OnGbwPaintCell() virtual method which implements custom outline painting. In the case of MFC’s CTreeCtrl , you should repaint all the visible items manually and implement your own hit-testing and mouse-based selection. We can provide you with a very extended version of such class which is still a tree view common control but implements painting and input event handling from ground up.
|
|
Offer Har
|
Feb 28, 2008 - 4:27 AM
|
To clarify, I am talking about the horizontal perspective
In Property grid:
+ Node
Child1
Child 2 In Tree: + Node
Child1
Child2
|
|
Denis Konovalov
|
Feb 27, 2008 - 2:19 AM
|
Hello.
I’m have a class derived from CExtResizableDialog with support flicker free (WindowProc like CExtWFF<>::WindowProc). WindowProc uses CExtPaintManager::stat_ExcludeChildAreas(). But gripper now is a child control with triangle clipping area. And background of upper left triangle of gripper don’t erased properly.
How can i resolve this problem?
Thanks.
P.S. Sorry for bad english.
|
|
tera t
|
Feb 27, 2008 - 12:17 AM
|
|
|
Technical Support
|
Feb 29, 2008 - 5:11 AM
|
We are sorry. It seems we have fixed this issue after the release of 2.82. Here is the test application that demonstrates that issue is solved :
TestPrintCommandInSplitMenuButton.zip
Please contact us via email so we can provide you with the latest source code that fixes this problem..
|
|
tera t
|
Feb 27, 2008 - 8:01 PM
|
|
|
Technical Support
|
Feb 27, 2008 - 6:59 AM
|
If we insert the following code at the beginning of CMainFrame::OnCmdMsg() in the <span class="newgreen"RibbonBar</span> sample, we can see that the command associated with the split menu button is invoked successfully: if( nID == ID_FB_PRINT && nCode == CN_COMMAND && pExtra == NULL )
{
::AfxMessageBox( _T("!!!") );
return TRUE;
} Which version of Prof-UIS are you using at present?
|
|
Vincent Lin
|
Feb 26, 2008 - 6:40 PM
|
Hi, after I update Prof-UI from v2.64 to v2.82, the speed of UI refresh and initializing become very slow. How to improve speed ? thanks.
|
|
Vincent Lin
|
Mar 13, 2008 - 5:00 AM
|
Hello~ Support Sir~
Any body home ?
Could someone answer me ?! Please !!
I have waiting for several days !
|
|
Vincent Lin
|
Mar 11, 2008 - 6:55 PM
|
Hello~
Any body home ?
Could someone answer me ?!
|
|
Vincent Lin
|
Mar 10, 2008 - 8:38 AM
|
Hi,
Could you give me a response ? I have waiting for several days !!!
I am looking forward to your reply. Please reply ! Thanks.
|
|
Technical Support
|
Mar 1, 2008 - 9:37 AM
|
Yes, we received it and answered you by e-mail.
|
|
Ray Yun
|
Feb 27, 2008 - 7:57 PM
|
We got same problem with 2.82 (oh. my post was gone or this post may be duplicated..sorry...) We just upgrade from 2.62 and nothing was changed in our code. But the UI refresh/initialization speed was significantly slow down. Only we’re doing was calling DX rendering at xxxApp::OnIdle() but this was ok with 2.62. Please let us know how to fix it and we should downgrade to 2.62 until then.
|
|
Technical Support
|
Feb 28, 2008 - 7:49 AM
|
If you type some text in some editor, press some keys to change the selection in some control, move the mouse pointer over some windows, click, resize or move something in your application, then the appropriate messages are posted to the thread’s message queue. The CWinApp::Run() virtual method extracts the messages from the queue and delivers them to appropriate window procedures. If there are no messages in the queue, then the CWinApp::OnIdle() virtual method is invoked. The idle processing should not do anything complex and heavy. If you set some timer to some window, then it posts the WM_TIMER messages to the threads message queue. So, even if the user does not perform any input, the CWinApp::OnIdle() virtual method is invoked periodically. Mostly we do not use timers. We use timers only during some algorithms for tracking mouse hover, drag-n-dropping algorithms (such as control bar redocking) and in-place activated editor controls (in grids and some other controls). It’s good idea to implement Direct X or Open GL code in a stand-alone thread. The GLViews sample draws scenes into a memory buffer. The picture frames are painted in a standalone thread by requests from the main UI thread and then picture data is transferred to the main thread. In any case, you should trace how often the CYourApp::OnIdle() virtual method is invoked in different states of your application and find out when the un-needed messages are posted into the thread’s message queue.
|
|
Technical Support
|
Feb 27, 2008 - 6:47 AM
|
Do you use any time consuming code in the command updating methods and/or idle time processing methods?
|
|
Vincent Lin
|
Feb 27, 2008 - 6:54 AM
|
No, I just create some ResizableDialog with many control items. I have mail my project to you, please give my some advices for speed up, thanks.
|
|
Vincent Lin
|
Feb 28, 2008 - 11:37 PM
|
Dear Support sir,
Have you got my project code on your support mail address?
|
|
Ed Kennedy
|
Feb 26, 2008 - 11:54 AM
|
I’ve just upgraded to XP Pro (little late!) however I’m getting the following error when attempting to start up an application in the event log:
Generate Activation Context failed for c:\projects\Nant\VisBuild\debug\ProfUIS282md.dll.
Source: SideBySide EventID: 59
I get an application error ’The application failed to initialize properly (0xc0150002)’.
I’ve recompiled everything I can think of.
Any ideas of tips??
Thanks,
ed
|
|
Technical Support
|
Feb 27, 2008 - 3:50 AM
|
|
|
Offer Har
|
Feb 26, 2008 - 8:00 AM
|
Hi,
I have a custom cell type, which I would like to invalidate itself when the text in it is modified.
How can this be done?
Again, in the spirit of partial updates, I think the grid class should support these kind of operations internally, but I don’t mind adding it to my external classes...
Thanks, Ron.
|
|
Offer Har
|
Mar 3, 2008 - 6:21 AM
|
Dear Support,
If you still have doubt there is a problem here, let me explain.
Let’s say I have a cell called CExtGridCellRon . This cell have a function SetType(int nType) . I want that when SetType is called, no matter where from, the cell will display the type passed. Somebody can get a pointer to that cell from anywhere. Even in OnButtonPressed of the cell itself I, want to call SetType , and not do anything else there.
The problem is that for invalidating a cell, you have to ask the grid to do it - the cell cannot do it by itself, and this breaks the OO design.
Regards, Ron.
|
|
Offer Har
|
Feb 28, 2008 - 8:09 AM
|
I know that in OnGridCellButtonPressed I have it, but I pass it to the cell to handle, so I need now pass to the cell also the row&col, which I do not do it now.
If there is no other choice that’s what I’ll do, but it would have been better if a call had a function Invalidate or Redraw, which would have been much simpler and intuitive.
|
|
Technical Support
|
Feb 28, 2008 - 7:56 AM
|
If some part of a grid cell is clicked, you have not only a pointer to the cell. You also know the row and column indices, which allows you to get the rectangle of the cell and invalidate it.
|
|
Offer Har
|
Feb 27, 2008 - 9:01 AM
|
Dear Support,
It is not very clear to me what you imply... This my scenario: 1) I have grid cell, with a button. When the button is pressed, A dialog opens, and the user enters some data in it. 2) When the dialog closes, I update the cell’s text. 3) Now, I need to invalidate this cell to display the new data. All I have to begin with, was a pointer to the cell, and now I need to invoke a function on that cell so that it will redraw itself to display the new text.
How can this be done?
Thanks, Ron
|
|
Offer Har
|
Feb 26, 2008 - 3:00 PM
|
Hi Vladimir,
Good to know that I’m not the only one facing this problem...
Hope that they will give a built-in solution for this problem, as these workarounds I consider only as last resort...
|
|
Vlad Kozatchenko
|
Feb 26, 2008 - 2:51 PM
|
Hello,
(I am not from the support team).
but i had similar thought and ideas about partial repaints and cells taking care of themselves. i could not invent something better than to let cell know pointer to to my class driver from grid. then then cell makes call to my grid which implements proper InvalidateRect() by computing it first. so i added these kind of operations myself to the grid.
it would be better if we do not implement these methods each time in a different way. i hope here for a answer with a better way than i have done.
thanks!
Vladimir
|
|
Technical Support
|
Feb 27, 2008 - 3:53 AM
|
But in most cases the methods of grid cell classes have the CExtGridWnd & wndGrid parameter. At least all the methods related to painting, mouse and keyboard input, popup list box or any other control event notification and in-place activated control event notification have this parameter. It’s possible to instantiate one data provider object with grid cells and make several grid windows using it. Such a trick can be used for creating two or more grid windows with synchronized scrolling. That is why the grid cells know the data provider pointer and not the grid window pointer.
|
|
Offer Har
|
Feb 26, 2008 - 7:42 AM
|
Hi,
I have a cell which I set to display its text in red when selected:
TextColorSet(__ECS_SELECTED, RGB(255,0,0)); I then Set the focus to the cell using FocusSet , but the cell does not display the text in red. The cell type is CExtGridCellString .
What am I doing wrong?
Thanks, Ron.
|
|
Technical Support
|
Feb 28, 2008 - 7:59 AM
|
v.2. 83 is planned to be released in the middle of March.
|
|
Offer Har
|
Feb 27, 2008 - 6:42 AM
|
Thanks.
Any news on when 2.83 will be out?
|
|
Technical Support
|
Feb 27, 2008 - 6:38 AM
|
In v.2.83 (which is now beta) the CExtGridCell::e_cell_state_t enumeration includes some additional color types: enum e_cell_state_t
{
__ECS_ALL = 0, // color in any state
__ECS_NORMAL = 1, // normal, not hovered, not selected, not highlighted
__ECS_SELECTED = 2, // selected
__ECS_HOVERED = 3, // hovered
// next added in 2.83
__ECS_HIGHLIGHT_PRESSING = 4, // pressed
__ECS_HIGHLIGHT_BY_FOCUS = 5, // in the same row or column with focused
__ECS_HIGHLIGHT_BY_SELECTION = 6, // in the same row or column with selected
__ECS_HIGHLIGHT_BY_HOVER = 7, // in the same row or column with hovered
}; You can use all these constants when using CExtGridCell::TextColorGet() , CExtGridCell::TextColorSet() , CExtGridCell::BackColorGet() and CExtGridCell::BackColorSet() . So just play with these new constants and choose the one that is right to you.
|
|
tera t
|
Feb 25, 2008 - 7:35 PM
|
|
|
Technical Support
|
Mar 1, 2008 - 8:36 AM
|
Is it possible to help you with this issue remotely by debugging this problem? In any case, we need some live project that demonstrates the problem.
|
|
Raha Mohtasham
|
Feb 23, 2008 - 9:06 AM
|
Dear Support,
CExtCmdIcon has a Serialize method. Is it possible to Save Icons to a file using this method?
If yes, why doesn’t the following code work?
CExtBitmap bmp; HICON hIcon;
VERIFY( bmp.LoadBMP_Resource( MAKEINTRESOURCE( IDB_BITMAP1 ) ) ); bmp.AlphaColor( RGB(255,255,255), RGB(0,0,0), 0 ); bmp.SaveBMP_File("C:/TEST/BITMAP1");
hIcon = bmp.CreateHICON(); ///////////////////////////////////////////////////////////Save the Icon to file///////////// CExtCmdIcon cmdIcon; CFile file; cmdIcon.AssignFromHICON(hIcon, true); if(file.Open("C:/TEST/ICON1", CFile::modeCreate | CFile::modeWrite)) { CArchive ar(&file, CArchive::store); cmdIcon.Serialize(ar); ar.Close(); file.Close(); } ///////////////////////////////////////////
Thanks
|
|
Technical Support
|
Feb 25, 2008 - 3:52 AM
|
Prof-UIS allows you to save and load only .BMP images. The .ICO format is not supported. The advantage of using .BMP files instead of icons is that 32-bit BMP images are pefectly painted on any Windows OS starting from Windows 95 and Windows NT 4.0, which fully solves the compatibility issues. You can also use the CExtCmdIcon::Serialize() method in your project but this method does not work with the .ICO format. It simply serializes data of a CExtCmdIcon in a binary form.
|
|
Vlad Kozatchenko
|
Feb 23, 2008 - 7:39 AM
|
|
|
Technical Support
|
Feb 27, 2008 - 3:56 AM
|
We still cannot reproduce this problem. We tried both simple color button and split color button. Could you show us the entire content of the Call Stack window in your Visual Studio when the crash occurs?
It seems the same problem may occur on your computer when an application with a color picker button inside a customizable toolbar or menu. The StyleEditor sample is a such kind of application. Could you try to crash it?
|
|
Vlad Kozatchenko
|
Feb 26, 2008 - 2:44 PM
|
Hello,
> We tested the color picker button with the RibbonBar sample > and we have never faced any crashes. We guess the crashes > you reported may be specific to your project only and should be > related to the source code which handles color selection changing. > Please provide us with more details about this part of your project.
it was possible in about 5-10 attempts per run to make it crash on the version 2.82 samples in the installation RibbonBar.
The scenario as the same: 1) pop-up the color picker menu; 2) click on the "Select color..." 3) click OK there repeat 1)-3) several times - crash
Please help! thank you.
Vladimir
|
|
Vlad Kozatchenko
|
Feb 23, 2008 - 7:40 AM
|
PS: post with "Notify me when I get a reply to my message" = ON.
|
|
Offer Har
|
Feb 22, 2008 - 7:25 PM
|
Dear Support,
I have a CExtTreeGridWnd with two columns. In a node tree, I try to do the following in the second column: 1) Change the cell’s back-color 2) Add a check-box It seems that this cell is out of my reach - no matter what I do, nothing changes in this cell
Any ideas? is it on purpose? how do I at least change the back color of this cell?
Thanks, Ron.
|
|
Offer Har
|
Feb 25, 2008 - 4:49 AM
|
Sorry,
My mistake - it works great...
|
|
Technical Support
|
Feb 25, 2008 - 4:44 AM
|
Would you show how you modify the grid cell? At least we are sure the background color does not affect the code which implements cell behavior.
|
|
Chris Anderson
|
Feb 22, 2008 - 7:15 PM
|
hi,
We havea frame wnd derived from CExtNCW<CFrameWnd>. It works well in most cases, but it seems some Windows styles are ignored. ( prof-uis v282 )
I can make the window transparent by adding WS_EX_LAYERED, but when I tried to remove WS_CAPTION, WS_BORDER, WS_DLGFRAME .. to get rid of title bar, I can still see a title bar under Office 2007 theme. With other themes, the title bar is gone. It seems the office 2007 nc paint function doesn’t take the style into consideration
Is this doable ?
Thanks
|
|
Technical Support
|
Aug 7, 2008 - 1:30 PM
|
We will add this feature soon. Thank you.
|
|
Technical Support
|
Feb 25, 2008 - 4:28 AM
|
The CExtNCW currently supports only windows with a caption and borders. We can regard your question as a feature request.
|
|
Chris Anderson
|
Aug 7, 2008 - 10:50 AM
|
This problem still exists with prof-uis v283. You can easily see it by adding the following code to the help about in the FormEditor sample: void CFormEditorApp::OnAppAbout()
{
#ifndef __EXT_MFC_NO_PROF_UIS_ABOUT_DIALOG
DWORD style = m_pMainWnd->GetStyle();
if ( (style & WS_CAPTION) == 0)
{
m_pMainWnd->ModifyStyle(0, WS_CAPTION, SWP_DRAWFRAME);
}
else
{
m_pMainWnd->ModifyStyle(WS_CAPTION, 0, SWP_DRAWFRAME);
}
VERIFY( ProfUISAbout() );
#endif // #ifndef __EXT_MFC_NO_PROF_UIS_ABOUT_DIALOG
}
This works fine except for Office 2007 themes. Please add this as a feature request. Thank you.
|
|
Christan HIRIGOYEN
|
Feb 22, 2008 - 9:17 AM
|
I would like to create at runtime ControlBar or DynamicControlBar, but I don’t want to recreate them at next launch. How is it possible to avoid saving the state of these Bars? CExtControlBar::ProfileBarStateSave is for all control Bars, but i still want to save state of toolbars...
Please could you advice me?
Thanks in advance
|
|
Technical Support
|
Feb 25, 2008 - 4:31 AM
|
You should remove such temporarily dynamic control bars before saving the state of control bars.
|
|
Offer Har
|
Feb 22, 2008 - 11:00 AM
|
I had the same problem - the solution is in OnDestroy of your main frame to close them.
|
|
Christan HIRIGOYEN
|
Feb 22, 2008 - 9:04 AM
|
Is it possible to have several MDITabWnd like in VS2005? Can I develop it, by creating several CExtTabMdiWhidbeyWnd and handling the position within the mainframe? And what about the ChildFrame, View ...?
Please, could you advice me.
Thanks in advance.
|
|
Technical Support
|
Feb 22, 2008 - 2:05 PM
|
|
|
tera t
|
Feb 22, 2008 - 4:33 AM
|
Hello.
It is not malfunction of Prof-UIS. Give me advice. When I do not do Delete of a variable with CreateCompatibleDC.
Will it be the thing which the following phenomena are given to?
1, Application stops. 2, A lack of memory error is given in CExtMemoryDC-__Flush used in the Ribbon inside.
Thanks,
|
|
tera t
|
Feb 25, 2008 - 5:21 PM
|
Hello.
I perform CreateCompatibleDC in the application side. It is caused by the fact that I did not delete the domain. Therefore. I cannot secure a DC domain and fell in Prof-UIS side.
|
|
Technical Support
|
Feb 25, 2008 - 4:33 AM
|
The GDI API invocations should be implemented very carefully. If you create a DC and select some GDI objects into it before painting, then you should invoke exactly the same de-initialization API invocations in the reverse order before deleting the DC. Do not delete the DC if you have not selected any previous GDI objects into it.
|