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

[WinAPI] Pasek przewijania w oknie DOS-owym

Ostatnio zmodyfikowano 2011-04-12 15:44
Autor Wiadomość
Mrowqa
Temat założony przez niniejszego użytkownika
[WinAPI] Pasek przewijania w oknie DOS-owym
» 2011-04-09 15:54:29
Witam !

Zauważyłem brak pasku przewijania po prawej stronie w okienku DOS-owym. Korzystam z VC++ 2010 Express 64bit. Wcześniej korzystałem z Dev-C++. Dev "robił" pasek do przewijania po prawej, VC++ nie robi ;/ ( Możliwe, że to implementacja kompilatora ;D ). Co zrobić, by ten pasek mieć ?
Albo lepiej ( o ile się da ): Czy da się ten pasek włączać i wyłączać podczas wykonywania programu ?
Proszę powiedzieć jak ;P

Pozdrawiam,
Mrowqa
P-30483
yoogi
» 2011-04-09 15:57:35
Witam, a więc, kiedyś też udało mi się, że tego paska nie było, bo korzystałem chyba z biblioteki dirent.h i windows.h spróbuj skompilować hello world i zobacz czy jest pasek.
P-30484
Mrowqa
Temat założony przez niniejszego użytkownika
» 2011-04-09 16:44:42
Pewnie to przez bibliotekę ddt-console. W programie, gdzie jej nie użyłem jest pasek ;)
Istnieje jednak możliwość włączania i wyłączania paska podczas wykonywania programu ??

Pozdrawiam,
Mrowqa
P-30489
yoogi
» 2011-04-09 16:58:42
Hmmmm... sam nie wiem, w sumie możesz użyć WinAPI i sobie wyświetlać, bądź ukrywać pasek.
P-30490
DejaVu
» 2011-04-09 17:19:41
Istnieje możliwość. Zobacz źródła tamtej biblioteki jak to jest robione.
P-30492
Mrowqa
Temat założony przez niniejszego użytkownika
» 2011-04-09 19:15:46
Coś mi się zdaje, że to ma związek z:
C/C++
DDTxDefaultConsoleHandle = GetStdHandle( STD_OUTPUT_HANDLE );
// ewentualnie z:
SetConsoleWindowInfo( DDTxDefaultConsoleHandle, true, & tRozmiar );
SetConsoleScreenBufferSize( DDTxDefaultConsoleHandle, tWymiary );

// wnioskujac z:
COORD tWymiary = { 80, 25 };
// mysle ze da sie zmienic wymiary okienka DOS-owego ;)
Nie jestem tego pewien ( jestem początkujący :D ). Jeśli to jest to, to jak tego użyć ? Jeśli nie - to co mam zrobic ;)

PS jestem ciekaw co do funkcji:
C/C++
void init();
Włączając bibliotekę, ona sama się odpala ( w sensie funkcja ? ). Czy trzeba jakoś to zadeklarować ? Jeśli to automatyczne, to gdybym napisał własną bibliotekę oraz funkcję o danej nazwie efekt byłby taki jak przy tej ?
EDIT:
<--- czytając dalej, zauważyłem, że ciągle tego handlera sprawdza ... i odpala init ;) Więc dopóki nie użyjemy biblioteki = mam pasek ? ( więc chyba init sam sie nie odpala :D )

Pozdrawiam,
Mrowqa
P-30503
yoogi
» 2011-04-09 20:49:36
To jest ustawienie wielkości konsoli :]
P-30519
Mrowqa
Temat założony przez niniejszego użytkownika
» 2011-04-10 14:11:42
Czyli jak pisałem da się jednak zmienić rozmiar ;)
To co jest odpowiedzialne za pasek ??
Kodzik ( fragment ) biblioteki:
C/C++
HANDLE DDTxDefaultConsoleHandle = 0;
WORD DDTxCurrentColor;
//...
void init()
{
    DDTxDefaultConsoleHandle = GetStdHandle( STD_OUTPUT_HANDLE );
    SMALL_RECT tRozmiar = { 0, 0, 79, 24 }; // <---to odpowiada za rozmiar okienka ?
    COORD tWymiary = { 80, 25 }; // czy raczej to ? :D
    SetConsoleWindowInfo( DDTxDefaultConsoleHandle, true, & tRozmiar );
    SetConsoleTitleA( "Dokumentacja na stronie: http://ddt.pl" );
    SetConsoleScreenBufferSize( DDTxDefaultConsoleHandle, tWymiary );
    textattr( 7 );
}

Pozdrawiam,
Mrowqa
P-30541
« 1 » 2
  Strona 1 z 2 Następna strona