Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Jak sprawdzić aktualny kolor konsoli?

Ostatnio zmodyfikowano 2014-10-03 17:25
Autor Wiadomość
jegor377
Temat założony przez niniejszego użytkownika
Jak sprawdzić aktualny kolor konsoli?
» 2014-10-01 20:57:49
Piszę moduł do cmd, w którym będzie można na określonej pozycji wyświetlić znak / ciąg znaków o określonym kolorze. No i tu się pojawia problem, bo w moim programie co prawda wszystko działa, ale po pierwsze nie mogę za nic powiedzieć programowi żeby najpierw pokolorował tło, a potem tekst (bo nie mogę zrobić tego jednocześnie, bo robię to na cyferkach i nie umiem oznaczyć, że to ma być tło, a to tekst) oraz mój program po wykonaniu zostawia ten kolor który ustawił mi moduł w cmd, a ja tego nie chcę, więc proszę o pomoc. Czyli jaka funkcja służy do pobierania koloru z konsoli i jak poprawić tamten problem. PS mam kompilator GNU GCC, Code Blocksa.

A tu zamieszczam kod programu:


#include <iostream>
#include <windows.h>
#include <iostream>
#include <cstdlib>
#include <sstream>
#include <cstdio>

using namespace std;

HANDLE hOut;

string znak;
int x, y, onlycolor;

void gotoxy(int x, int y)
{
  COORD c;

  c.X = x - 1;
  c.Y = y - 1;
  SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
}

string inttostring(int number1)
{
    ostringstream zmienna;
    zmienna << number1;
    return zmienna.str();
}

int main(int argc, char* argv[])
{
    if (argc<5) return 1;
    hOut = GetStdHandle( STD_OUTPUT_HANDLE );
    x = atoi(argv[2]);
    y = atoi(argv[3]);
    znak = argv[4];
    gotoxy(x, y);
    SetConsoleTextAttribute( hOut, atoi(argv[1]) );
    cout << znak;
    return 0;
}

P-117836
Monika90
» 2014-10-01 22:15:09
Jak sprawdzić aktualny kolor konsoli?
GetConsoleScreenBufferInfo
P-117841
jegor377
Temat założony przez niniejszego użytkownika
» 2014-10-02 15:33:13
Nie znam za bardzo WinAPI możesz mi wytłumaczyć jak ta funkcja działa?
P-117849
pekfos
» 2014-10-02 17:07:43
Nie znam za bardzo WinAPI możesz mi wytłumaczyć jak ta funkcja działa?
Wpisujesz tekst i enter.. a nie, pomyłka - to Google..
Frazy, które należy wpisać w wyszukiwarkę google:
http://msdn.microsoft.com​/en-us/library/windows/desktop​/ms683171%28v=vs.85%29.aspx
P-117853
jegor377
Temat założony przez niniejszego użytkownika
» 2014-10-03 16:17:08
To znaczy ja wiem co mam mu najpierw wysłać, ale co dać w lpConsoleScreenBufferInfo? jakąś pozycje znaku? czy co?

GetConsoleScreenBufferInfo( HANDLE hConsoleOutput, PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo );
P-117869
pekfos
» 2014-10-03 16:33:46
Tam otrzymujesz wynik.
A pointer to a CONSOLE_SCREEN_BUFFER_INFO structure that receives the console screen buffer information.
P-117870
Monika90
» 2014-10-03 17:09:41
C/C++
CONSOLE_SCREEN_BUFFER_INFO info;
GetConsoleScreenBufferInfo( GetStdHandle( STD_OUTPUT_HANDLE ), & info );
std::cout << info.wAttributes << std::endl;
P-117873
jegor377
Temat założony przez niniejszego użytkownika
» 2014-10-03 17:25:08
AAAAAAAAAAAAAAA. Dzięki zamykam temat. Co prawda jeszcze nie sprawdziłem, ale jakoś sobie poradzę i thx C:
P-117875
« 1 »
  Strona 1 z 1