C++ Fullscreen ? Geht sowas ?



  • Was für einen Befehl im Quellcode muss man eingeben damit das Programm (konsole) automatisch beim Start in den Fullscreen modus wechselt ?

    Bitte um genauen Code !

    Diese Möglichkeit :
    ---------------------------------------------------------------------------
    #include <iostream>
    #include <stdlib.h>
    #include <windows.h>

    using namespace std;

    void scree() {

    keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), 0, 0);

    keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN, 0), 0, 0);

    keybd_event(VK_RETURN, MapVirtualKey(VK_RETURN, 0), KEYEVENTF_KEYUP, 0);

    keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), KEYEVENTF_KEYUP, 0);

    cout << "Irgendein Text";

    char p[50];
    cin.getline(p,50);
    }

    using namespace std;

    int main ()
    {
    scree () ;
    cout << "OK" << endl;
    system ("pause") ;
    }
    -------------------------------------------------------------
    hat nicht gefunzt weil windows.h nicht da war !
    Habe von der Autoren V. von C++ 6.0 Die ganzen include Dateien in den
    Include Ordner von Visual Studio verschoben !
    Hat beim Kompieleren gefunzt aber beim debuggen waren dann die Fehler :

    fatal error LNK1120: 2 nicht aufgelöste externe Verweise.

    error LNK2019: Verweis auf nicht aufgelöstes externes Symbol
    "__imp__MapVirtualKeyW@8" in Funktion ""void __cdecl scree(void)" (?scree@@YAXXZ)".

    error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__keybd_event@16" in Funktion ""void __cdecl scree(void)" (?scree@@YAXXZ)". Fullscreen.obj

    da ! Was muss ich tun 😕

    Bitte um eine Einfache Version des Codes oder sowas 🙂



  • 1. Code Tags benutzen.

    2. Hast du da offensichtlich irgendwie falsch gelinkt. (PSDK richtig installiert?)



  • gibt es noch andere möglichkeiten ausser den code da oben ?



  • Also willst du quasi die Konsole in den Vollbildmodus bringen? Sicher, dass das überhaupt geht?



  • sollte eigentlich gehen , oder ?



  • Ich habs mal probiert, ich hab keine Ahnung, wie man eine Konsole auf Fullscreen bekommt. Man kann evtl in einen Bildschirmmodus wechseln (wie beim Starten des Rechners), der DOS-like aussieht. (?)



  • ich habe einen Code gefunden der sowas ähnliches macht FUNKTIONIERT ABER NICHT :

    #include "Framework.hpp"

    bool CFramework::Init (int ScreenWidth, int ScreenHeight,
    int ColorDepth, bool bFullscreen)
    {

    if (SDL_Init (SDL_INIT_VIDEO | SDL_INIT_TIMER) == -1 )
    {
    cout << "SDL konnte nicht initialisiert werden!" << endl;
    cout << "Fehlermeldung: " << SDL_GetError () << endl;

    Quit ();

    return (false);
    }

    if (bFullscreen == true)
    {
    m_pScreen = SDL_SetVideoMode (ScreenWidth, ScreenHeight, ColorDepth,
    SDL_HWSURFACE | SDL_DOUBLEBUF |
    SDL_FULLSCREEN);
    }
    else
    {
    m_pScreen = SDL_SetVideoMode (ScreenWidth, ScreenHeight, ColorDepth,
    SDL_HWSURFACE | SDL_DOUBLEBUF);
    }

    if (m_pScreen == NULL)
    {
    cout << "Videomodus konnte nicht gesetzt werden!" << endl;
    cout << "Fehlermeldung: " << SDL_GetError () << endl;

    Quit ();

    return (false);
    }

    m_pKeystate = SDL_GetKeyState (NULL);

    return (true);

    }

    void CFramework::Quit ()
    {

    SDL_Quit ();

    }

    void CFramework::Update ()
    {
    g_pTimer->Update ();

    SDL_PumpEvents ();

    }
    bool CFramework::KeyDown (int Key_ID)
    {

    return (m_pKeystate[Key_ID] ? true : false);

    }

    void CFramework::Clear ()
    {

    SDL_FillRect (m_pScreen, NULL,
    SDL_MapRGB (m_pScreen->format, 0, 0, 0));

    }

    void CFramework::Flip ()
    {

    SDL_Flip (m_pScreen);

    }

    framework.hpp :

    #ifndef FRAMEWORK_HPP
    #define FRAMEWORK_HPP

    #include <iostream>
    #include "Singleton.hpp"
    #include "Timer.hpp"

    using namespace std;

    #define g_pFramework CFramework::Get()

    class CFramework : public TSingleton<CFramework>
    {
    public:
    bool Init (int ScreenWidth, int ScreenHeight,
    int ColorDepth, bool bFullscreen);
    void Quit ();
    void Update ();
    void Clear ();
    void Flip ();
    bool KeyDown (int Key_ID);
    SDL_Surface *GetScreen () {return m_pScreen;}

    private:
    SDL_Surface *m_pScreen;
    Uint8 *m_pKeystate;
    };

    #endif

    Die haben aber nich gefunzt und ich weiss nicht wie ich die benutzen soll ?





  • Hmm, ev. geht es gar nicht. :
    http://support.microsoft.com/?scid=kb%3Ben-us%3B192190&x=17&y=20

    Aber anderseits geht bei mir ATM alt+Enter. Also könntest du einfach mal diese Tasten an Windows schicken als Message.



  • wie soll ich eine Tastenkombi als Message an Windows Senden ??? 😕 😕 😕





  • Bei mir geht Alt+Enter nicht (Win Vista 64).



  • Badestrand schrieb:

    Bei mir geht Alt+Enter nicht (Win Vista 64).

    Hätte mich ehrlichgesagt auch gewundert. 😉

    Habe XP, aber wie gesagt, möglicherweise geht es nicht bei allen. (auch nicht unter XP)



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten