Subject |
Author |
Date |
|
Offer Har
|
Jan 6, 2011 - 12:34 PM
|
Dear Support, We have a requirement that the focused row/cell in a grid will be done from the keyboard typing much like in the file explorer - when you type a letter, it brings you to the first row that begins with this letter, and if you type quick enough, it will remember the first letter you typed and look for the second letter under the first etc etc. Is there any support for that in the grid classes? If not, can this be added? Thanks, Ron.
|
|
Rado Manzela
|
Jan 6, 2011 - 8:37 AM
|
In filter menu for tree grid, the "Sort A to Z" and "Z to A" does not work, it is ignored.
|
|
Technical Support
|
Jan 13, 2011 - 4:58 AM
|
Thank you for reporting this issue. You can fix it by commenting out or removing the CExtTreeGridWnd::OnGridFilterSortCommand() virtual method in the Prof-UIS source code.
|
|
Offer Har
|
Jan 6, 2011 - 5:55 AM
|
Dear Support, We have a system with two monitors. We run our application on the right monitor (the secondary) When I save the application it saves all the UI information, but it always opens on the left one. How can I make it ’remember’ to open the application on the right monitor? Thanks, Ron.
|
|
Technical Support
|
Jan 11, 2011 - 11:34 AM
|
Prof-UIS supports correct multi-monitor window position persistence. Please check whether the CExtControlBar::ProfileBarState***() static methods are invoked with non-NULL pointer parameter specifying WINDOWPLACEMENT data for saving/restoring the window placement. You can see this in any frame based Prof-UIS sample application.
|
|
Charles Bisbee
|
Jan 5, 2011 - 5:25 PM
|
My app uses prof UIS 2.92. It has a main dialog with multiple other modeless dialogs all based on CExtNCW < CExtResizableDialog >. This is a port from MFC CDialog application. We are in testing for final release and so this becomes critical for me. When the app is minimized using Windows-M shortcut and then restored using the mouse, the modeless dialogs do not display. They are in position but do not display. The app drags them with it so moving the main window causes a move of the modeless windows and they will appear<o:p></o:p>
The restore works correctly if Windows-Shift-M is used. It works correctly if minimized with the mouse and restored with the mouse. It is only the combination of minimize with Window-M and restore with the mouse that fails. Everything works correctly in the pre ProfUIS application<o:p></o:p>
Please Help
|
|
Technical Support
|
Jan 12, 2011 - 8:11 AM
|
You should analyze the WINDOWPLACEMENT data (GetWindowPlacement() ) while handling the WM_WINDOWPOSCHANGED message in the main frame/dialog window.
|
|
Charles Bisbee
|
Jan 11, 2011 - 5:00 PM
|
Is there a message i can handle that tells me the main window (which works) is being restored. I can then call SetPosition on the other windows. This should work as the SetPosition is what is called when the main window moves. This causes the floating windows to redisplay. Thanks
|
|
Technical Support
|
Jan 11, 2011 - 12:30 PM
|
Thank you for reporting the issue. It can be re-produced using Prof-UIS sample applications, Office 2010 applications, Office 2007 applications and the most of any other applications which support a custom non-client area. The custom non-client area requires tricky techniques like removing the WS_BORDER|WS_CAPTION style and handling WM_NC*** messages handling. This is incompatible with system wide Windows commands like Win+M and Win+D. We are not sure if this can be fixed. But we will try to find a workaround.
|
|
Dominik Braendlin
|
Jan 4, 2011 - 4:11 AM
|
Dear Tech Support, I might have found the reason for a side effect that I have reported earlier. Please find a list of Threads involved: First I needed a way to show / hide groups in the ribbon. Please refer to thread 2. m_wndRibbonBar.SetButtons( NULL ); m_wndRibbonBar.SetButtons( m_pRibbonNode ); m_wndRibbonBar.Ribbon_UpdateLayout(); Thread 2 solved the show/hide issue. But then I had to report that I am missing the minimize/maximize/close icons in the ribbon. Please refer to thread 1. Then I have found thread 3 that does that show/hide exactly the way I need it but also causes the same side effect as I have in my application. Please refer to the below zip file link. Now the problem: After the first show/hide operation where SetButton(NULL) SetButton(m_pRibbonNode) is involved the icon of the File menu button in the ribbon disappears and with it also the Max/Min/Close icons of the ribbon. Please check the zip project. Could you please solve that problem? Thanks Regards, Adrian
|
|
Dominik Braendlin
|
Jan 3, 2011 - 12:38 AM
|
Dear Tech Support, In our current application we do have some dialogs that resize according to their content automatically using the e.g. MoveWindow method. Using MoveWindow does not really provide a smooth transition between two different windows sizes. Using a timer and several calls to MoveWindow to change the size gradually gives a much smoother feeling. I was wondering if this kind of behavior could be implemented directly in e.g. CExtResizableDialog or similar. Do you already provide such a method? If not this support request might be considered a feature request. I am thinking of a method like “MoveWindow” that beside a new window size and position also has a value for the time to change from the old to the new window size and position. Regards Adrian
|
|
Technical Support
|
Jan 3, 2011 - 11:57 AM
|
MoveWindow() based transition is not always the best. If window resizing is small (for instance, due to heavy inner controls) then MoveWindow() is not good. It’s possible to make a photo of any window (CExtPaintManager::stat_PrintWnd() ), resize bitmap on the screen very smoothly and finally, show resized window at the end of the animation. For instance, all the Prof-UIS popup menu (CExtPopupMenuWnd ) animations are based on the popup menu foto transitions - not on the window transitions. In any case, animated resizing can be coded as stand alone function which is applicable to any kind windows, not only to dialogs. The timer based approach can brought surprises because application can potentially shut down or crash during window transition animation. We think such transition animations can better coded using loop and clock() -based measurements of each step’s time. Finally, windows can be layered and non-rectangular. The universal transition animation can be specific for particular layered and non-rectangular windows. Probably that’s why Win32 provides AnimateWindow() as alternative to ShowWindow() and does not provide anything alternative for MoveWindow() / SetWindowPos() / DeferWindowPos() . Even more. Particular tasks require unique transition animations. For instance, expandable menus use animated expanding effect where the initially displayed menu items are sliding and newly appeared menu items are scaled with sliding. And even more. Some windows can become scrollable after resizing or change scroll bar visibility. This should be also handled somehow. We need some additional time to understand how to code a universal animated window resizing.
|
|
Lars Mohr
|
Dec 31, 2010 - 7:13 AM
|
Dear Support Team, I think there is a bug in the function CExtComboEditCtrlHook::OnContextMenu before you call the RedrawWindow function. I think you have to include these lines of code like it is in the CExtEditBase::OnContextMenu function: if( ! ::IsWindow( m_hWnd ) )
return; If I close my app and the content menu of the combo box is still open the app crashed. Regards and a HAPPY NEW YEAR
|
|
Technical Support
|
Jan 3, 2011 - 11:55 AM
|
Added. Thank you and a very Happy New Year!
|
|
Offer Har
|
Dec 29, 2010 - 2:33 PM
|
Hi, We are using CExtCheckComboBox, and the check-boxes in the drop-list are not skinned, which looks very off. Is there a way to match them to the skin? They look like they came from the 90’s... Thanks, Ron.
|
|
Technical Support
|
Jan 31, 2011 - 11:19 AM
|
Please find the following line of code in the CExtCheckComboBox::_OnCbLbPreWndProc() method:
case WM_LBUTTONDOWN:
And replace it with two following lines: case WM_LBUTTONDOWN:
case WM_LBUTTONDBLCLK:
Now quick mouse clicks will work OK.
|
|
Technical Support
|
Jan 30, 2011 - 11:46 AM
|
|
|
Technical Support
|
Dec 31, 2010 - 9:19 AM
|
|
|
Offer Har
|
Jan 26, 2011 - 9:01 AM
|
Dear Support, There is another problem with the new implementation - There is a need to click twice for the status of a check-box to change now. Please fix. Thanks, Ron.
|
|
Technical Support
|
Jan 30, 2011 - 11:43 AM
|
|
|
Offer Har
|
Jan 31, 2011 - 8:40 AM
|
Dear Support. I compiled your test application and the same bug happens. Iam working with 2.90 on windows XP SP3. All you need to do is this: 1. Run the application 2. Press on the arrow to drop the list. 3. Press on the Check-box next to ’B’ (for example...) many times, you will see that the status of the check-box does not change with any click. It seems to be depending on how fast you click on the mouse. If you do it very slow it does not happen, but even in a speed slower then double-click speed it does happen.
|
|
Offer Har
|
Jan 31, 2011 - 8:42 AM
|
Another method of reproducing the bug: 1. Run the application 2. Press on the arrow to drop the list. 3. Press on the check-box of ’A’ 4. quickly press on the check-box of ’B’ You will see that ’B’ is not checked.
|
|
Offer Har
|
Jan 26, 2011 - 8:44 AM
|
Thanks for the updated. Two issues: 1. Is it possible to add hover effect to the check-box? 2. The last check-box touches the black frame of the drop-list - I think you should add one more pixel at the height of the box so it won’t touch it.
|
|
Bogdan Munteanu
|
Dec 29, 2010 - 4:36 AM
|
Hello all, About three weeks ago I sent you an e-mail regarding some flickering in Prof-UIS. That flickering happens whenever resizing the main frame of an MDI application with docking control bars (like Prof Studio). My email contains a detailed description and several snaphots I cannot attach to this board. Could you please confirm its status? Thank you, Bogdan
|
|
Charles Bisbee
|
Dec 29, 2010 - 2:09 AM
|
I have a class that was previously derived from CButton. Its job is to paint a png file. It works in non Prof UIS application. I need to use it in Prof UIS application. I changed it’s base class to CExtButton from CButton. When it paints the bitmap from png file paints correctly but the background it paints over is the desktop rather than that of the parent window. The parent window is derived from
CExtResizableDialog which is skinned and uses a gradient background. I want by the transparency in the bitmap to show the parent background not the desktop background
The code used to write the bitmap is
void
{
CDC dc;
{
dc.Attach(lpDrawItemStruct->hDC); CPngButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)if(m_bPngBitmapLoaded)//Get device context object
Gdiplus::Graphics graphics(dc);
graphics.DrawImage(m_PngBitMap, 0, 0);
}
ć
}
Perhaps this is not the most ProfUIS compliant approach and I am willing to change it I just need this to work and need it to work soon.
So how to get the transparent area of the bitmap to draw show the area of the parent (gradient skinned background) rather than the desktop.
Please help
Thanks
|
|
Technical Support
|
Dec 30, 2010 - 12:38 PM
|
The CExtIconButton class is a CExtButton -based control displaying a bitmap (CExtIconButton::m_icon::m_bmpNormal ). You can also use CExtLabel control to display your PNG bitmap (CExtLabel::SetBitmapEx() ). Both controls render the CExtBitmap extended bitmap into the Win32 device context surface. The CExtBitmap class is a non CBitmap -based bitmap object which supports per-pixel PNG transparency on any Windows OS including old Windows 95 and NT 4.0. But the CExtBitmap class does not contain PNG loading code. You can use the CExtSkinBitmap class from the ProfSkin library for loading PNG images.
|
|
Rado Manzela
|
Dec 21, 2010 - 8:06 AM
|
I’ve tried to switch from 2.87 to 2.91 and there is bug in CExtPropValDate in property grid. It displays correct date (for example 1/1/2006) when I initially set it, but when I click at month to edit it, it displays date like 1JanJanuary/1/2006 (the "Jan" is selected and I can use up/down arrow to change it and it changes it to 2FebFebruary/1/2006). I guess it is wrong formatter for focused date.
I also want to remove Ofice 2010 themes to keep it at lower size. I’ve commented out //#include "Res2010office\\Res2010office.rc" in the resource.rc. In static release mode it works, but in debug dll, it throws error at g_PaintManager->LoadWinXpTreeBox(m_iconTreeBoxExpanded,true); What else do I need to do to make it working? How can I remove that themes also from theme switcher? Thank you.
|
|
Technical Support
|
Dec 21, 2010 - 11:24 PM
|
We fixed the date time displaying issue. Please drop us an e-mail to the support mail box so we will provide you with the source code update. The CExtPaintManager::LoadWinXpTreeBox() method does not work with resources. Please provide us with some more details about any problems related to this method.
The theme switcher control was created for UI theme demonstration reasons. I.e. it was created for Prof-UIS sample apps. It does allow you to to remove an Office 2010 theme. But it’s based on the CExtToolControlBar control which supports toolbar button removing (CExtToolControlBar::RemoveButton() ). You can use the CExtToolControlBar::CommandToIndex() to convert a theme switching button identifier to a toolbar button index. Theme button identifiers can be found in the ResPM.h file:
#define ID_EXT_PM_THEME_Office2000 29750
#define ID_EXT_PM_THEME_OfficeXP 29751
#define ID_EXT_PM_THEME_Office2003 29752
#define ID_EXT_PM_THEME_Office2003NoThemes 29753
#define ID_EXT_PM_THEME_Studio2005 29754
#define ID_EXT_PM_THEME_Studio2008 29755
#define ID_EXT_PM_THEME_NativeXP 29756
#define ID_EXT_PM_THEME_Office2007_R1 29757
#define ID_EXT_PM_THEME_Office2007_R2_LunaBlue 29758
#define ID_EXT_PM_THEME_Office2007_R2_Obsidian 29759
#define ID_EXT_PM_THEME_Office2007_R2_Silver 29760
#define ID_EXT_PM_THEME_Office2007_R3_LunaBlue 29761
#define ID_EXT_PM_THEME_Office2007_R3_Obsidian 29762
#define ID_EXT_PM_THEME_Office2007_R3_Silver 29763
#define ID_EXT_PM_THEME_Office2010_R1 29764
#define ID_EXT_PM_THEME_Office2010_R2_Blue 29765
#define ID_EXT_PM_THEME_Office2010_R2_Silver 29766
#define ID_EXT_PM_THEME_Office2010_R2_Black 29767
#define ID_EXT_PM_THEME_Studio2010 29768
#define ID_EXT_PM_THEME_ProfSkinPainter 29769
|
|
tera tera
|
Dec 19, 2010 - 7:57 PM
|
|
|
Technical Support
|
Dec 20, 2010 - 8:41 AM
|
Which variant exactly do you need? Left or right? You can use the CExtGridWnd::SiwModifyStyleEx() to apply the __EGWS_EX_PM_COLORS and/or __EGWS_EX_USE_THEME_API styles. The __EGWS_EX_PM_COLORS style makes the grid cells draw their parts using colors from paint manager. I.e. if this style is applied, then grid uses Prof-UIS theme colors. If it’s not applied, then grid uses Windows desktop theme colors. The __EGWS_EX_USE_THEME_API style tells the grid cells they should draw their parts using UxTheme.DLL APIs.
|
|
tera tera
|
Dec 20, 2010 - 5:20 PM
|
I want to draw the right.
I declared it as follows
However, the button is not drawn. m_pMuGrid->SiwModifyStyleEx(
__EGBS_EX_HVI_EVENT_CELLS
|__EGBS_EX_HVI_HIGHLIGHT_CELL
|__EGBS_EX_CELL_TOOLTIPS_OUTER
|__EGBS_EX_CELL_EXPANDING_INNER
|__EGWS_EX_PM_COLORS
,
0,
false
); or m_pMuGrid->SiwModifyStyleEx(
__EGBS_EX_HVI_EVENT_CELLS
|__EGBS_EX_HVI_HIGHLIGHT_CELL
|__EGBS_EX_CELL_TOOLTIPS_OUTER
|__EGBS_EX_CELL_EXPANDING_INNER
|__EGWS_EX_USE_THEME_API
,
0,
false
);
http://ifreeta.dee.cc/20101220/SampleMuGrid3.lzh
|
|
Technical Support
|
Dec 22, 2010 - 11:22 AM
|
Thank you for providing the test project. We added the following code into the CSampleMuGridDlg::OnInitDialog() method (after the AddAnchor ( m_pMuGrid->m_hWnd , __RDA_LT, __RDA_LB ); code):
m_pMuGrid->SiwModifyStyleEx( __EGWS_EX_USE_THEME_API, 0, false );
Then we added the following code into the SampleMuGrid.rc2 file: #if (!defined PROF_UIS_X64) && (!defined PROF_UIS_IA64) && (!defined PROF_UIS_FORCE_NO_MANIFEST)
1 24 DISCARDABLE "res\\manifest_x86.xml"
#endif
Then we copied manifest files into the res subfolder. That’s all. The grid control uses the styles like you requested. Here is the modified version of your test project: http://www.prof-uis.com/download/forums/tmp/SampleMuGrid3-FIXED.zip
|
|
tera tera
|
Dec 19, 2010 - 7:58 PM
|
I am troubled.
|
|
Carsten Pedersen
|
Dec 19, 2010 - 12:05 PM
|
Hi,
I have a CExtListCtrl (ProfUIS 2.91) and want to change the header font. I use the following code:
CExtHeaderCtrl &HdrCtrl = List.GetHeaderCtrl(); HdrCtrl.SetFont(m_FontHeader);
It still just uses the standard font. A test application with a standard CListCtrl using the above code worked perfectly.
Do I need to do anything more to make it work with ProfUIS?
Thanks
|
|
Technical Support
|
Dec 20, 2010 - 10:16 AM
|
The customized header font is currently not supported. We can regard your message as a feature request. The only way to change the header font is to implement a CExtHeaderCtrl -derived class that implements the CExtHeaderCtrl::OnCalcHeaderItemSize() , CExtHeaderCtrl::OnCalcHeaderItemLayout() and CExtHeaderCtrl::OnPaintHeaderItem() virtual methods. This also requires a CExtListCtrl -derived class with the overriden CExtListCtrl::_OnQueryHeaderCtrl() virtual method which returns your improved header control.
|
|
Rado Manzela
|
Dec 17, 2010 - 2:11 PM
|
I’m displaying text using CExtPropertyValue::DescriptionSet(). Is it possible to have simple text hyperlink in the text which just opens soem URL in default web browser? Thank you.
|
|
Dennis Ioakim
|
Dec 16, 2010 - 1:45 AM
|
Good day, I recently reeinstalled Visual Studio 2005 on my PC and i haven’t been able to make ProfUIS work.
The following happens just when the ProfUIS dll is loaded: LDR: LdrpWalkImportDescriptor() failed to probe c:\MyProject\debug\ProfUIS287ud.dll for its manifest, ntstatus 0xc0150002
Debugger:: An unhandled non-continuable exception was thrown during process load
The program ’[1572] Proj.exe: Native’ has exited with code -1072365566 (0xc0150002) I have been using ProfUIS succesfully prior to this and i wonder what may have caused it. Thanx in advance.
|
|
Technical Support
|
Dec 20, 2010 - 9:51 AM
|
If you can provide us with remote desktop access, this will let us stop guessing and check what’s wrong.
|
|
Technical Support
|
Dec 17, 2010 - 1:03 PM
|
Did you rebuild your project(s) completely in newly installed Visual Studio? We suspect some of modules were compiled with one version of libraries when you were debugging them with some other version of libraries.
|
|
Dennis Ioakim
|
Dec 20, 2010 - 8:13 AM
|
I rebuilt my project, but nothing changed. When i recompiled the ProfUIS Libraries however, my projects were working again.
Sadly, i still can’t make your executable examples run. Trying to do so returns the error message box: "The application has failed to start because the application configuration is incorrect..." I’ll try again with your newest version.
|
|
Alastair Watts
|
Dec 15, 2010 - 6:36 AM
|
When all CExtGridWnd rows are hidden and you call: false); RowUnHideAll(
UpdateStaticFilterValueForOuterRow(-1);
The filter value list is incorrectly populated.
|
|
Technical Support
|
Jan 20, 2011 - 2:29 AM
|
There are several very critical errors in the following method:
BOOL CtoolbartestDlg::OnCmdMsg(UINT nID, INT nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
{
CCmdUI * pCmdUI = (CCmdUI*)pExtra;
// update UI
if(nCode == CN_UPDATE_COMMAND_UI)
{
switch(nID)
{
case ID_ADD:
pCmdUI->Enable();
// PROF-UIS TECH SUPPORT: if you are going to change pCmdUI, then return TRUE please
//break; // PROF-UIS TECH SUPPORT: commented
return TRUE; // PROF-UIS TECH SUPPORT: added
}
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
// PROF-UIS TECH SUPPORT: commented block of code
// PROF-UIS TECH SUPPORT: it’s heavy block and it’s very critical error not to analyze nID and pExtra here!
// PROF-UIS TECH SUPPORT: it’s VERY VERY VERY critical error!
// command
if(nCode == CN_COMMAND)
{
m_wndGrid.RowRemove(0);
m_wndGrid.RowUnHideAll(false);
m_wndGrid.UpdateStaticFilterValueForOuterRow(-1);
m_wndGrid.CExtGridWnd::OnGridFilterUpdateForRows(0L, -1L, true, NULL);
m_wndGrid.OnSwUpdateScrollBars();
m_wndGrid.OnSwDoRedraw();
}
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
// PROF-UIS TECH SUPPORT: added instead of commented above (BEGIN) * * * * * * * * * * * *
if( nCode == CN_COMMAND && nID == ID_ADD )
{
if( pExtra == NULL )
{
m_wndGrid.RowRemove(0);
m_wndGrid.RowUnHideAll(false);
m_wndGrid.UpdateStaticFilterValueForOuterRow(-1);
m_wndGrid.CExtGridWnd::OnGridFilterUpdateForRows(0L, -1L, true, NULL);
m_wndGrid.OnSwUpdateScrollBars();
m_wndGrid.OnSwDoRedraw();
}
return TRUE;
}
// PROF-UIS TECH SUPPORT: added instead of commented above (END) * * * * * * * * * * * * *
return CExtResizableDialog::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
}
The value filters work correctly after we apply these fixes.
|
|
Alastair Watts
|
Jan 20, 2011 - 3:47 PM
|
Thanks for the fix ... perhaps you would post the code here so that other can benefit :)
|
|
Alastair Watts
|
Jan 19, 2011 - 10:15 AM
|
|
|
Alastair Watts
|
Dec 15, 2010 - 9:18 AM
|
... infact it seems to fail with both 0 & 1 rows visible. 2+ rows works great!
|
|
LAURA GUGLIELMETTI
|
Dec 14, 2010 - 4:36 AM
|
Dear support, I have the following problem: I need to create a CExtPanelControlBar in order to dock it near other bars, that can be resided by user when it is floating. So I set IsFixedMode to false. But when I drag the window, I have an assert in function FixedBar_IsPaintRowBkMode due to the value if IsFixedMode. Can you please tell me how to create a control bar that is ’Fixed’ when docked (so it acts like CExtPanelControlBar) but can be resized when floating? Thanks Laura
|
|
Technical Support
|
Dec 15, 2010 - 12:48 PM
|
The panel bar and the resizable bar are very different. The panel bar is based on a fixed size when you want to make it resizable. This means you should override all the virtual methods of the CExtPanelControlBar and invoke parent methods of the CExtControlBar class in floating state (IsFloating() ), and CExtPanelControlBar class methods in docked state.
|
|
Fabio Ermotti
|
Dec 10, 2010 - 4:16 AM
|
Is it possible to implement a RibbonBar in a Document of a MDI or FDI application (instead of the Frame)? Thanks Regards Andrea
|
|
Technical Support
|
Dec 10, 2010 - 8:56 AM
|
The CExtRibbonBar class is designed for integration with popup windows floating over the Windows desktop. It cannot be used inside MDI child frames. We can regard your question as a feature request. But please note the ribbon control contains features which require only one ribbon bar to be created at a time. For instance, key tip based button navigation is such kind of feature. The key tip windows are displayed when you pressed the Alt key and only one ribbon bar control should intercept this event and display key tips over ribbon buttons.
|
|
Alastair Watts
|
Dec 9, 2010 - 4:24 AM
|
I’ve tried various flags but haven’t had muck luck
|
|
Technical Support
|
Dec 15, 2010 - 12:49 PM
|
This is correct. The __EGBS_SFB_FULL_ROWS style defines a full single row selection. The __EGBS_SFM_FULL_ROWS defines a full multi rows selection where the selected region can be one solid range of one or more rows. The __EGBS_SFM_ROWS can be used with any of those two modes and it means selection can contain more than one range of rows (more than one single row range or multiple row range).
|
|
Alastair Watts
|
Dec 14, 2010 - 3:13 AM
|
You can still select multiple rows using the shift key when using the following flags:
__EGBS_SFB_FULL_ROWS | __EGBS_SFM_ROWS
|
|
Technical Support
|
Dec 9, 2010 - 9:18 AM
|
The __EGBS_SFB_FULL_ROWS style is what you need.
|
|
Krzysztof Janik
|
Dec 8, 2010 - 3:49 AM
|
Hi, I would like to use in my control view which inherits from CextRichContentScrollWnd.
One of the functionality is to handling user events eg. click on active (link) object in view.
From documentation it looks like I should only implement in my Class, which inherits from CextRichContentScrollWnd, method RciEvent_OnClick. Additional my class is calling in OnCreate RcsModifyStyle(__EXT_RCS_EVENTS_MOUSE_WND_PROC). But my virtual function OnClick is not called.
Could you please tell me what I have to do for handle operator events. BR
|
|
Krzysztof Janik
|
Dec 10, 2010 - 4:21 AM
|
I made my class derived from CextRichGenWnd and method RciEvent_OnClick is still not invoked.
It could be quite big help to have any of sample using reload virtual methods of CextRichContentEvents. Could you give any? Because I did not find any in samples given in install pack of ProfUis.
|
|
Technical Support
|
Dec 20, 2010 - 8:25 AM
|
|
|
Krzysztof Janik
|
Dec 29, 2010 - 8:09 AM
|
I have fond a bug associated with handling operator events.
in your example is enough a little modify html document eg. like that:
strHTML = _T("<html><style> ")
_T("my1st { display:inline-block; border: 2px outset grey; background-color:grey; padding:2px; font-weight:bold; ")
_T(" ui-can-be-hover:yes; ui-can-be-pressed:yes; ui-can-be-focus:yes; } ")
_T("my1st:hover { text-decoration:underline; border: 2px outset lightgrey; background-color:lightgrey; } ")
_T("my1st:pressed { border: 2px inset grey; } ")
_T("</style>")
_T("<i>We have some text here ... and we have some <br>")
_T("<my1st id=\"one\">clickable (one,my1st)</my1st> element. We also have other <br>")
_T("*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>*<br>")
_T("<my1st id=\"two\">clickable (two,my1st)</my1st> element here. This is another <br>")
_T("<my1st id=\"third\">clickable (third,my1st)</my1st> element. <br>"); and click for buttons two and third will not to be handled.
Problem is in file extscrollwnd.cpp line 9472
"if( m_nVkPressed == nChar && pRCI_LastSupportingPressed != NULL && pRCI_LastSupportingPressed->CalcEffectiveRect().PtInRect( point ) )"
the last conditional element will return false.
point is not mowed with scroll vector.
Could You please check and correct the problem.
|
|
Krzysztof Janik
|
Dec 22, 2010 - 7:00 AM
|
Thank you for the sample. It has given me ability to check what my problem is.
In my opinion it doesn’t work how one can expected. Because it is not enough to reload virtual method and check what kind of item was clicked. To have handled "operator events" in the control derived from CextRichGenWnd is needed to add to html content (document or css) style (eg. a:pressed { }). What puts requirement to write document in special way. Please tell me if I am wrong?
|
|
Technical Support
|
Dec 22, 2010 - 9:01 AM
|
You should write HTML in a special way if you need to create a funny UI like the backstage view in a ribbon bar. You should write classic HTML if you need classic elements like hyperlinks. If you need to handle clicks of more than one element of one type, your elements should have some unique tag parameters. We used ID. You can use NAME or any non-standard tags. I.e. you heed to code some HTML if you want to see something. We provided a simple sample app which explicitly specifies HTML. The ribbon bar’s backstage view control does approximately the same, but it generates HTML on the fly using HTREEITEM based tree data structure describing the logical structure of the backstage view. Please provide us with more details about your task.
|
|
Technical Support
|
Dec 9, 2010 - 11:17 AM
|
You can override the CExtRichContentScrollWnd::OnRcsAnalyzeMouseClickEvent() virtual method to handle any mouse click. You should override the CExtRichGenWnd::RciEvent_OnClick() virtual method to handle click on HTML elements. If the last method is not invoked then you have not loaded HTML into the CExtRichContentScrollWnd control or its window is disabled.
|
|
Krzysztof Janik
|
Dec 14, 2010 - 3:19 AM
|
I made my class derived from CextRichGenWnd and method RciEvent_OnClick is still not invoked.
It could be quite big help to have any of sample using reload virtual methods of CextRichContentEvents. Could you give any? Because I did not find any in samples given in install pack of ProfUis.
|