Click here to Skip to main content
15,898,035 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
AnswerRe: using static library for C code in Visual studio 2005 Pin
Malli_S12-Sep-12 2:16
Malli_S12-Sep-12 2:16 
GeneralRe: using static library for C code in Visual studio 2005 Pin
Chris Losinger12-Sep-12 2:15
professionalChris Losinger12-Sep-12 2:15 
GeneralRe: using static library for C code in Visual studio 2005 Pin
Malli_S12-Sep-12 2:17
Malli_S12-Sep-12 2:17 
GeneralRe: using static library for C code in Visual studio 2005 Pin
Chris Losinger12-Sep-12 2:19
professionalChris Losinger12-Sep-12 2:19 
GeneralRe: using static library for C code in Visual studio 2005 Pin
Malli_S12-Sep-12 2:23
Malli_S12-Sep-12 2:23 
GeneralRe: using static library for C code in Visual studio 2005 Pin
sunny_vc12-Sep-12 2:42
sunny_vc12-Sep-12 2:42 
AnswerRe: using static library for C code in Visual studio 2005 Pin
jschell12-Sep-12 8:04
jschell12-Sep-12 8:04 
GeneralRe: using static library for C code in Visual studio 2005 Pin
Malli_S12-Sep-12 20:01
Malli_S12-Sep-12 20:01 
GeneralRe: using static library for C code in Visual studio 2005 Pin
sunny_vc12-Sep-12 23:55
sunny_vc12-Sep-12 23:55 
GeneralRe: using static library for C code in Visual studio 2005 Pin
jschell14-Sep-12 8:38
jschell14-Sep-12 8:38 
QuestionHow to lock a file when it is in use? Pin
tagopi12-Sep-12 0:46
tagopi12-Sep-12 0:46 
AnswerRe: How to lock a file when it is in use? Pin
Malli_S12-Sep-12 1:56
Malli_S12-Sep-12 1:56 
AnswerRe: How to lock a file when it is in use? Pin
Software_Developer13-Sep-12 5:43
Software_Developer13-Sep-12 5:43 
QuestionGetting List of Specific Installed Programs Pin
AmbiguousName11-Sep-12 6:02
AmbiguousName11-Sep-12 6:02 
AnswerRe: Getting List of Specific Installed Programs Pin
Michael_Lu11-Sep-12 8:21
Michael_Lu11-Sep-12 8:21 
QuestionCan't select HBRUSH into device context Pin
Alan Balkany11-Sep-12 5:38
Alan Balkany11-Sep-12 5:38 
AnswerRe: Can't select HBRUSH into device context Pin
Jochen Arndt11-Sep-12 6:04
professionalJochen Arndt11-Sep-12 6:04 
GeneralRe: Can't select HBRUSH into device context Pin
Alan Balkany11-Sep-12 6:10
Alan Balkany11-Sep-12 6:10 
GeneralRe: Can't select HBRUSH into device context Pin
Jochen Arndt11-Sep-12 7:07
professionalJochen Arndt11-Sep-12 7:07 
GeneralRe: Can't select HBRUSH into device context Pin
Alan Balkany11-Sep-12 7:08
Alan Balkany11-Sep-12 7:08 
AnswerRe: Can't select HBRUSH into device context Pin
enhzflep11-Sep-12 10:20
enhzflep11-Sep-12 10:20 
GeneralRe: Can't select HBRUSH into device context Pin
Alan Balkany11-Sep-12 10:23
Alan Balkany11-Sep-12 10:23 
GeneralRe: Can't select HBRUSH into device context Pin
enhzflep11-Sep-12 10:30
enhzflep11-Sep-12 10:30 
GeneralRe: Can't select HBRUSH into device context Pin
Alan Balkany13-Sep-12 10:47
Alan Balkany13-Sep-12 10:47 
Hi enhzflep,

I incorporated code from your example into my function, and it works with the CreateHatchBrush call to create a new brush.

Unfortunately, when I substitute my already-created brush, it doesn't work; I just get solid white filling the text outlines.

I've verified the brush handle is the same as the nativeBrush member of my .NET Brush, which draws correctly both before and after. Can you see anything I'm doing wrong?

C++
DLLEXPORT void drawWithGdiFont (HBITMAP hBitmap, HBRUSH hbrush, LPCWSTR fontName,
	LPCWSTR text, int sizeToUse, bool bold, bool italic, int br, int bg, int bb)
{
	HDC hDc = CreateCompatibleDC (NULL);
	HGDIOBJ oldObj = SelectObject (hDc, hBitmap);
	SIZE size ;

	LOGFONT logFont;
	::ZeroMemory(& logFont, sizeof(LOGFONT));
	wcscpy ((&logFont)->lfFaceName, fontName);
	logFont.lfHeight = sizeToUse;

	if (bold)
		logFont.lfWeight = 800;
	else
		logFont.lfWeight = 500;

	logFont.lfItalic = italic;

	HFONT hFont = CreateFontIndirect(& logFont);
	HFONT oldFont = (HFONT) SelectObject (hDc, hFont);

	SetBkMode (hDc, TRANSPARENT) ;
 
	BeginPath (hDc) ;
	TextOut (hDc, 0, 0, fontName, wcslen (fontName));
	EndPath (hDc) ;
 

//  MY BRUSH FROM .NET (DOESN'T WORK):
		HBRUSH oldBrush = (HBRUSH) SelectObject (hDc, hbrush);

//  FROM EXAMPLE (WORKS): HBRUSH oldBrush = (HBRUSH) SelectObject (hDc, CreateHatchBrush (HS_DIAGCROSS, RGB (255, 0, 0))) ;


	SetBkColor (hDc, RGB (br, bg, bb));
	SetBkMode (hDc, OPAQUE) ;
 
	StrokeAndFillPath (hDc) ;

	DeleteObject (SelectObject (hDc, oldFont));
	SelectObject (hDc, oldBrush);
	DeleteObject (hDc);
}


Also, it seems like the background color here is the second color of the hatch pattern. But how do I set the color between the letters (which is also called the "background color"?)

Thanks!
Alan
"Microsoft -- Adding unnecessary complexity to your work since 1987!"

QuestionFile download help Pin
Sunil P V10-Sep-12 1:04
Sunil P V10-Sep-12 1:04 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.