Рисую из своего класса в pDC
От: juks http://juks.ru
Дата: 29.08.03 12:15
Оценка:
Рисую из своего класса в pDC. Всё хорошо. Но когда происходит печать принтер (isprinting()==1), то вывод из класса попадает куда-то нетуда. Что не так?

Спасибо.

------------------------------------------
void mylabel::print(int id) {
int i;
float fontsize=10;

CFrameWnd* pFrameWnd=(CFrameWnd*)AfxGetMainWnd();
CView* pView = (CView*)pFrameWnd->GetActiveView();
CClientDC pDC((CWnd*)pView);
CFont font;
CFont font_old;


font.CreateFont(........;

CFont* def_font = pDC.SelectObject(&font);
pDC.SetTextColor(color);
pDC.SetBkMode (TRANSPARENT);

pDC.TextOut(x[id]*pos_scale, (maxy — y[id]) * pos_scale, label[id]);
...
Re: Рисую из своего класса в pDC
От: Yaumen  
Дата: 29.08.03 13:47
Оценка:
Здравствуйте, juks, Вы писали:

J>Рисую из своего класса в pDC. Всё хорошо. Но когда происходит печать принтер (isprinting()==1), то вывод из класса попадает куда-то нетуда. Что не так?


J>Спасибо.


J>------------------------------------------

J>void mylabel::print(int id) {
J> int i;
J> float fontsize=10;

J> CFrameWnd* pFrameWnd=(CFrameWnd*)AfxGetMainWnd();

J> CView* pView = (CView*)pFrameWnd->GetActiveView();
J> CClientDC pDC((CWnd*)pView);
J> CFont font;
J> CFont font_old;


J> font.CreateFont(........;


J> CFont* def_font = pDC.SelectObject(&font);

J> pDC.SetTextColor(color);
J> pDC.SetBkMode (TRANSPARENT);

J> pDC.TextOut(x[id]*pos_scale, (maxy — y[id]) * pos_scale, label[id]);

J> ...

Чтобы печатать на принтер вам в первую очередь нужен контекст принтера, а вы как печатаете на клиентской части так на ней и печатаете.
Re[2]: Рисую из своего класса в pDC
От: juks http://juks.ru
Дата: 30.08.03 05:38
Оценка:
Y>Чтобы печатать на принтер вам в первую очередь нужен контекст принтера, а вы как печатаете на клиентской части так на ней и печатаете.

Я вот и думаю, где его достать. Ведь ::OnDraw(CDC* pDC) вызывается автоматически, а как получить контекст извне я пока не догадался.
Re[3]: Рисую из своего класса в pDC
От: Yaumen  
Дата: 30.08.03 06:51
Оценка:
Здравствуйте, juks, Вы писали:

Y>>Чтобы печатать на принтер вам в первую очередь нужен контекст принтера, а вы как печатаете на клиентской части так на ней и печатаете.


J>Я вот и думаю, где его достать. Ведь ::OnDraw(CDC* pDC) вызывается автоматически, а как получить контекст извне я пока не догадался.


Посмотрите CreatePrinterDC()
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.