I am writing a Win32 Console application and I need to change the font size to 18x10 pixels. I think this can be done with a function in windows.h but Im not sure which one or how to do it.

Recommended Answers

All 7 Replies

The function is called CreateFont(), not something for the faint at heart!

HFONT CreateFont(
    int nHeight,	// logical height of font 
    int nWidth,	// logical average character width 
    int nEscapement,	// angle of escapement 
    int nOrientation,	// base-line orientation angle 
    int fnWeight,	// font weight 
    DWORD fdwItalic,	// italic attribute flag 
    DWORD fdwUnderline,	// underline attribute flag 
    DWORD fdwStrikeOut,	// strikeout attribute flag 
    DWORD fdwCharSet,	// character set identifier 
    DWORD fdwOutputPrecision,	// output precision 
    DWORD fdwClipPrecision,	// clipping precision 
    DWORD fdwQuality,	// output quality 
    DWORD fdwPitchAndFamily,	// pitch and family 
    LPCTSTR lpszFace 	// pointer to typeface name string 
   );

I dont think this function will work for console apps. The program Im writing runs in DOS window.

I dont think this function will work for console apps. The program Im writing runs in DOS window.

There is a code snippet on DaniWeb called "Add WinBGI Graphics to your Console" at:
http://www.daniweb.com/code/snippet176.html
check the lines ...

setcolor(YELLOW);
settextstyle(DEFAULT_FONT, HORIZ_DIR, 2); // 2 = size
outtextxy(20, 320, "Press any key ... ");
getch();  // wait

Maybe you can modify these to suit your needs.

thanks vegaseat, I dont think i explained what Im trying to do very well. I already have a working application that runs in a console window. But the default text is too small. This can be fixed by opening the console properties while the app is running and changing the font size to 18x10 and the screen buffer size to 79 characters wide by 25 characters high. I would like to be able to change these settings through to code. Windows.h includes a function called:

SetConsoleScreenBufferSize();

msdn describes it here:

http://www.symbolictools.de/public/pocketconsole/patches/HELP/htm/PortSDK/winbase/conchar_7sv9.htm

the problem is that Im having trouble understanding how it works. I found a listing of various console functions here:

http://www.symbolictools.de/public/pocketconsole/patches/HELP/htm/PortSDK/winbase/conchar_3vg3.htm

but the documentation is somewhat vague.

heres a function that I wrote, but it seems to have no effect.

void consoleResize(unsigned int x, unsigned int y)
{
	COORD coord;
	HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);

	coord.X = x;
	coord.Y = y;

	SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}

heres a function that I wrote, but it seems to have no effect.

void consoleResize(unsigned int x, unsigned int y)
{
	COORD coord;
	HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);

	coord.X = x;
	coord.Y = y;

	SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}

Check under InvalidateRect() to force an update your your screen.

Hi,

I wonder if you can go to your user community and just change the DOC in the README to change the environment defined by the icon. Right-click on the icon, change the properties to this x that, and then save. Yes, it is a user step. Or, maybe you alter your installer to do the configuration for you!

Christian

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.