Html - Slider ausblenden

Übersicht BlitzBasic BlitzPlus

Neue Antwort erstellen

 

danielos

Betreff: Html - Slider ausblenden

BeitragDi, Sep 02, 2008 10:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin Smile
Ist es irgendwie möglich, den vertikalen Slider einer HtmlViewArea auszublenden ? Weil der standardmäßig einfach mal da ist, selbst ohne das eine Html-Seite geladen wurde...

Hintergrund ist der, dass ich eine kleines Vorschaubild für eine Webseite erstellen will, bei der dieser Slider stört.
Zur Not nehm ich einen Canvas und wandel die Seite in ein Bild um, aber das ist nur die zweitbeste, suboptimale Lösung Rolling Eyes

MfG Danielos

flona

BeitragDi, Sep 02, 2008 13:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau mal in der MSDN. Des müsste irgendwie mit GetWindowLong/SetWindowLong möglich sein. Du musst dann nur zwei Nachrichten an das HtmlView schicken. Die erste soll den aktuellen Style/ExStyle abfragen, dann veränderst du ihn so wie du ihn brauchst und die zweite verändert ihn. Musst nur in der MSDN die Werte nachschauen. Wink
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit
 

danielos

BeitragDi, Sep 02, 2008 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
mercy Smile
 

danielos

BeitragDi, Sep 02, 2008 15:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich glaube es würde funktionieren, leider hab ich gar keine Erfahrung mit eigenen userlibs... Sad
ich hab in der "user32.decls" das hier stehen:

........................................................................................
.lib "user32.dll"

GetWindowLong%(hWnd%,nIndex%):"GetWindowLong"
........................................................................................


und BB+ zeigt das auch schön gelb an, leider kommt dann aber doch immer "userlib function not found"

die Funktion sieht so aus:

Code: [AUSKLAPPEN]
Function DisableScrollbar(gadget)
   HWnd=QueryObject(gadget,1)
   GetWindowLong(HWnd,GWL_EXSTYLE)
End Function


Was mach ich falsch ?

MfG Danielos

flona

BeitragDi, Sep 02, 2008 16:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst in der MSDN immer auch das Kleingedruckte ganz unten lesen:
MSDN hat Folgendes geschrieben:
Minimum DLL Version user32.dll
Header Declared in Winuser.h, include Windows.h
Import library User32.lib
Minimum operating systems Windows 95, Windows NT 3.1
Unicode Implemented as ANSI and Unicode versions.

Bei deinem Problem ist die letzte Zeile ausschlaggebend.
Zitat:
Implemented as ANSI and Unicode versions

Das bedeutet, dass es die Funktion zweimal gibt. Einmal mit dem Namen "GetWindowLongA" und einmal "GetWindowLongW". Wenn nichts dabeisteht. gibt es nur eine. In BB musst du immer die Version mit A(wie ANSI) verwenden. Also so:

Code: [AUSKLAPPEN]
.lib "user32.dll"
GetWindowLong%(hWnd%,nIndex%):"GetWindowLongA"


Ich empfehle dir das hier zu lesen. Da ist des mit den WINAPI Funktionen sehr schön erklärt.
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit
 

danielos

BeitragMi, Sep 03, 2008 11:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke nochmals, aber ich kriegs immer noch nicht hin Sad

.....................................................................................................................
.lib "user32.dll"
GetWindowLong%(hWnd%,nIndex%):"GetWindowLongA"
SetWindowLong%(hWnd%, nIndex%, dwNewLong%):"SetWindowLongA"
.....................................................................................................................

Hab mal ein kleines Testfenster erstellt:

Code: [AUSKLAPPEN]
Const GWL_STYLE = (-16)
Const WS_VSCROLL=$00200000

win=CreateWindow("Test",200,200,500,500,Desktop())
html=CreateHtmlView(0,0,300,300,win)
HideScrollbar(html)

While Not WaitEvent()=$803
Wend

Function HideScrollbar(gadget$)
   HWnd=QueryObject(gadget$,1)
   style=GetWindowLong(HWnd,GWL_STYLE)
   DebugLog("Style: 0x"+Hex(style)+".")
   SetWindowLong(HWnd,GWL_STYLE,WS_VSCROLL)
End Function


Ich hab mich an die genannte Anleitung gehalten...

Style
liefert 0x50000000 zurück, aber das bedeutet doch (wenn ichs richtig kapiert hab), dass es gar keine Scrollbar gibt, denn 0x50000000 besteht aus
Const WS_CHILD = $40000000
Const WS_VISIBLE = $10000000

Ich blick da nicht durch, sorry
Sad

flona

BeitragMi, Sep 03, 2008 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm... Des HtmlView hat den Klassennamen "BLITZMAX_WINDOW_CLASS". Scheibar was Blitz-eigenes. Dann kann ich dir leider auch ned helfen sry. Confused
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit
 

ChristianK

BeitragMi, Sep 03, 2008 16:57
Antworten mit Zitat
Benutzer-Profile anzeigen
BLITZMAX_WINDOW_CLASS ist nicht der Name der HTMLView-Klasse, sondern des Fensters, das dem HTMLView übergeordnet ist. (BlitzPlus/MaxGUI erstellt oft zwei Fenster für ein Objekt).
Der eigentliche Web-Browser ist kein Fenster (HWND), sondern ein COM-Objekt, auf das man mit BlitzPlus nicht zugreifen kann.
Wenn nur eine bestimmte Seite im Fenster angezeigt werden soll, kannst du im <body> Tag die Eigenschaft scroll auf "no" setzen. Dann wird der Scrollbalken nicht mehr angezeigt. Das funktioniert aber afaik nur im IE.
An deiner Stelle würde ich ein Bild von der Website machen und es auf einem Panel im Fenster anzeigen lassen. HTMLView oder Canvas sind dafür viel zu aufwändig, meiner Meinung nach. Smile
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

danielos

BeitragMi, Sep 03, 2008 18:42
Antworten mit Zitat
Benutzer-Profile anzeigen
@christianK
danke für die info! Smile
wie mache ich das vorschaubild einer website ? mit Grabimage und Createimage hats nicht geklappt....

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group