Newsgroup: it.comp.appl.access
Titolo: finestra senza "riduci a icona" e "ingrandisci a schermo intero" con le API

Domandona sulle API di Windows x qualcuno tipo Alessandro Baraldi. Non
sono riuscito a trovare "l'ape" per non mostrare i bottoni "riduci a
icona" e "ingrandisci a schermo intero" di una data finestra. Lavoro
con VBA. Potreste gentilmente aiutarmi?
Naturalmente la finestra non appartiene ad Access, altrimenti non sarei
dovuto ricorrere alle API.
Grazie mille,
Pileggi

Pileggi ha scritto:

Fammi capire di cosa parli....!
Si tratta di un'applicazione esterna....?
Se si puoi ricavare l'handle dell'applicazione, della quale devi
conoscere il ClassName o la Caption, quindi usare il codice che trovi
anche nel SC per rimuovere il pulsanti non tanto delle Form, ma di
ACCESS proprio passando l'handle che hai ricavato...!
Spiegami meglio, di che applicazione stai parlando, avevo fatto
qualcosa del genere per Word
ma sostanzialmente è adattabile a tutto...!
Ciao
@Alex

Alessandro Baraldi ha scritto:

Ciao Alex, grazie. Si tratta di un'animazione swf aperta dal Flash
Player. L'handle della finestra lo ricavo tranquillamente, faccio
fatica con il resto.
Pileggi

Pileggi ha scritto:

Ok, hai usato FindWindow immagino....?
Se hai passato il ClassName devi essere certo che non vi possano essere
aperte 2 istanze di Flash, se passi la CaptionString solitamente(a meno
che non si chiamino UGUALI) non ci sono problemi.
Questa sera(da casa) ti posto il codice, ora non l'ho e a memoria......
Tieni presente che và tolto anche il ContextMenù altrimenti se fai
RightClick sulla Barra(se c'è)
ti rende ugualmente attivi i menù di Riduzione/Chiusura ecc....!
Poi se l'animazione non ha barra ma è FullScreen(vincolata) togli la
parte dei ContexMenù.
Ciao
@Alex

 ti rende ugualmente attivi i menù di Riduzione/Chiusura ecc....!
Sì, l'avevo tolta tramite Action Script
Ciao Alex, grazie ancora!

 ha scritto nel messaggio
news:1159887999....@m7g2000cwm.googlegroups.com...


Ciao Alex, grazie ancora!
Prova ad usare questa non ti metto le dichiarazioni API, che sono standard,
ma ovviamente devi inserirle
come Private o Public a seconda dell'uso che ne farai, nel Modulo bas.....
Public Const WS_SYSMENU = &H80000
Public Const GWL_STYLE = (-16)
Public Const WM_NCPAINT = &H85
Public Function ShowCloseBtn(mhWnd as long, ShowIt As Boolean)
    Dim lngOldStyle  As Long
    Dim lngNewStyle  As Long
    ' Get the current window style of the form.
    lngOldStyle = GetWindowLong(mhWnd, GWL_STYLE)
    If ShowIt Then
        ' Turn on the bit that enables system menu.
        lngNewStyle = lngOldStyle Or WS_SYSMENU
    Else
        ' Turn off the bit the shows the system menu.
        lngNewStyle = lngOldStyle And Not WS_SYSMENU
    End If
    ' Set the new window style.
    Call SetWindowLong(mhWnd, GWL_STYLE, lngNewStyle)
    ' The 1 as the third parameter tells
    ' the window to repaint its entire border.
    Call SendMessage(mhWnd, WM_NCPAINT, 1, 0)
ExitHere:
    Exit Function
HandleErrors:
    Select Case Err.Number
        Case Else
            MsgBox Err.Number & " " & Err.Description
    End Select
    Resume ExitHere
End Function
Fammi sapere se funziona.
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.alessandrobaraldi.it
---------------------------------------------------------------------------

 @Alex (Alessandro Baraldi)
Si funziona, grazie mille. Ma mi toglie anche il pulsante di chiusura
della finestra, dovrei modificare la costante
Public Const GWL_STYLE = (-16)
Ma non sono riuscito a trovare quella che lascia il pulsante di
chiusura e toglie solo quello di riduzione ad icona e di ingrandimento
a pieno schermo.
Per caso la conosci o sai dirmi dove cercarla?
Grazie,
Pileggi

Pileggi ha scritto:

Non ci ho mai pensato...., in ogni caso non è GWL_STYLE  da cambiare,
quella è una costante che dice all'Api SetWindowLong cosa deve fare
alla finestra conl'Handle passato.
Il parametro da modificare è
lngNewStyle = lngOldStyle And Not WS_SYSMENU
Dove come vedi il Not WS_SYSMENU andrà a dire di non visualizzare
tutto il pannellino dei pulsanti...!
Se non sbaglio, ma non ho provato, vado ad intuito, per disabilitare il
solo Minimizze
puoi provare questo:
Public Const WS_MINIMIZE = &H20000000
lngNewStyle = lngOldStyle And Not WS_MINIMIZE
Fammi sapere se ci ho preso.
@Alex

 Fammi sapere se ci ho preso.
No, purtroppo non funziona. Forse il valore di WS_MINIMIZE è
differente. Scusa l'ignoranza somma, ma &H20000000 è una sintassi che
non capisco tanto, potresti spiegarmi "&" e "H" cosa significano?
Adesso provo ancora a cercarmi una pagina con il valore di tutte queste
costanti. Come sempre grazie,
Pileggi

Pileggi ha scritto:

Indicano il tipo di numero e la sua formattazione(Integer se non
ricordo male e Hexadecimal)
Ciao
@Alex