wxDC::DrawText не отображает текст

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
User avatar
cutecode
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 227
Joined: Fri Dec 09, 2016 7:28 am
Contact:

wxDC::DrawText не отображает текст

Post by cutecode » Tue Apr 10, 2018 8:11 am

надо создать PNG файл с прозрачным фоном. А именно чтобы вставить в документ синий штамп, типа "Документ подписан электронной подписью... бла-бла-бла"

Синий прямоугольник отображается, а вот текст ни в какую не хочет отображаться.
помогите плиз.

Code: Select all

bool create_shtamp(wxString& szPathToFile, wxString &szText1, wxString &szText2, wxString &szText3)
{
	wxBitmap bitmap(300, 100);
	wxMemoryDC dc;
	dc.SetBackgroundMode(wxPENSTYLE_TRANSPARENT);
	dc.SelectObject(bitmap);
	dc.SetBackground(*wxBLUE_BRUSH);
	dc.Clear();

	dc.SetPen(*wxRED_PEN);
	dc.SetBrush(*wxRED_BRUSH);
	dc.DrawRectangle(1, 1, 298, 98);

	dc.SelectObject(wxNullBitmap);

	wxFont* pFont = new wxFont(wxFontInfo(8).Family(wxFONTFAMILY_DEFAULT).Bold().FaceName(L"Verdana"));
	
	dc.SetFont(*pFont);

	dc.SetTextForeground(*wxBLUE);
	dc.SetTextBackground(*wxWHITE);
	dc.SetBackgroundMode(wxTRANSPARENT);

	dc.DrawText(szText1, 10, 10);
	dc.DrawText(szText2, 10, 35);
	dc.DrawText(szText3, 10, 70);

	delete pFont;

	// Convert the bitmap to an image
	wxImage image = bitmap.ConvertToImage();
	// Set the mask color to red
	image.SetMaskColour(255, 0, 0);
	image.SaveFile(szPathToFile, wxBITMAP_TYPE_PNG);

	return true;
}

	wxString sz00 = L"e:\\1.png";
	wxString sz1 = L"text1";
	wxString sz2 = L"text2";
	wxString sz3 = L"text3";
	create_shtamp(sz00, sz1, sz2, sz3);
Attachments
1.png
1.png (444 Bytes) Viewed 481 times
regards,
Alexander Saprykin
www.wxwidgets.ru

User avatar
cutecode
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 227
Joined: Fri Dec 09, 2016 7:28 am
Contact:

Re: wxDC::DrawText не отображает текст

Post by cutecode » Tue Apr 10, 2018 9:59 am

Пардон, сам нашел. надо было

Code: Select all

dc.SelectObject(wxNullBitmap);
ниже опустить
regards,
Alexander Saprykin
www.wxwidgets.ru

Post Reply