|
This is a solution from earlier post::
1. precompiled header error
go to the "project" -> "settings" menu, choose "settings for all configurations", choose the "C/C++" screen and there the category "precompiled headers". select the second radio button for using precompiled headers autommaticly with the header "stdafx.h"
2. other build problems
try to build a "Win32 Release" or "Win32 Debug" instead of a "Win32 Unicode Release" or "Win32 Unicode Debug". For this go to "build" -> "set active configuration" menu and choose "XGRAPH - Win32 Release" or "XGRAPH - Win32 Debug"
3. doubleclick / properties bug:
search for "cbFillCurve" in CurveDlg.cpp, CurveDlg.h and resource.h, and comment out all the lines including this string.
4. background-redrawing bug:
go to XGRAPH.cpp, search for the string "pmdc = new CMemDC(pdc)" (should be about line 920), comment it out and add the four following lines insetead of it:
CRect empty, client;
GetClientRect( client );
empty.SetRectEmpty();
pmdc = new CMemDC(pdc, empty, client);
hope it could help. regards from Lake Constance, greg.
|
|
|
|
|
Could you upload the whole source code of the demo(binary version) project?
It is difficult to me to use the class member funtion...
iskim2002@korea.com
|
|
|
|
|
Hello.
I use MSVC 6 SP5, I can build, but when double clicking on curves, axes, ... i get exception... with compiled dll from example work all ok, but there not dll and library with debug information... What I do wrong or maybe other version need to build?
With best regrads,
Andrey.
|
|
|
|
|
The application is failing due to a missing control on a dialog box. Go to the dialog box IDD_CURVE in resource editor and add a combo box in between the "Fill area beneath curve" check box and the "Transparent" check box. In the Properties set the ID to IDC_CBFILLCURVE. Rebuild and Bob's your uncle. Best of luck.
|
|
|
|
|
Hello Gunnar,
I have noticed a problem with clipping, when moving a XGraph window out of a client's range. This comes from CMemDC using the inner clipping area, which is wrong in this context.
CMemDC(CDC* pDC, int nOffset = 0) : CDC()
{
ASSERT(pDC != NULL);
m_pDC = pDC;
m_pOldBitmap = NULL;
m_bMemDC = !pDC->IsPrinting();
m_DstRect.SetRectEmpty();
if (m_bMemDC) // Create a Memory DC
{
//pDC->GetClipBox(&m_rect); // this would use inner clipping region
pDC->GetWindow()->GetClientRect(&m_rect); // my solution for the moment.
Perhaps you did already know of this...
XGraph is very useful and the code is powerfull and easy to understand, although small code size.
Greetings,
Martin.
|
|
|
|
|
I'm new to xgraph.I keep getting the following error when i trying to compile the demo of xgraph.
XGraph Dll PROGRAM
1. Go to the "project" -> "settings" menu, choose "settings for all configurations",
choose the "General" screen and there the category
"Character Set = Use Unicode Character Set"
DEMO PROGRAM
2. Go to the "project" -> "settings" menu, choose "settings for all configurations",
choose the "General" screen and there the category
"Character Set = Use Unicode Character Set"
3.Demo program have this error:
Linking...
Creating library .\Debug/XGraphTest.lib and object .\Debug/XGraphTest.exp
PropertyView.obj : error LNK2019: unresolved external symbol "public: class CXGraphLabel & __thiscall CXGraph::InsertLabel(class ATL::CStringT<unsigned short,class="" strtraitmfc<unsigned="" atl::chtraitscrt<unsigned="" short=""> > >)" (?InsertLabel@CXGraph@@QAEAAVCXGraphLabel@@V?$CStringT@GV?$StrTraitMFC@GV?$ChTraitsCRT@G@ATL@@@@@ATL@@@Z) referenced in function "protected: void __thiscall CPropertyView::OnInsertLabel(void)" (?OnInsertLabel@CPropertyView@@IAEXXZ)
XGraphTestView.obj : error LNK2019: unresolved external symbol "public: void __thiscall CXGraphAxis::SetColorRange(int,double,double,unsigned long,unsigned long,class ATL::CStringT<unsigned short,class="" strtraitmfc<unsigned="" atl::chtraitscrt<unsigned="" short=""> > >,unsigned int)" (?SetColorRange@CXGraphAxis@@QAEXHNNKKV?$CStringT@GV?$StrTraitMFC@GV?$ChTraitsCRT@G@ATL@@@@@ATL@@I@Z) referenced in function "public: void __thiscall CXGraphTestView::AddDataSerie(bool)" (?AddDataSerie@CXGraphTestView@@QAEX_N@Z)
.\Debug/XGraphTest.exe : fatal error LNK1120: 2 unresolved externals
4.Can the XGraph be use whit "Character Set = Use Unicode Character Set"?
any ideas on this problem, it will would be a great help.
|
|
|
|
|
How can I use it as an ActiveX, for VB and C++Builder? "regsvr32 XGRAPH10.dll" will not work.
Thanks in advance!
-Kona
|
|
|
|
|
You must code an active wrapper arround this control. The dll is no activex server.
Bye
|
|
|
|
|
Is there anyway to force an axis to be re-scaled? In the case of using the control like an oscilloscope where data is changing continuously, I'd need to re-scale the Y axis when the values viewed are lower than the ones rescaled at the first moment.
Thanks in advance,
Marc Soleda
|
|
|
|
|
I am not too familiar with Printing. How do I use the PrintGraph function?
Can you provide me with some sample codes?
Thanks
|
|
|
|
|
sorry I didn't want to post twice =(
|
|
|
|
|
i tried it with the following code pasted in the selfmade function of my view class, but all i get is an empty sheet of paper... =(
CPrintDialog dlgPrint(FALSE,PD_ALLPAGES,this);
if (dlgPrint.DoModal()==IDOK)
{
CDC dcPrint;
dcPrint.Attach(dlgPrint.GetPrinterDC());
DOCINFO myPrintJob;
myPrintJob.cbSize = sizeof(myPrintJob);
myPrintJob.lpszDocName = "My Printjob";
myPrintJob.lpszOutput = NULL;
myPrintJob.lpszDatatype = NULL;
myPrintJob.fwType = NULL;
if (dcPrint.StartDoc(&myPrintJob)>=0)
{
dcPrint.StartPage();
m_Graph[0].PrintGraph(&dcPrint);
dcPrint.EndPage();
dcPrint.EndDoc();
}
dcPrint.DeleteDC();
}
can anybody help?
|
|
|
|
|
i also tried
if ( pDC->IsPrinting() )
m_Graph[0].PrintGraph(pDC);
in the OnDraw function of my view class - same problem: all i get is an empty sheet of paper =(
|
|
|
|
|
I Have the same Problem. If you show in the Printgraph function, you will see that OnPaint function is used and in this function printing member of the DC is set to False.
I think, ( and I will test this), you must modify the function Printgraph and use a new function derived from on paint.
|
|
|
|
|
Sorry, but the new version indeed contains a printing bug.
In CXGraph::OnPaint replace everything above "clChartRect.left = clRect.left + m_nLeftMargin " with the following code :
CDCEx* pDC; <br />
CMemDC* pmdc = NULL;<br />
CPaintDC* pdc = new CPaintDC(this);<br />
CRect clRect, clChartRect;<br />
int nSaveDC;<br />
bool bMustDeleteDC = false;<br />
<br />
m_oldCursorPoint = CPoint(-1, -1);<br />
<br />
if (m_pPrintDC != NULL)<br />
{<br />
pDC = new CDCEx;<br />
pDC->Attach (m_pPrintDC->m_hDC);<br />
pDC->m_bPrinting = true;<br />
<br />
bMustDeleteDC = true;<br />
}<br />
else<br />
if(m_pDrawDC != NULL)<br />
pDC = (CDCEx*) m_pDrawDC;<br />
else<br />
{<br />
pDC = new CDCEx;<br />
bMustDeleteDC = true;<br />
}<br />
<br />
<br />
if (m_pPrintDC == NULL)<br />
{<br />
if (m_bDoubleBuffer)<br />
{<br />
pmdc = new CMemDC(pdc);<br />
pDC->Attach(pmdc->m_hDC);<br />
nSaveDC = pDC->SaveDC();<br />
pDC->m_bMono = false;<br />
pDC->m_bPrinting = false;<br />
pDC->m_bPrintPreview = false;<br />
}<br />
else<br />
{<br />
pDC->Attach(pdc->m_hDC);<br />
nSaveDC = pDC->SaveDC();<br />
pDC->m_bMono = false;<br />
pDC->m_bPrinting = false;<br />
pDC->m_bPrintPreview = false;<br />
}<br />
}<br />
<br />
m_oldCursorPoint = CPoint(-1, -1);<br />
<br />
if (pDC->m_bPrinting)<br />
clRect = m_clPrintRect;<br />
else <br />
GetClientRect(clRect);<br />
<br />
if (pDC->m_bMono)<br />
pDC->FillSolidRect(clRect, RGB(255,255,255));<br />
else<br />
pDC->FillSolidRect(clRect, m_crBackColor);<br />
Furthermore, replace erverything beginning with "pDC->RestoreDC(nSaveDC); " (at the end of the function) with :
if (nSaveDC)<br />
pDC->RestoreDC(nSaveDC);<br />
<br />
pDC->Detach();<br />
<br />
if (bMustDeleteDC && pDC)<br />
delete pDC;<br />
<br />
if (pmdc)<br />
delete pmdc;<br />
<br />
if (pdc)<br />
delete pdc;
Regards
Gunnar
|
|
|
|
|
many thanks, gunnar! it's a great tool you have written. best regards, greg.
|
|
|
|
|
printing preview still crashes. in debug mode VC6
|
|
|
|
|
|
When I do print preview, I only get a tiny graph on the up left corner? How do I fix that bug?
thanks
ahgu
|
|
|
|
|
I am not too familiar with Printing. How do I use the PrintGraph function?
Can you provide me with some sample codes?
Thanks
|
|
|
|
|
when i call create i get an unhandled exception
this is the line of code, modified slightly from the example.
m_Graph.Create(_T("XGraph"),_T(""), WS_CHILD|WS_VISIBLE, clRect, this, 1001);
i get the exceptiom
Unhandled exception at 0x1000b35e in testXGraph2.exe: 0xC0000005: Access violation reading location 0x00000020.
|
|
|
|
|
If you have the control inside a dialog you should relate it with an static control (a picture is ok) IDC_STATIC_PICTURE:
<br />
CWnd* pWnd = GetDlgItem(IDC_STATIC_PICTURE);<br />
pWnd->GetClientRect(clRect);<br />
m_Graph.Create(_T("XGraph"),_T(""), WS_CHILD|WS_VISIBLE, clRect, pWnd, IDC_STATIC_PICTURE);<br />
hope it helps,
Marc Soleda
|
|
|
|
|
i'm new to visual c++ and xgraph.
i keep getting the following error when i trying to implement a small demo of xgraph in a standard sdi app.
testXGraph2 error LNK2001: unresolved external symbol "public: virtual void __thiscall CtestXGraph2View::OnInitialUpdate(void)" (?OnInitialUpdate@CtestXGraph2View@@UAEXXZ)
i'm not sure what the problem is.
Also when i try to compile the demo program i get the following error
XGraphTest error LNK2019: unresolved external symbol "public: class CXGraphLabel & __thiscall CXGraph::InsertLabel(class ATL::CStringT<char,class strtraitmfc_dll<char,class="" atl::chtraitscrt<char=""> > >)" (?InsertLabel@CXGraph@@QAEAAVCXGraphLabel@@V?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z) referenced in function "protected: void __thiscall CPropertyView::OnInsertLabel(void)" (?OnInsertLabel@CPropertyView@@IAEXXZ)
and
XGraphTest error LNK2019: unresolved external symbol "public: void __thiscall CXGraphAxis::SetColorRange(int,double,double,unsigned long,unsigned long,class ATL::CStringT<char,class strtraitmfc_dll<char,class="" atl::chtraitscrt<char=""> > >,unsigned int)" (?SetColorRange@CXGraphAxis@@QAEXHNNKKV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@I@Z) referenced in function "public: void __thiscall CXGraphTestView::AddDataSerie(bool)" (?AddDataSerie@CXGraphTestView@@QAEX_N@Z)
any ideas with either of these two programs would be a great help.
|
|
|
|
|
try to paste your code in a sdi application with document-view support (a check box in step 1 of the app wizzard)
|
|
|
|
|
ok, thanks
solved most of the probs.
|
|
|
|