I am trying to lock the console size in my program so that the user cannot change any of the settings. I am doing this by resetting the size and font of the console on every loop.
Problems:
My Program pauses for Input. I am using cin to get input. This needs to stop, how should I get input? I know that storing the keystrokes to a buffer in realtime, the processing them per frame would be better. I have checked the MSDN and google, but I still can't figure this one out.
I have no Idea how to set the font. I am using GetCurrentConsoleFont() to get the current font (I have no idea what the default font is... or I would just set it to that. GetCurrenTConsoleFont() doesn't seem to work. But I am including windows.h.
I couldn't find a SetConsoleFont in the MSDN, so I am using SetConsoleFontEx instead.
A few other compiler errors which I will adress, but I need this to work first.
So, here is my working code. Thanks!
bool StringPump::SizeScreen(int height, int width, COORD font)
{
SMALL_RECT rec;
CONSOLE_FONT_INFO tempfont;
tempfont.dwFontSize = font;
tempfont.nFont = (GetCurrentConsoleFont()).nFont;
rec.Top = 0;
rec.Left = 0;
rec.Right = font.X * width; // 80 chars wide
rec.Bottom = font.Y * height; //32 chars high
SetConsoleWindowInfo(CONS_HANDLE, false, &rec);
SetCurrentConsoleFontEx(CONS_HANDLE, false, &tempfont);
}
and I shall include my error log, cause it will probably help you help me, and I am all for that.
Compiler: Default compiler
Building Makefile: "C:\Documents and Settings\Austen\My Documents\projects\1\Makefile.win"
Executing make clean
rm -f ../1/main.o ../1/StringPump.o ../1/item.o ../1/StateMan.o ../1/creatures.o ../1/Equipment.o ../1/Austens_Lil'_project_private.res "Austens Lil' project.exe"
g++.exe -D__DEBUG__ -c main.cpp -o ../1/main.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include" -ansi -fexpensive-optimizations -g3
g++.exe -D__DEBUG__ -c StringPump.cpp -o ../1/StringPump.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include" -ansi -fexpensive-optimizations -g3
StringPump.cpp: In member function `bool StringPump::SizeScreen(int, int, COORD)':
StringPump.cpp:252: error: `GetCurrentConsoleFont' undeclared (first use this function)
StringPump.cpp:252: error: (Each undeclared identifier is reported only once for each function it appears in.)
StringPump.cpp:258: error: `SetCurrentConsoleFontEx' undeclared (first use this function)
make.exe: *** [../1/StringPump.o] Error 1
Execution terminated
I am using DEV-C++ 4.8 or 5. something. The latest one I think.
Oh, here is teh Screen8032 struct
struct Screen8032
{
char buffer[32][80]; //32 lines, 80 chars per line
int colors[32][80];
};
It is basically 2 2d arrays of chars and ints, one for color of character, one for character icon. Thanks for your help!
[edit]
the reason that I didn't just hardcode the size settings is so I can reuse it. For anything. I guess this is restating the obvious, but I think it might be slightly apropreate
___________________________________________________Optimists see the glass as Half FullPessimists See the glass as Half EmptyEngineers See the glass as Twice as big as it needs to be