Page 1 of 1

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

Posted: Tue Apr 10, 2018 8:11 am
by cutecode
надо создать 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);

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

Posted: Tue Apr 10, 2018 9:59 am
by cutecode
Пардон, сам нашел. надо было

Code: Select all

dc.SelectObject(wxNullBitmap);
ниже опустить