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

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

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

Post 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);
Attachments
1.png
1.png (444 Bytes) Viewed 1868 times
wx 3.1.6 win/mac/linux

regards,
Alexander Saprykin
https://v2.dental-soft.ru
User avatar
cutecode
Super wx Problem Solver
Super wx Problem Solver
Posts: 425
Joined: Fri Dec 09, 2016 7:28 am
Contact:

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

Post by cutecode »

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

Code: Select all

dc.SelectObject(wxNullBitmap);
ниже опустить
wx 3.1.6 win/mac/linux

regards,
Alexander Saprykin
https://v2.dental-soft.ru
Post Reply