NUEVO GESTOR DE VENTANAS EN W11

NUEVO GESTOR DE VENTANAS EN W11

Postby JESUS MARIN » Fri Aug 04, 2023 6:49 am

Buenos dias a todos.
Estoy intentando simular el nuevo gestor de ventanas de windows 11, al que además de posicionar la ventana en un lugar concreto, quiero darle una nueva funcionalidad.
Quiero en un programa con ventanas MDICHILD, poder sacar una MDICHILD y ponerla en una parte de la pantalla.
Para ello quiero similar el GESTOR DE VENTANAS DE WINDOWS 11.

Este es el nuevo GESTOR DE VENTANAS de Windows 11
Image

Quiero crear un dialogo para poder poner los botones apropiados, pero obtengo el diálogo con la barra de CAPTION
Image

Si le pongo el estilo POPUP no se muestra con el estilo de Windows 11, (contorno redondeado, sombras, etc...)
Image

¿alguien conoce el estilo o combinacion de estilos para conseguir el dialogo, sin la barra del caption y con bordes redondeados?
Muchas gracias

Jesús Marín
Jesús Marín
JESUS MARIN
 
Posts: 176
Joined: Wed Jan 02, 2019 8:36 am

Re: NUEVO GESTOR DE VENTANAS EN W11

Postby karinha » Fri Aug 04, 2023 3:31 pm

Code: Select all  Expand view

// C:\FWH..\SAMPLES\ESQINRED.PRG

// Dialogo con esquinas redondas
#include "FiveWin.ch"

#Define CLR_MSPURPLE   nRGB( 0,   120, 215 ) //-> Purpura.
#Define CLR_ORANGE     nRGB( 255, 165, 000 ) //-> Orange     - Laranja

MEMVAR mOver, nRounder

FUNCTION Main()

   LOCAL oDlg, oBrush, oFont, nVar := 100

   SkinButtons()

   mOver    := .T.
   nRounder := 20 // Change this value betwen 0 and 250 to see a results

   DEFINE FONT  oFont NAME "TAHOMA" SIZE 0, - 14
   DEFINE BRUSH oBrush FILENAME "\fwh1905\bitmaps\olga1.jpg"

   DEFINE DIALOG oDlg SIZE 300, 400 PIXEL STYLE WS_POPUP BRUSH oBrush        ;
      FONT oFont TRANSPARENT

   @ 000, 000 BITMAP RESOURCE "" NOBORDER OF oDlg PIXEL SIZE 80, 21          ;
      ON LEFT CLICK Click( oDlg )

   @ 010, 010 SAY "This is some Text" SIZE 80, 12 PIXEL OF oDlg              ;
      COLOR CLR_MSPURPLE, CLR_WHITE TRANSPARENT UPDATE

   @ 030, 010 GET nVar PICTURE "999,999.99" SIZE 80, 12 PIXEL OF oDlg        ;
      UPDATE RIGHT

   @ 150, 010 SAY "Dialogo con Esquinas Redondas" SIZE 100, 12 PIXEL OF oDlg ;
      COLOR CLR_ORANGE, CLR_WHITE TRANSPARENT UPDATE

   @ 165, 010 SAY "<Click> en El BitMap: Move..." SIZE 100, 12 PIXEL OF oDlg ;
      COLOR CLR_GREEN, CLR_WHITE TRANSPARENT UPDATE

   @ 180, 100 BUTTON "Close" SIZE 40, 14 PIXEL OF oDlg ;
      ACTION( oDlg:End() ) CANCEL

   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT( RoundCorners( oDlg ) )

   RELEASE BRUSH oBrush
   RELEASE FONT  oFont

RETURN NIL

STATIC FUNCTION Click( yvent )

   LOCAL nGCPos

   IF .NOT. mOver
      RETURN NIL
   ENDIF

   WHILE GetKeyState( VK_LBUTTON )

      SYSREFRESH()

      nGCPos := GetCursorpos()

      MoveWindow( yvent:hWnd, nGCPos[ 1 ], nGCPos[ 2 ], yvent:nWidth, yvent:nHeight, .T. )

      IF .NOT. GetKeyState( VK_LBUTTON )

         EXIT

      ENDIF

   ENDDO

   nGCPos := GetCursorpos()

RETURN NIL

STATIC FUNCTION RoundCorners( oDlg )

   LOCAL aRect, hRgn

   aRect := GetClientRect( oDlg:hWnd )
   hRgn  := CreateRoundRectRgn( aRect, nRounder, nRounder )

   SetWindowRgn( oDlg:hWnd, hRgn )

   DeleteObject( hRgn )

RETURN NIL

#pragma BEGINDUMP

#include <Windows.h>
#include <HbApi.h>      // Cambiado: 04/08/2023
// #include <ClipApi.h> // error

HB_FUNC( SETWINDOWRGN )
{
  hb_retnl( SetWindowRgn( ( HWND ) hb_parnl( 1 ), ( HRGN ) hb_parnl( 2 ), TRUE ) );
}
#pragma ENDDUMP

// FIN / END - kapiabafwh@gmail.com
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7822
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: NUEVO GESTOR DE VENTANAS EN W11

Postby karinha » Sat Aug 05, 2023 5:10 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7822
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 61 guests