Fenster Sichtbar - aber nicht in der Taskleiste



  • huhu...

    ich habe zur zeit ein kleines fenster (mit windows-skinning) welches
    sich über den desktop bewegt (das fenster ist trnasparent und man sieht nur eine kleine figur...)

    nur wenn sich die figur bewegt soll es natürlich so aussehen, als sei es kein fenster. wie kann ich das fenster sichtbar lassen - jedoch aus der taskleiste entfernen?

    danke...



  • Hier gibt es zwei Möglichkeiten:
    1. WS_EX_TOOLWINDOW Extended-Style
    2. Du erzeugst eine Hidden-Window, und machst Dein eigentlichen Window zum Child dieses Hidden-Windows...



  • hmm ich habe es mal bei ein par offenen fenstern
    versucht allerdings kommt was anderes bei rum 🙂

    die buttons der fenster in der taskleiste haben kein symbol mehr und
    reagieren auch ganz anders als normal. sind aber immernoch da!

    ich habs mit diesem code gemacht:

    SetWindowLong(hWnd,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
    


  • Upps... sorry... es geht natürlich viel einfacher:
    Nimm den Style "WS_EX_APPWINDOW" weg...



  • naja ich finde diesen ausdruck WS_EX_APPWINDOW nirgens!

    ich arbeite auch mit windows-skinning und meine funktion zum
    generieren des fensters mit dem eigenen skin ist folgende:

    // ------------------------------------------------------------------------
    // A Basic, still smart window creation function.
    // ------------------------------------------------------------------------
    bool MakeWindow(int iWidth, int iHeight)
    {
      // our window class
      WNDCLASS wndWc;
    
      // ---------------------------------------------------------
      // fill window class members
      // ---------------------------------------------------------
      wndWc.style = CS_OWNDC;
      wndWc.lpfnWndProc = (WNDPROC) WndProc;
      wndWc.cbClsExtra = 0;
      wndWc.cbWndExtra = 0;
      wndWc.hInstance = GetModuleHandle(NULL);
      wndWc.hIcon = NULL;
      wndWc.hCursor = LoadCursor(0, IDC_ARROW);
      wndWc.hbrBackground = NULL;
      wndWc.lpszMenuName = NULL;
      wndWc.lpszClassName = "w32skin";
    
      // register class
      if (!RegisterClass(&wndWc)) return false;
      // ---------------------------------------------------------
    
      // get actual screen resolution
      int iSw = (WORD)GetSystemMetrics(SM_CXSCREEN);       // width
      int iSh = (WORD)GetSystemMetrics(SM_CYSCREEN);       // height
    
      // make a rectangle on the center of the screen
      RECT rc = { (iSw - iWidth)/2, (iSh - iHeight)/2, iWidth, iHeight };
    
      // create the window.
      // note the WS_POPUP flag, no caption, no borders, no nothing.
      hWnd = CreateWindow("w32skin", "w32skin",
                          WS_POPUP,
                          rc.left,rc.top, iWidth,iHeight,
                          NULL, NULL, GetModuleHandle(NULL), NULL);
    
      // return result
      return (hWnd?true:false);
    }
    

    habe alles von hier:
    http://www.flipcode.com/articles/article_win32skins.shtml

    danke!



  • tjo ... wo ist das Problem ?! GetWindowLong SetWindowLong ...

    Oder halt einfach mit WNDCLASSEX und CreateWindowEx ... dann als Extended Style WS_EX_TOOLWINDOW angeben und schon, oh wunder... es geht... wie Jochen aber schon sagte -.-



  • oh man ich habs irgendwie verdreht 🙂

    danke an euch! klappt super!


Anmelden zum Antworten