User (Legacy) Posted August 23, 2000 Report Share Posted August 23, 2000 Hi, (CFX98 4.0.18.0, VC++ 6, ATL, WTL, Windows 9x+) I do have problem when calling the Paint(). The font which is used for labeling axes (I did not try other fonts) does not scale for different device context while the chart does. To be more exact, I did create the instance of the ChartFX 98, filled it with some data, and painted it using given device context (as follows): spChartFX->OpenDataEx(ChartfxLib::COD_VALUES, 2, 3); spChartFX->GetSeries()->GetItem(0)->PutYvalue(0, 500); spChartFX->GetSeries()->GetItem(0)->PutYvalue(1, 600); spChartFX->GetSeries()->GetItem(0)->PutYvalue(2, 700); spChartFX->GetSeries()->GetItem(1)->PutYvalue(0, 800); spChartFX->GetSeries()->GetItem(1)->PutYvalue(1, 900); spChartFX->GetSeries()->GetItem(1)->PutYvalue(2, 1000); spChartFX->CloseData(ChartfxLib::COD_VALUES); spChartFX->Paint(reinterpret_cast<long>(dc), rc.left, rc.top, rc.right, rc.bottom, ChartfxLib::CPAINT_PRINT, 0); The device context uses MM_ANISOTROPIC mapping mode. The logical coordinates are in 1/100 of mm. The ViewportExt and WindowExt are set differently for a display and for various printers to obtain 1:1 visual appearance. The auxiliary ruler marks and some text (painted using the device context) show that the mapping works as desired both on the display and on the tested printers. The chart displayed by Paint() fills correctly the given rectangular area leaving only some (expected) small margins. However, the font on 300 DPI printer is very small. The chart fills the given rectangle correctly again. In other words, the ratio between the font size and the chart-box size changes. I tried to choose a different font name and size, but the problem remains. I have noticed that when an extremely big size of font was used, the chart component created less marks on Y axis (expected and nice behaviour). Let us say, only 3 labels were visible on the display. However, using the device context for the 600 DPI printer, the same font appears much smaller, thus the number of labels on Y axis was increased (let's say from 3 to 10 -- I did not count them). It seems that the Paint() method calculates font sizes in device dependent units instead of logical units. I assume that the desired behaviour of the Paint() should be to display the same result (regarding proportions) with different device context. Could you comment this? Is it a bug? Thanks, Petr -- Petr Prikryl, SKIL s.r.o., e-mail: prikrylp at skil dot cz Please, don't reply via e-mail. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.