TDM Geschrieben 8. November 2005 Geschrieben 8. November 2005 guten morgen, Ich möchte in der Win32 Konsole einen Rahmen zeichnen... Die oberste Begrenzung sieht ganz ok aus - allerdings werden danach nur noch die 2 Ränder neben einander gezeichnet - die unterste Seite ist garnicht da src: // Rahmen.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung. // #include "stdafx.h" #include <iostream> #include <conio.h> #include <windows.h> //Warnung ausschalten: Verkuerzung eines konstanten Wertes #pragma warning (disable : 4309 ) using namespace std; HANDLE gotoxy(int,int); void drawBorder(int,int,int,int); int _tmain(int argc, _TCHAR* argv[]) { HANDLE hStdout = gotoxy(0,0); CONSOLE_SCREEN_BUFFER_INFO CSBI; GetConsoleScreenBufferInfo(hStdout, &CSBI); char zeichen1 = 218; int maxX = CSBI.dwSize.X; int maxY = CSBI.dwSize.Y; drawBorder(0,0,maxX,maxY); gotoxy(25,25); return 0; } HANDLE gotoxy(int x, int y) { HANDLE hStdout; COORD coordScreen = {x,y}; hStdout = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition( hStdout, coordScreen); return hStdout; } void drawBorder(int x1, int y1, int x2, int y2) { char i = 201; int u; gotoxy(x1,y1); cout << i; i = 188; gotoxy(x2,y2); cout << i; i = 187; gotoxy(x2,y1); cout << i; i = 200; gotoxy(x1,y2); cout << i; i = 205; //vertikal for((u=(x1+1)); u < x2; u++) { gotoxy(u,y1); cout << i; gotoxy(u,y2); cout << i; } //horizontal for((u=(y1+1)); u < y2; u++) { gotoxy(x1,u); cout << i; gotoxy(x2,u); cout << i; } } jemand ne idee? Zitieren
TDM Geschrieben 8. November 2005 Autor Geschrieben 8. November 2005 ok... hab den fehler selber gefunden hab jetzt einfach CSBI.srWindow an die Funktion übergeben... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.