Page 1 of 1

Печать из wxGrid

Posted: Sat Aug 14, 2010 5:26 pm
by Dok
В wxWidgets есть какие-то средства для печати, но я так и не разобрался как ими вообще пользоваться. Как можно вывести на печать таблицу из wxGrid, так как она есть?

Posted: Sun Aug 15, 2010 6:18 am
by borr_1

Posted: Thu Aug 19, 2010 10:05 am
by Dok
А кто-нибудь использовал эту библиотеку?) Никак не могу разобраться, в чем проблема. При компиляции выдает ошибки рода:
E:\home\libs\controlprinter.cpp|142|error: no matching function for call to `wxGridPrintout::DrawTextInRectangle(wxDC&, wxString, wxRect, wxFont, const wxBrush&, wxAlignment, wxAlignment)'|
E:\home\libs\controlprinter.h|77|note: candidates are: static void wxGridPrintout::DrawTextInRectangle(wxDC&, wxString&, wxRect&, wxFont&, wxBrush&, int, int, int)|
Вроде библиотеку в том топике проверяли и она работала, может у меня что-то не так?
Или что нужно подправить в этой библиотеке... Единственное чего я смог добиться, повозившись в ней - это компиляции и полного зависания приложения при печати.

Posted: Thu Aug 19, 2010 11:32 am
by borr_1
там вроде как советуют переделать строку 142 на

Code: Select all

DrawTextInRectangle(*dc,m_grid->GetColLabelValue(i),wxRect(countWidth,0,m_grid->GetColSize(i),m_grid->GetColLabelSize()),m_grid->GetLabelFont(),(wxBrush)*wxBLACK_BRUSH,wxALIGN_CENTER,wxALIGN_CENTER);

Posted: Thu Aug 19, 2010 12:48 pm
by Dok
Все равно не работает. Жалуется что в этой самой функции почти для всех параметров просят адреса на переменные, а мы им сами переменные всучаем...

Posted: Fri Aug 20, 2010 8:47 am
by borr_1
Я чуть-чуть поправил у меня запечатало.

Нужно поправить, а то съезжать будит.

Code: Select all

prnData->SetPaperId(wxPAPER_A4);//wxPAPER_LEGAL

Posted: Fri Aug 20, 2010 4:59 pm
by Dok
Спасибо, теперь библиотека работает, хотя при печати все так же зависает.
Но, судя по моим новым экспериментам, причина этого кроется в таблице, ибо при создании другой таблицы все в норме. Будем искать ответ методом проб и ошибок...

Добавлено:
Да, действительно, все дело было в том, что у меня слишком большой была RowLabelSize. Что ж, придется сокращать заголовки. И еще раз спасибо за помощь!