Subject |
Author |
Date |
|
Jia Hong Li
|
Apr 3, 2007 - 9:22 AM
|
|
|
Jia Hong Li
|
Apr 3, 2007 - 9:28 AM
|
PS: the function from Microsoft Office Word 2007
|
|
Technical Support
|
Apr 3, 2007 - 10:06 AM
|
|
|
Jia Hong Li
|
Apr 3, 2007 - 10:33 AM
|
|
|
Jia Hong Li
|
Apr 3, 2007 - 10:34 AM
|
|
|
Technical Support
|
Apr 3, 2007 - 11:45 AM
|
Thank you for reporting this problem. It’s a local bug in the ZoomScrollBar sample. But please note that it has nothing to do with the functionality of the CExtZoomScrollBar and CExtScrollBar classes.
|
|
Brian Horn
|
Apr 3, 2007 - 5:31 AM
|
I have created one MDI MFC sample application for your reference. This application contains 2 ribbonbars. For the very first time application executes it shows ribbonbar. I have 2 problems. They are as below.
How to run this application:
Click on file->Recentfiles->Recentfile it hides first ribbonbar and displays new ribbonbar with only help node.
Problem:
1. In first ribbonbar if I add some buttons to quick access bar using customize quick access toolbar menu and then I click on Recentfile button that will hide current ribbonbar and display new ribbonbar. On second ribbonbar also if I add some more customize new buttons then close the application. Then next time my application should load the default ribbonbar with customized toolbar and on click of Recentfiles it should load second ribbonbar with customized buttons as well.
2. There is one more problem. When I click on recent file it will hide the first ribbonbar and display new ribbonbar. But new ribbonbar is not showing window title in middle of the screen. Its left aligned. How to fix this problem as well?
Please refer Sample application which is sent by "ayubkhan.pathan@mscsoftware.com" to support team.
|
|
Technical Support
|
Apr 3, 2007 - 9:24 AM
|
Thank you for the interesting questions and your test project. Both ribbon controls have different content. This means they should use different registry locations for loading/saving their states. We emailed the fixed project to the specified address.
|
|
Dusan Gibarac
|
Apr 2, 2007 - 1:11 PM
|
can not be seen before we go with mouse over control. GroupBox is defined as CExtGroupBox. If we switch back and keep Microsoft definition of GroupBox which is CButton, everything is OK, button inside the box is immediately seen.
Dusan.
|
|
Suhai Gyorgy
|
Apr 3, 2007 - 1:16 AM
|
|
|
Brian Horn
|
Apr 2, 2007 - 7:13 AM
|
If i have one CExtRibbonNode and i want to set balloon tooltip to it Could you suggest how to do the same .
Currently what i am using is like CExtRibbonNode * pNode=new CExtRibbonNode( ID_BUTTON, 0, NULL, 0, tempStr ); g_CmdManager->CmdAllocPtr(g_CmdManager->ProfileNameFromWnd(m_hWnd),ID_BUTTON)->m_sTipTool = _T("Button");
but if text("Button") is too long it is getting clipped i want to use balloon tooltip or any different way to set tooltip.
If this is fixed in latest build then let us know the link to download it.
|
|
Technical Support
|
Apr 2, 2007 - 9:55 AM
|
We would recommend you download the latest source code from our ftp site and then use the new ribbon screen tips instead. Please contact us via email if you do not know how to download it.
|
|
Brian Horn
|
Apr 3, 2007 - 11:41 AM
|
Could you send us a ftp login details please?
|
|
Technical Support
|
Apr 3, 2007 - 11:47 AM
|
We are sorry but we cannot open up the login information here because the source code is available only to subscribers. Please contact us via email.
|
|
Dusan Gibarac
|
Mar 30, 2007 - 2:20 PM
|
We do not need ability to resize the window. Can we use class CExtResizableDialog and some initialization that prevents resizing or we have to use CDialog instead? Are we losing anything using CDialog instead of CExtResizableDialog aside resizing feature?
Dusan
|
|
Dusan Gibarac
|
Mar 30, 2007 - 3:31 PM
|
Resolved as explain somewhere else: In form OnInitDialog function we say: ShowSizeGrip(false); AND form resorce Border choice switched from ’resizable’ to anything else.
|
|
Technical Support
|
Mar 31, 2007 - 9:44 AM
|
In some cases you may need to restrict dialog resizing partially (e.g. only horizontally, only vertically or only greater than some size and less than some other size). This can be set with the SetMinTrackSize() and SetMaxTrackSize() methods that should be called in the OnInitDialog() method of your dialog class. These methods are declared in the CExtWA template class which is used as the base class of CExtResizableDialog .
Generally, the CExtResizableDialog class is an extended version of the MFC’s CDialog . It is extended by the CExtWA template class (which provides anchoring features) and by the CExtWS template class (which provides a skinned look of the dialog’s client area). You can use any of these template classes with your MFC window classes instead of CExtResizableDialog .
|
|
Svetlozar Kostadinov
|
Mar 30, 2007 - 11:21 AM
|
|
|
Technical Support
|
Apr 2, 2007 - 8:58 AM
|
ProfAuto is a library that does not contain any creatable objects. You could use your own creatable COM object that returns the IExtAutoWindow object implemented in ProfAuto via some property or method of your object. The FrameFeatures ActiveX control is kind of such an object and you can insert it into .NET project and Windows Forms form.
|
|
Svetlozar Kostadinov
|
Apr 2, 2007 - 8:16 AM
|
I found that this is something related to my computer, because on my colleague’s computer it doesn’t appear any problem.
|
|
Suhai Gyorgy
|
Mar 30, 2007 - 9:16 AM
|
When I call CExtGridCellComboBox::SetItemString for the selected item, text of the cell doesn’t get changed. I’d like to do this in a PropertyGrid, so calling TextSet myself would mess up default-active state of the property (turning it bold). Could SetItemString check if it is the selected item and change text of cell accordingly? Thank you!
|
|
Technical Support
|
Mar 30, 2007 - 12:03 PM
|
The combo box cell supports independently two types of text properties: cell text and text of each item. The selected item index is the third independent property of the combo box cell. On the one hand, the combo box cell is a simple text cell with a drop-down button. But the cell’s text is assigned from the list box when the user selects it and the combo box common control with an edit control inside works in the same way. You can invoke its CWnd::SetWindowText() method and set any custom text that may be different from the strings you can see in the list box.
But the CExtGridCellComboBox cell class supports a special enumeration mode which resets the index of the selected string. The enumeration mode also allows you to change the selected string by double clicking the cell’s text area. It can be turned on with CExtGridCellComboBox::SetEnumMode() method.
If you don’t need the combo box cell in the enumeration mode due to some of its specific behavior in this mode, the it’s not difficult to code a small combo box cell class in scope of your project and make it working as you want: // INSERT THIS CODE IN SOME HEADER FILE IN YOUR PROJECT
class CAutoSelectTextCellComboBox : public CExtGridCellComboBox
{
public:
DECLARE_SERIAL( CAutoSelectTextCellComboBox );
IMPLEMENT_ExtGridCell_Clone( CAutoSelectTextCellComboBox, CExtGridCellComboBox );
CAutoSelectTextCellComboBox(
CExtGridDataProvider * pDataProvider = NULL
)
: CExtGridCellComboBox( pDataProvider )
{
}
virtual ~CAutoSelectTextCellComboBox ()
{
}
virtual void TextSet(
__EXT_MFC_SAFE_LPCTSTR str = __EXT_MFC_SAFE_LPCTSTR(NULL), // empty text
bool bAllowChangeDataType = false
)
{
ASSERT_VALID( this );
CExtGridCellComboBox::TextSet( str, bAllowChangeDataType );
if( GetEnumMode() )
return; // the rest of the work is already done in CExtGridCellComboBox::TextSet ()
LONG nNewCurSel =
FindStringExact( str );
if( nNewCurSel < 0 )
{
if( _tcscmp( str, _T("") ) != 0 )
SetCurSel( -1, true );
return;
}
LONG nOldCurSel = GetCurSel();
if( nNewCurSel == nOldCurSel )
return;
SetCurSel( nNewCurSel );
}
};
// INSERT THIS CODE IN SOME SOURCE FILE IN YOUR PROJECT BEFORE MFC’s DEBUG new OPERATOR DECLARATION
IMPLEMENT_SERIAL( CAutoSelectTextCellComboBox, CExtGridCellComboBox, VERSIONABLE_SCHEMA|1 );
|
|
Vincent Lin
|
Mar 30, 2007 - 2:59 AM
|
Dear Sir, I get a error message while program exit, As bellow, ------------------------------------------------------------------------------------------- Unhandled exception at 0x009ea9e1 (ProfUIS264ud.dll) in ProfUIS_Controls-ud.exe: 0xC0000005: Access violation reading location 0x027c62f4. ------------------------------------------------------------------------------------------- I have try to reduce the one class members of my program , the message is not appear anymore. so, is there constrain for class members number ?
|
|
Vincent Lin
|
Apr 2, 2007 - 2:33 AM
|
Dear Suhai, My program is dialog-based , and got a error message as below, ’CExtHookSink::RemoveAllWndHooks’ : illegal call of non-static member function
|
|
Vincent Lin
|
Apr 1, 2007 - 7:54 PM
|
Dear Suhai, the problem still persists. by the way, the program is broken in file "afxtempl.h" AFX_INLINE INT_PTR CArray<TYPE, ARG_TYPE>::GetSize() const { return m_nSize; }
|
|
Technical Support
|
Apr 2, 2007 - 8:00 AM
|
Would you send us your project so we can check it on our side?
|
|
Suhai Gyorgy
|
Apr 2, 2007 - 1:58 AM
|
Sorry I forgot, if you are using the ProfUIS customization subsystem, you need to add another line as well: // this line is needed if the CMainFrame class is derived from the CExtCustomizeSite class CExtCustomizeSite::RemoveAllWndHooks(); // m_wndMenuBar.RemoveAllWndHooks(); ... // other codes of CMainFrame::DestroyWindow
|
|
Vincent Lin
|
Mar 30, 2007 - 5:15 AM
|
the call stack is below,
> ProfUIS264ud.dll!CArray<CExtHookSink *,CExtHookSink *>::GetSize() Line 279 + 0x11 bytes C++ ProfUIS264ud.dll!CExtHookSink::HookChains_t::HookChainsWindowProc(unsigned int nMessage=0x00000082, unsigned int & wParam=0x00000000, long & lParam=0x00000000) Line 239 + 0xb bytes C++ ProfUIS264ud.dll!CExtHookSink::HookChains_t::g_HookWndProc(HWND__ * hWnd=0x01a015fe, unsigned int nMessage=0x00000082, unsigned int wParam=0x00000000, long lParam=0x00000000) Line 287 + 0x14 bytes C++ user32.dll!77d18734() [Frames below may be incorrect and/or missing, no symbols loaded for user32.dll] user32.dll!77d1d05b() user32.dll!77d1b4c0() user32.dll!77d1dabd() ntdll.dll!7c92eae3() user32.dll!77d1daf6() mfc80ud.dll!CWnd::DestroyWindow() Line 993 + 0xd bytes C++ ProfUIS264ud.dll!CExtResDlg::_DoModalImpl() Line 6080 + 0xf bytes C++ ProfUIS264ud.dll!CExtResDlg::DoModal() Line 6001 + 0x12 bytes C++ ProfUIS_Controls-ud.exe!CMainApp::InitInstance() Line 83 + 0xe bytes C++ mfc80ud.dll!AfxWinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, wchar_t * lpCmdLine=0x00020ac8, int nCmdShow=0x00000001) Line 37 + 0xd bytes C++ ProfUIS_Controls-ud.exe!wWinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, wchar_t * lpCmdLine=0x00020ac8, int nCmdShow=0x00000001) Line 29 C++ ProfUIS_Controls-ud.exe!__tmainCRTStartup() Line 578 + 0x35 bytes C ProfUIS_Controls-ud.exe!wWinMainCRTStartup() Line 403 C kernel32.dll!7c816fd7()
|
|
Suhai Gyorgy
|
Mar 30, 2007 - 6:50 AM
|
Support’s answer in another thread about this: Please add the following line at the very top of CMainFrame::DestroyWindow() and let us know if the problem persits
m_wndMenuBar.RemoveAllWndHooks();
|
|
Suhai Gyorgy
|
Mar 30, 2007 - 5:07 AM
|
I doubt there is a constraint for number of class members. It would help a lot if you could post the call stack when the exception occurs.
|
|
Svetlozar Kostadinov
|
Mar 29, 2007 - 11:51 AM
|
Hi! In the .RC-file of each sample there is a menuitem defined as follows:
MENUITEM "<<< Prof-UIS Themes List >>>", 29999
It seems that Prof-UIS adds the themes list internally somehow. I have added this menuitem to my menu, but the sub menus are not created automatically as it is in the samples. What is that I forget?
|
|
Svetlozar Kostadinov
|
Mar 30, 2007 - 11:59 AM
|
|
|
Suhai Gyorgy
|
Mar 30, 2007 - 2:04 AM
|
You need to create and init a CExtThemeSwitcherToolControlBar member variable in your MainFrame class, and have the lines if( m_wndToolBarUiLook.PreTranslateMessage( pMsg ) ) return TRUE;
at the very beginning of CMainFrame::PreTranslateMessage method (as in those samples you mentioned). This CExtThemeSwitcherToolControlBar::PreTranslateMessage has the code for replacing menuitem having identifier 29999 with the themes list. If you don’t want the user to see the m_wndToolBarUiLook toolbar, you can call ShowControlBar(&m_wndToolBarUiLook, false, false);. The toolbar may still appear in built-in ProfUIS context menus, you can fix that following this FAQ.
|
|
Paul Cowan
|
Mar 29, 2007 - 7:14 AM
|
If there a way to get the CExtTabPageContainer windows (CExtTabPageContainerFlatWnd, CExtTabPageContainerOneNoteWnd, etc) to draw a frame around the contained page such as the standard Windows property sheet does?
|
|
Paul Cowan
|
Mar 29, 2007 - 1:04 PM
|
Wow, I’m very surprised by this. I find this a major limitation in the library. We wish to use the themes and your new controls in our app and have all the non tabbed dialogs looking very nice with the 2007 theme. With this limitation the tabbed dialogs can not use the theme and look proper. We want all our dialogs to have the same appearance and was hoping it would be the themed style. Now we will have to remove the themes from the nontabbed dialogs to have a constant UI. Really hoping you had a solution for this.
|
|
Technical Support
|
Mar 29, 2007 - 11:33 AM
|
No, unfortunately this feature is not supported.
|
|
Brian Horn
|
Mar 29, 2007 - 5:03 AM
|
I have created one sample application. This application contains code for ribbonbar creation and controlbar creation. I have created one controlbar with name output window.
In this application if I resize the control bar and then close the application then I’m getting runtime error in DestroyWindow function for CExtControlBar::ProfileBarStateSave. Can you please tell me how to load values from registry for control bar.
Sample code is sent to support@prof-uis.com by name ayubkhan.pathan@mscsoftware.com with the same subject as above.
|
|
Technical Support
|
Mar 29, 2007 - 11:47 AM
|
We fixed your project and sent it back.
|
|
Brian Horn
|
Mar 29, 2007 - 4:49 AM
|
Hi,
I’m trying to load the saved settings of controlbar and ribbonbar from registry. I wrote code in DestroyWindow() that will store the state of control bar and ribbonbar in registry using CExtControlBar::ProfileBarStateSave, g_CmdManager->SerializeState, g_PaintManager.PaintManagerStateSave, g_CmdManager->ProfileWndRemove, objRibbonbar.CustomizeStateSave. After closing the application DestroyWindow function gets called and it adds values to registry also. But next time when I try to load the application only changed theme gets loaded but application doesn’t load the state of control bar and ribbonbar. I’m sending you the code of CMainFrame::OnCreate() for your reference.
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
//----------------------------------------------PROF-UIS CODE----SN-----------------------------------
if (CExtNCW < CMDIFrameWnd >::OnCreate(lpCreateStruct) == -1)
return -1;
//----------------------------------------------------------------------------------------------------
CString strOutputWindowName;
strOutputWindowName.LoadString(IDS_OUTPUT_WINDOW_NAME);
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
m_wndStatusBar.SetPaneWidth(5,25);
//----------------------------------------------PROF-UIS CODE----SN-----------------------------------
CWinApp* pApp = ::AfxGetApp();
ASSERT( pApp != NULL );
HICON hIcon = pApp->LoadIcon( IDR_MAINFRAME );
ASSERT( hIcon != NULL );
SetIcon( hIcon, TRUE );
SetIcon( hIcon, FALSE );
g_CmdManager->ProfileSetup(
pApp->m_pszProfileName,
GetSafeHwnd()
);
// Create docking Output Window
if( ! CExtControlBar::FrameEnableDocking(this) )
{
ASSERT( FALSE );
return -1;
}
if( ! objRibbonbar.Create(
NULL,
this
)
)
{
TRACE0("Failed to create the m_wndRibbonBar toolbar\n");
return -1; // fail to create
}
objRibbonbar._InitRibbonBar();
BOOL bRibbonVal = objRibbonbar.CustomizeStateLoad(
pApp->m_pszRegistryKey,
pApp->m_pszProfileName,
pApp->m_pszProfileName
);
m_rgbBkColor = m_pWndLabel->GetBkColor();
#if (!defined __EXT_MFC_NO_TAB_CONTROLBARS)
if( ! CExtControlBar::FrameInjectAutoHideAreas(this) )
{
ASSERT( FALSE );
return -1;
}
#endif // (!defined __EXT_MFC_NO_TAB_CONTROLBARS)
if(!m_wndOutput.Create(strOutputWindowName,this,IDR_OUTPUTWINDOW))
{
TRACE(_T("Failed to create dialog bar\n"));
return -1;
}
if( ! CExtControlBar::ProfileBarStateLoad(
this,
pApp->m_pszRegistryKey,
pApp->m_pszProfileName,
pApp->m_pszProfileName,
&m_dataFrameWP
)
)
{
/*m_wndOutput.DockControlBar(AFX_IDW_DOCKBAR_BOTTOM ,1,this,false); //AFX_IDW_DOCKBAR_LEFT
ShowControlBar(&m_wndOutput, TRUE, TRUE);*/
m_wndOutput.m_bGripperStaticallyAtTop = false;
DockControlBar( &m_wndOutput, AFX_IDW_DOCKBAR_BOTTOM);
m_wndOutput.EnableDocking( CBRS_ALIGN_TOP | CBRS_ALIGN_BOTTOM);
m_wndOutput.DockControlBar(AFX_IDW_DOCKBAR_BOTTOM ,1,this,false); //AFX_IDW_DOCKBAR_LEFT
ShowControlBar(&m_wndOutput, FALSE, TRUE);
RecalcLayout();
}
g_CmdManager->SerializeState(
pApp->m_pszProfileName,
pApp->m_pszRegistryKey,
pApp->m_pszProfileName,
false
);
return 0;
}
|
|
Technical Support
|
Mar 29, 2007 - 11:44 AM
|
Please let us know the following details:
1) If the registry location parameters in CExtControlBar::ProfileBarStateSave() in CMainFrame::DestroyWindow() and CExtControlBar::ProfileBarStateLoad() in CMainFrame::OnCreate() are the same?
2) What is returned from CExtControlBar::ProfileBarStateLoad() called from CMainFrame::OnCreate() ? Do any C++ exceptions occur somewhere inside CExtControlBar::ProfileBarStateLoad() ? You can check the latter by enabling the debugger for breaking at any handled/unhandled C++ exceptions
|
|
Eric Reeves
|
Mar 28, 2007 - 12:31 PM
|
I have the report grid setup so that the first column is grouped on. Now I want to go and update the text displayed in the grouping label. This is what I have tried and it fails to get the cell.
How is this supposed to be done?
//get the root item HTREEITEM hRoot = ItemGetRoot();
//check the item if(!hRoot) return;
//get the first item HTREEITEM hItem = this->ItemGetFirstChild(hRoot);
//parse the children of root while(hItem) { //get the cell CExtGridCell *pCell = this->ItemGetCell(hItem, 0);
//get the text of the cell CString strCell; pCell->TextGet(strCell); //get the next item hItem = this->ItemGetNext(hItem, true, false, false); }
|
|
Technical Support
|
Mar 29, 2007 - 11:24 AM
|
Although CExtReportGridWnd class is derived from the CExtTreeGridWnd class and you can also use a HTREEITEM -handle based API implemented in the report grid. You can modify grid cells in the CExtReportGridColumn* columns of CExtReportGridItem* report items using CExtReportGridWnd::ItemGetCell() and finaly update the sort order using CExtReportGridWnd::ReportSortOrderUpdate() .
|
|
Offer Har
|
Mar 28, 2007 - 9:30 AM
|
Dear Support,
I have a cell that has an icon. When the user double click it, I want to open a dialog if the user pressed the icon, or if the cell is not editable, but if the user double-click the text, I want it to go into normal edit mode, and I don’t want the dialog to be opened, as the user goes into the cell’s edit mode.
I override the OnClick , check if nRepCnt is 2 for double-click, but i have no clue if the cell is about to go into in-place edit or not. How can I know this?
Thanks, Ron.
|
|
Technical Support
|
Mar 30, 2007 - 12:29 PM
|
You can use the CExtGridWnd::GridCellRectsGet() method that gets the location of the grid cell and its parts. The location is specified in pixels relative to the grid window’s client area.
|
|
Brian Horn
|
Mar 28, 2007 - 7:08 AM
|
How to load a .gif image as splash screen. Which prof class/method support this .
|
|
Technical Support
|
Mar 28, 2007 - 9:13 AM
|
At the moment there are two image formats supported in Prof-UIS: bmp and png. There is a CExtBitmap class, written from scratch, which supports 32-bit bitmaps (loading, saving, and serialization) and is 100% supported even on Windows 9x/NT4. There is another class, CExtBitmapSkin , which is derived from CExtBitmap and supports 32-bit png images. CExtBitmapSkin is implemented using the well known and free LibPNG and ZLib libraries.
It would not be a problem to use other libraries for reading GIF images but we are using mostly 32-bit images with alpha channel and lossless formats. So other formats have been considered redundant so far.
|
|
tera t
|
Mar 27, 2007 - 11:01 PM
|
Hi
I want to appoint print pages in CExtPPVW.
Thank you.
|
|
Technical Support
|
Mar 28, 2007 - 10:40 AM
|
This feature is already implemented in the CExtPPVW template class. There are two new flag properties
- if a new CExtPPVW::m_bUsePrintDialogFromOutside flag is set to true, you can see the print dialog with the page number editor when command ID_FILE_PRINT is invoked from outside the print preview subsystem.
- if a new CExtPPVW::m_bUsePrintDialogFromPreview flag is set to true, then you can see the print dialog with the page number editor when command ID_FILE_PRINT is invoked from the toolbar at the top of the print preview window.
Both flags are set to false by default. Please contact us via email if you need this update right now.
|
|
tera t
|
Mar 28, 2007 - 6:07 PM
|
|
|
Technical Support
|
Mar 29, 2007 - 11:32 AM
|
The zipped source code takes up about 13Mb so we can only offer you to download from our ftp site. Please contact us via email for details.
|
|
tera t
|
Mar 29, 2007 - 6:16 PM
|
Hi >The zipped source code takes up about 13Mb so we can only offer you to download from our ftp site. Please contact us via email for details. Where should I download it from?
|
|
tera t
|
Apr 1, 2007 - 6:57 PM
|
Hi
Assert comes out. Or there is a case to fall when I cancel it with a print dialog screen.
Is this a bug? (-0-;)
An example: ASSERT(m_pd.Flags & PD_ENABLEPRINTHOOK); ASSERT(m_pd.Flags & PD_ENABLESETUPHOOK);
|
|
Technical Support
|
Apr 2, 2007 - 8:01 AM
|
Could you show us the content of the call stack window when the assertion occurs?
|
|
tera t
|
Apr 2, 2007 - 6:25 PM
|
Hi
This Is Call Stack.
A pattern (1)
Assert ------------> CPrintDialog::DoModal() line 259 + 37 bytes Assert ------------> CExtPPVW_Printable::DoPrintDoc(int 1) line 1018 + 45 bytes CExtPPVW_HostWnd::OnPreviewPrint() line 3364 + 48 bytes _AfxDispatchCmdMsg(CCmdTarget * 0x026d14d0 {CExtPPVW_HostWnd}, unsigned int 30570, int 0, void (void)* 0x005a3b4c CExtPPVW_HostWnd::OnPreviewPrint(void), void * 0x00000000, unsigned int 12, AFX_CMDHANDLERINFO * 0x00000000) line 88 CCmdTarget::OnCmdMsg(unsigned int 30570, int 0, void * 0x00000000, AFX_CMDHANDLERINFO * 0x00000000) line 302 + 39 bytes CView::OnCmdMsg(unsigned int 30570, int 0, void * 0x00000000, AFX_CMDHANDLERINFO * 0x00000000) line 162 + 24 bytes CWnd::OnCommand(unsigned int 30570, long 0) line 2099 CWnd::OnWndMsg(unsigned int 273, unsigned int 30570, long 0, long * 0x0012f43c) line 1608 + 28 bytes CWnd::WindowProc(unsigned int 273, unsigned int 30570, long 0) line 1596 + 30 bytes CExtPPVW_HostWnd::WindowProc(unsigned int 273, unsigned int 30570, long 0) line 2785 + 23 bytes AfxCallWndProc(CWnd * 0x026d14d0 {CExtPPVW_HostWnd hWnd=???}, HWND__ * 0x00040384, unsigned int 273, unsigned int 30570, long 0) line 215 + 26 bytes AfxWndProc(HWND__ * 0x00040384, unsigned int 273, unsigned int 30570, long 0) line 379 AfxWndProcBase(HWND__ * 0x00040384, unsigned int 273, unsigned int 30570, long 0) line 220 + 21 bytes USER32! 77cf8734() USER32! 77cf8816() USER32! 77cfb4c0() USER32! 77cfb50c() NTDLL! 7c94eae3() USER32! 77d0f3e3() CExtCmdItem::Deliver(HWND__ * 0x00040384, unsigned char 1) line 420 + 27 bytes CExtCmdItem::Deliver(CControlBar * 0x027016b8 {CExtPPVW_ToolBar hWnd=???}, unsigned char 1) line 481 + 29 bytes CExtBarButton::OnDeliverCmd() line 4030 + 22 bytes CExtBarButton::OnClick(CPoint {x=743 y=18}, unsigned char 0) line 3995 + 16 bytes CExtToolControlBar::OnLButtonUp(unsigned int 0, CPoint {x=743 y=18}) line 11341 + 26 bytes CWnd::OnWndMsg(unsigned int 514, unsigned int 0, long 1180391, long * 0x0012fa40) line 1975 CWnd::WindowProc(unsigned int 514, unsigned int 0, long 1180391) line 1596 + 30 bytes CControlBar::WindowProc(unsigned int 514, unsigned int 0, long 1180391) line 480 + 20 bytes CExtControlBar::WindowProc(unsigned int 514, unsigned int 0, long 1180391) line 8535 CExtToolControlBar::WindowProc(unsigned int 514, unsigned int 0, long 1180391) line 12795 CExtPPVW_ToolBar::WindowProc(unsigned int 514, unsigned int 0, long 1180391) line 1534 + 20 bytes AfxCallWndProc(CWnd * 0x027016b8 {CExtPPVW_ToolBar hWnd=???}, HWND__ * 0x00030386, unsigned int 514, unsigned int 0, long 1180391) line 215 + 26 bytes AfxWndProc(HWND__ * 0x00030386, unsigned int 514, unsigned int 0, long 1180391) line 379 AfxWndProcBase(HWND__ * 0x00030386, unsigned int 514, unsigned int 0, long 1180391) line 220 + 21 bytes USER32! 77cf8734() USER32! 77cf8816() USER32! 77cf89cd() USER32! 77cf96c7() CWinThread::PumpMessage() line 853 CWinThread::Run() line 487 + 11 bytes CWinApp::Run() line 400 AfxWinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x00151f08, int 1) line 49 + 11 bytes WinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x00151f08, int 1) line 30 WinMainCRTStartup() line 330 + 54 bytes
A pattern (2)
NTDLL! 7c941230() Assert ------------> _CrtDbgReport(int 2, const char * 0x5f4d1014 THIS_FILE, int 916, const char * 0x00000000, const char Assert ------------> CPreviewDC::MirrorViewportOrg() line 916 + 40 bytes CPreviewDC::MirrorMappingMode(int 0) line 908 CPreviewDC::SetOutputDC(HDC__ * 0x59010d37) line 132 CExtPPVW_HostWnd::OnDraw(CDC * 0x0012de4c {hDC=??? attrib=???}) line 2810 + 40 bytes CExtPPVW_HostWnd::WindowProc(unsigned int 15, unsigned int 0, long 0) line 2705 + 26 bytes AfxCallWndProc(CWnd * 0x026f1028 {CExtPPVW_HostWnd hWnd=???}, HWND__ * 0x00050380, unsigned int 15, unsigned int 0, long 0) line 215 + 26 bytes AfxWndProc(HWND__ * 0x00050380, unsigned int 15, unsigned int 0, long 0) line 379 AfxWndProcBase(HWND__ * 0x00050380, unsigned int 15, unsigned int 0, long 0) line 220 + 21 bytes USER32! 77cf8734() USER32! 77cf8816() USER32! 77cfb4c0() USER32! 77cfb50c() NTDLL! 7c94eae3() USER32! 77cf96c7() CWinThread::PumpMessage() line 853 CExtPPVW_Printable::stat_PrintingAbortProc(HDC__ * 0x02210d49, HDC__ * 0x02210d49) line 757 + 21 bytes GDI32! 77f03943() GDI32! 77f0496c() GDI32! 77f04b56() CDC::StartDocA(_DOCINFOA * 0x0012ec74) line 906 + 62 bytes CExtPPVW_Printable::DoPr
Second Chance Assertion Failed: File dcprev.cpp, Line 916 Second Chance Assertion Failed: File dcprev.cpp, Line 964
|
|
Technical Support
|
Apr 3, 2007 - 9:19 AM
|
Using the SimpleGrids sample, we failed to reproduce the assertion failures you posted above as you can see this on this figure.
Would you tell us if these these call stack listings were produced by some of our sample applications or by your project?
We guess the problem may be hidden somewhere outside our samples. For example, once we encountered a problem that was specific to HP 1022 drivers that crashed when 32-bit BMP images were printing as graphic items inside enhanced metafile data. Would you try to find any additional information which may help us clarify what’s wrong? Of course, after all, we could debug the problem remotely with remote desktop.
|
|
tera t
|
Apr 4, 2007 - 2:57 AM
|
Hi
>Would you tell us if these these call stack listings were produced by some of our sample applications or by your project?
It occurred in SimpleGirds. 1, 2, A print button click. 3, I appoint the print number of sheets. 4, Assert
>you try to find any additional information which may help us clarify what’s wrong? For example, how?
Are you to want to do "Remote Debug" of my PC???
|
|
Technical Support
|
Apr 4, 2007 - 12:16 PM
|
We would like to ask one more detail: Visual Studio version and its Service Pack number you are using if any. We have checked the printing and print preview in the SimpleGrids sample compiled with Visual Studio 6.0 and Visual Studio 2005 without any service pack and no assertions occurred.
>>Are you to want to do "Remote Debug" of my PC??? Yes, we could connect to your desktop remotely so you can demonstrate the problem on spot.
|
|
tera t
|
Apr 4, 2007 - 6:28 PM
|
Hi
>Visual Studio version and its Service Pack number you are using if any. We have checked the printing and print preview in the >SimpleGrids sample compiled with Visual Studio 6.0 and Visual Studio 2005 without any service pack and no assertions occurred
About movement environment.
PC ( Dell Optiplex gx270 )
Visual Studio V6 Service Pack number 6 http://www.microsoft.com/downloads/details.aspx?FamilyId=A8494EDB-2E89-4676-A16A-5C5477CB9713&displaylang=ja Windows XP Service Pack 1
PC ( Dell C521 )
Visual Studio 2003 .NET ( There is not a Service Pack ) Windows XP Service Pack 2 OR Visual Studio V6 Service Pack number 6 Windows XP Service Pack 2
Printer Epson LP-9800C Xerox DocuCenter 250/350/400
All was no use.
>Yes, we could connect to your desktop remotely so you can demonstrate the problem on spot. Do I have to install a module here to do "Remote Debug"?
I try to test even a home PC.
|
|
tera t
|
Apr 5, 2007 - 5:51 AM
|
If it was the following environment, I was able to print it first of all.
But 25 times of "Assert" appears.
PC (Deminsion 2400)
Windows XP
Visual Studio 2003 .NET ( There is not a Service Pack ) OR Visual Studio V6 Service Pack number 6
Simple-Girds-md.exe ( M Debug )
Printer Canon MP-950
|
|
Technical Support
|
Apr 7, 2007 - 1:43 PM
|
We sent you the details about remote debuging by email.
|
|
tera t
|
Apr 8, 2007 - 6:55 PM
|
HI
I prepare for environment. Please wait.
|
|
Technical Support
|
Apr 9, 2007 - 1:13 PM
|
|
|
tera t
|
Apr 12, 2007 - 2:17 AM
|
Hi
I prepared. Please test it.
In addition, the time that you can take advantage of. 04/19-10:00 ~ 04/19-19:00 (American Time) If more debug is necessary, please answer it.
Then please do not read a private thing if possible.
|
|
tera t
|
Apr 12, 2007 - 2:19 AM
|
I made a mistake in a date.
04/12-10:00 ~ 04/12-19:00 (American Time) If more debug is necessary, please answer it.
|
|
tera t
|
Apr 13, 2007 - 3:34 AM
|
Hi
I was able to print it rightly.
Thank you.
|
|
Dusan Gibarac
|
Mar 27, 2007 - 3:48 PM
|
With MFC one can use Propery Sheet in two modes: DOModal() and SetWizardMode() what allows one to use first one when updating data via random tabs and the other one when entering data into tabs one by one orderly. Is there any sample for such functionality with Prof-UIS.
Thanks, Dushan.
|
|
Technical Support
|
Mar 28, 2007 - 7:05 AM
|
There is a CExtResizablePropertySheet class in Prof-UIS which is an enhanced version of MFC’s CPropertySheet . You can take a look at how to use the wizard mode in the ResizablePropertySheet sample.
|
|
Stan Miasnikov
|
Mar 27, 2007 - 12:50 PM
|
Hi,
I am using version 2.64. My program used to work wth 2.62, but I since recompiled it with 2.64 it started to crash when exiting. I saw in the forum that you have fied something related to this, but it actually used to work (in my case) with older version of the library and now it crashes in both debug and release. There were no changes in our code, the only difference is that I am using a newer verson of the library.
Thanks,
|
|
Stan Miasnikov
|
Mar 28, 2007 - 4:08 PM
|
Thanks.
Well, this did not help, but gave me general idea. I had a CExtTabPageContainerWnd control in one of the dockable frames, so I added this:
void CFilesWnd::OnDestroy() { m_wndTab.RemoveAllWndHooks(); CWnd::OnDestroy(); }
and also
CMainFrame::DestroyWindow() { m_wndMenuBar.RemoveAllWndHooks(); this->RemoveAllWndHooks();
CFrameWnd::DestroyWindow() }
and now it seems to work but I need to do more testing.
Just to make sure, I recompiled the same code (without the above changes) with 2.62 and it worked as before, so this issue is related to the changes made after 2.62.
|
|
Stan Miasnikov
|
Mar 27, 2007 - 12:55 PM
|
I basically have now the same problem as described in "CExtHookSink problem Mar 7, 2007 - 6:47 AM ", but I could not find a solution to the problem in this forum yet. It is rather urget...
|
|
Technical Support
|
Mar 28, 2007 - 7:08 AM
|
Please add the following line at the very top of CMainFrame::DestroyWindow() and let us know if the problem persits m_wndMenuBar.RemoveAllWndHooks();
|
|
Offer Har
|
Mar 27, 2007 - 6:16 AM
|
Dear Support,
I have a CScrollView derived class, and it appears with the XP native scroll-bars. How can I make the scroll bars be Prof-UIS themed?
Thanks, Ron.
|
|
Suhai Gyorgy
|
Mar 27, 2007 - 6:49 AM
|
You can learn more about themed scrollbars if you look at this sample.
|
|
Offer Har
|
Mar 27, 2007 - 7:15 AM
|
Dear Suhai & Support,
I used your project to skin my scroll-view scroll bars, thanks. However, there is one problem - the square at the right-bottom side of the view, is not being drawn correctly - it is left with some garbage. You can see it also in the sample application you referred me to.
How can this be fixed?
Thanks, Ron.
|
|
Offer Har
|
Mar 27, 2007 - 6:58 AM
|
Dear Suhai & Support,
I think the scroll-bar theme should be an integral part of Prof-UIS. Some kind of templating that adds the scroll-bar themes should be provided.
Regards, Ron.
|
|
Technical Support
|
Mar 27, 2007 - 7:41 AM
|
We answered a similar question in this forum thread. You can also see an example of themed scroll bars in the DrawCli sample (the CDrawView class).
|
|
Offer Har
|
Mar 27, 2007 - 8:58 AM
|
Dear Support,
I tried to do exactly what is done in the suggested thread, and no scroll-bars appear. I tried what Suhai suggested, and it worked - All I did is add this line:
SkinWndScroll(this); My only problem is the right-bottom square that is not redrawn correctly. How can this be fixed? Thanks, Ron.
|
|
Technical Support
|
Mar 28, 2007 - 10:35 AM
|
This area should be painted manually by your scroll view window. This problem is solved in our CExtScrollWnd class (see the OnSwPaintAreaBetweenScrollBarWindows() method).
|
|
Offer Har
|
Mar 28, 2007 - 11:12 AM
|
Dear Support,
I am using CSkinScrollWnd , so I updated the empty OnPaint with this code:
void CSkinScrollWnd::OnPaint()
{
CPaintDC dc(this); // device context for painting
if (m_sbHorz.IsWindowVisible() && m_sbVert.IsWindowVisible())
{
CRect rcH, rcV;
m_sbHorz.GetWindowRect(rcH);
m_sbVert.GetWindowRect(rcV);
ScreenToClient( &rcH );
ScreenToClient( &rcV );
CRect rcAreaBetweenScrollBarWindows;
rcAreaBetweenScrollBarWindows.SetRect( rcV.left, rcH.top, rcV.right, rcH.bottom );
dc.FillSolidRect(
&rcAreaBetweenScrollBarWindows,
g_PaintManager->GetColor( COLOR_3DFACE )
);
}
} And it works. Regards, Ron.
|
|
Technical Support
|
Mar 29, 2007 - 3:31 AM
|
The ::IsWindowVisible( hWnd ) code returns TRUE if the hWnd window has the WS_VISIBLE style and if it is not covered completely by any other window, i.e. if it is really visible on the screen. This API is not applicable in the code snippet listed in your message. You should simply check for the presence of the WS_VISIBLE style instead. So you should replace if( m_sbHorz.IsWindowVisible() && m_sbVert.IsWindowVisible() ) with if( (m_sbHorz.GetStyle()&WS_VISIBLE) != 0 && (m_sbVert.GetStyle()&WS_VISIBLE) != 0 )
|
|
Brian Horn
|
Mar 27, 2007 - 3:06 AM
|
How can I find out name of last loaded skin(theme) for prof-uis application?
|
|
Technical Support
|
Mar 27, 2007 - 7:53 AM
|
You can do this with g_PaintManager.GetPaintManagerName() , which returns a name of the current paint manager. The returned value is of the CExtPaintManager::e_paint_manager_name_t enumeration type: enum e_paint_manager_name_t
{
Office2000 = 29901,
OfficeXP = 29902,
Office2003 = 29903,
Office2003NoThemes = 29904,
Studio2005 = 29905,
NativeXP = 29906,
Office2007_R1 = 29907,
Office2007_R2_LunaBlue = 29908,
Office2007_R2_Obsidian = 29909,
Office2007_R2_Silver = 29910,
Office2007_R3_LunaBlue = 29911,
Office2007_R3_Obsidian = 29912,
Office2007_R3_Silver = 29913,
ProfSkinPainter = 29914,
};
|