In my program I used TextOut() to draw the unicode character \u2764 (heavy black heart, ❤). The font typeface was Lucida Handwriting. It worked fine if I'm running it on a Windows 10 system (which I wrote the program in), but when I tried to run it on a Windows 7 system, it was shown as a black rectangle. The rest of the characters, which are all in the same font as the heart, along with the same character in the program name, displayed fine on both systems. I am confused why this is happening, since both are the same program and uses the same font, so if it can display on my system, doesn't that mean the character is contained in the font and therefore it should display on the Windows 7 system as well? If it's because windows 10 added the new glyph into the typeface, would this character display on a Windows 8 system or would it also be a black rectangle (I don't have a pc with Windows 8 so I can't try it out)? Thanks in advance.
Hmm... After searching in the Fonts folder I found out that the typeface name is indeed actually Lucida Handwriting Italic. But for Windows 10 it's also only Italic... (A bit surprised that it works here since in CreateFont I set the typeface as just Lucida Handwriting and fdwItalic to false) What I want to know the most though here is if the character will display on a Windows 8 PC, since I'm writing this program for a friend who uses that system.
Maybe it's using a fallback font that does have that character. The behavior could be different between 7 and 10 around the handling of characters the specified font doesn't support.
Tried it a safer way and used another font to display the heart character instead... The main text is still in Lucida Handwriting Italic, but I calculated the location using GetTextExtentPoint32 and drew the last character in Arial, which clearly should have support for the character.
And.... Well the problem still exists. It's still displayed as a rectangle only this time the style is different.... This thing is driving me nuts. Thanks for all the help though.