Gadget ›› WebGadget

プログラム言語 FreeBasic


WebGadget


構文

Function WebGadget(ByVal gadget As Long, ByVal x As Long, ByVal y As Long, byval w As Long, byval h As Long, byref URL As String=" ", ByVal Style As Integer=0, ByVal ExStyle As Integer=0) As Integer Ptr

説明

ブラウザ・ガジェットを作成します。
HTML ページ、動画、GIF画像などを表示するために使えます。
この関数は、サービス関数(WebgadgetNavigate、WebGadgetState など)によって使われる、オブジェクトへのポインターを返します。
ブラウザーウィンドウのハンドルを取得する必要がある場合は、GadgetID 関数 を使います。

オプション

gadget - ID  番号 (ゼロより大きい任意の自然数。1、2、3、4 など。)

x,y,w,h - ガジェットの場所とサイズ

URL - 初期リンク

Style - (Windowsのみ)以下のスタイルを使えます(OpenWindow 参照):

WS_MAXIMIZE - 最初に最大化されるウィンドウを作成します。

WS_MINIMIZE - 最初に最小化されたウィンドウを作成します。
WS_ICONIC と同じスタイル。

WS_OVERLAPPEDWINDOW - WS_OVERLAPPED、WS_CAPTION、WS_SYSMENU、WS_THICKFRAME、WS_MINIMIZEBOX、WS_MAXIMIZEBOX のスタイルで重なり合うウィンドウを作成します。
WS_TILEDWINDOW と同じスタイルです。

WS_POPUP - ポップアップ・ウィンドウを作成します。
このスタイルは、WS_CHILD スタイルと共に使うことはできません。

WS_VISIBLE - 最初に表示されるウィンドウを作成します。

WS_BORDER - 細い線のフレームを持つウィンドウを作成します。

WS_CAPTION - タイトルバー(WS_BORDER スタイルを含む)を持つウィンドウを作成します。

WS_CHILD - 子ウィンドウを作成します。
このスタイルは、WS_POPUP スタイルと共に使えません。

WS_CHILDWINDOW - WS_CHILD スタイルと同じです。

WS_CLIPCHILDREN - 親ウィンドウ内で描画が行われるときに、子ウィンドウが占める領域を除外します。
このスタイルは、親ウィンドウを作成するときに使われます。

WS_CLIPSIBLINGS - 相対的に子ウィンドウを相互にロックします。 つまり、WS_CLIPSIBLINGS スタイルは、子ウィンドウが WM_PAINT メッセージを受けると、変更が必要な子ウィンドウの領域外にある他のすべての重なり合う子ウィンドウをロックします。
WS_CLIPSIBLINGS スタイルが定義されないと、子ウィンドウが重なっている場合、子ウィンドウの作業領域内に描画するときに、隣接する子ウィンドウの内部作業領域が、表示されてしまう可能性があります。

WS_DISABLED - 最初にロックされたウィンドウを作成します。
ロックされたウィンドウは、ユーザーからの入力を受け入れることができません。

WS_DLGFRAME - 通常はダイアログ・ボックスで使われる、けい線タイルのウィンドウを作成します。
このスタイルのウィンドウにタイトルバーを付けることはできません。

WS_GROUP - コントロールのグループで、最初のコントロールを識別します。
グループは、この最初のコントロールと、これに続くすべての定義済みコントロールから、次の WS_GROUP スタイルのコントロールまでで構成されます。
各グループの最初のコントロールは、通常 WS_TABSTOP スタイルで、ユーザーはグループ間を移動できます。
その後、ユーザーは、矢印キーを使って、あるグループのコントロールから次のグループのコントロールに、キーボードフォーカスを移すことができます。

WS_HSCROLL - 水平スクロールバーを持つウィンドウを作成します。

WS_ICONIC - 最初に最小化されたウィンドウを作成します。
WS_MINIMIZE と同じスタイルです。

WS_MAXIMIZEBOX - 最大化ボタンを持つウィンドウを作成します。
WS_EX_CONTEXTHELP スタイルと組み合わせることはできません。
さらに、WS_SYSMENU スタイルを定義する必要があります。

WS_MINIMIZEBOX - 最小化ボタンを持つウィンドウを作成します。
WS_EX_CONTEXTHELP スタイルと組み合わせることはできません。
さらに、WS_SYSMENU スタイルを定義する必要があります。

WS_OVERLAPPED - 重なり合うウィンドウを作成します。
重なり合うウィンドウには、タイトルバーと境界線があります。
WS_TILED と同じスタイルです。

WS_POPUPWINDOW - WS_BORDER、WS_POPUP、WS_SYSMENU のスタイルで、ポップアップウィンドウを作成します。
ウィンドウメニュー(ウィンドウ)を表示するには、WS_CAPTION スタイルと WS_POPUPWINDOW スタイルを組み合わせる必要があります。

WS_SIZEBOX - ウィンドウ・フレームサイズが設定されたウィンドウを作成します。
WS_THICKFRAME スタイルと同じです。

WS_SYSMENU - タイトルバーにウィンドウ・メニュー (window-menu) を持つウィンドウを作成します。
さらに、WS_CAPTION スタイルを定義する必要があります。

WS_TABSTOP - ユーザーが Tab キーを押したときにキーボード・フォーカスを受け取ることができるコントロールを定義します。
タブキーを押すと、キーボード・フォーカスが WS_TABSTOP スタイルの次のコントロールに移動します。

WS_THICKFRAME - ウィンドウ・フレームサイズが設定されたウィンドウを作成します。
WS_SIZEBOX スタイルと同じです。

WS_TILED - 重なり合うウィンドウを作成します。
重なり合うウィンドウには、タイトルバーと境界線があります。
WS_OVERLAPPED スタイルと同じです。

WS_TILEDWINDOW - WS_OVERLAPPED、WS_CAPTION、WS_SYSMENU、WS_THICKFRAME、WS_MINIMIZEBOX、WS_MAXIMIZEBOX のスタイルで、重なり合うウィンドウを作成します。
WS_ OVERLAPPEDWINDOW と同じです。

WS_VSCROLL - 垂直スクロールバーを持つウィンドウを作成します。


ExStyle - (Windowsのみ)拡張スタイルに次のものがあります:

WS_EX_ACCEPTFILES - このスタイルで作られたウィンドウが、ドラッグアンドドロップ技術を使ってファイルを受け入れることを指定します。

WS_EX_APPWINDOW - ウィンドウが最小化されているときに、タスクバーの最上位ウィンドウをアクティブにします。

WS_EX_CLIENTEDGE - ウィンドウの縁が凹んだフレームを持つことを指定します。

WS_EX_CONTEXTHELP - ウィンドウのタイトルバーに疑問符を付けます。
ユーザーが疑問符をクリックすると、カーソルが、ポインターの付いた疑問符に変わります。
この状態で、ユーザーが子ウィンドウをクリックすると、子は WM_HELP メッセージを受け入れます。
子ウィンドウは、親ウィンドウプロシージャにメッセージを渡す必要があります。 これは、HELP_WM_HELP コマンドを使って WinHelp 関数によって呼び出される必要があります。
ヘルプアプリケーションは、ポップアップ・ウィンドウを表示します。 このウィンドウには通常、子ウィンドウのヘルプが含まれています。
WS_EX_CONTEXTHELP は、WS_MAXIMIZEBOX と WS_MINIMIZEBOX スタイルでは使えできません。

WS_EX_CONTROLPARENT - ユーザーがタブキー(TAB)を使ってメインウィンドウの子ウィンドウ間を移動できるようにします。

WS_EX_DLGMODALFRAME - 二重境界線を持つウィンドウを作成します。
ウィンドウは、(オプションで)dwStyle パラメーターの WS_CAPTION スタイルで定義されたタイトルバーを使えます。

WS_EX_LEFT - ウィンドウは、一般的に使われる「左揃え」のプロパティがあります。
これがデフォルトです。

WS_EX_LEFTSCROLLBAR - OS の表示言語が、ヘブライ語、アラビア語、または読む方向が右方向の他の言語である場合、垂直スクロールバー(表示されている場合)は作業領域の左側にあります。
そうでない普通の言語では、エラーとはならず、このスタイルは無視されます。

WS_EX_LTRREADING - ウィンドウのテキストは、読み取り方向のプロパティを使って表示されます。
左→右。 これがデフォルトです。

WS_EX_MDICHILD - MDI 子ウィンドウを作成します。

WS_EX_NOPARENTNOTIFY - このスタイルで作成された子ウィンドウは、作成または破棄されたときに、親ウィンドウに WM_PARENTNOTIFY メッセージを送信しないことを指定します。

WS_EX_OVERLAPPEDWINDOW - WS_EX_CLIENTEDGE スタイルと WS_EX_WINDOWEDGE スタイルを組み合わせます。

WS_EX_PALETTEWINDOW - WS_EX_WINDOWEDGE、WS_EX_TOOLWINDOW、WS_EX_TOPMOST スタイルを組み合わせます。

WS_EX_RIGHT - ウィンドウには、よく使われる右揃えのプロパティがあります。
ウィンドウのクラスによって異なります。
このスタイルが有効になるのは、OS の表示言語がヘブライ語、アラビア語、または読み取り方向の異なる整列順序をサポートする別の言語の場合のみです。
それ以外の場合、エラーとはならず、このスタイルは無視されます。

WS_EX_RIGHTSCROLLBAR - 垂直スクロールバー(表示されている場合)は、ワークスペースの右側です。
これがデフォルトです。

WS_EX_RTLREADING - OS の表示言語がヘブライ語、アラビア語、または別の読み上げ順序に従う別の言語である場合、ウィンドウ内のテキストは、読み上げ順序のプロパティである 右→左を使っして表示されます。
他の言語の場合、エラーとはならず、スタイルは無視されます

WS_EX_STATICEDGE - 3次元の枠スタイルのウィンドウを作成します。
これは、ユーザーからの入力情報を受け付けない要素に使うことになっています。

WS_EX_TOOLWINDOW - ツール・ウィンドウを作成します。 つまり、ウィンドウは、フローティング・ツールバーとして使われることになっています。
ツール・ウィンドウのタイトルバーは、通常のタイトルバーよりも短く、ウィンドウのタイトルは小さいフォントで表示されます。
ツール・ウィンドウは、タスクバーに表示されず、ユーザーが Alt + Tab キーを押したときに表示されるダイアログボックスにも表示されません。

WS_EX_TOPMOST - このスタイルで作成されたウィンドウを、何よりも上に配置することを指定します。最上位のウィンドウではなくても、ウィンドウが非アクティブになっていても、その上になります。
このスタイルを追加または削除するには、SetWindowPos 関数を使います。

WS_EX_TRANSPARENT - このスタイルで作成されたウィンドウが透明であることを指定します。
つまり、このウィンドウの下に表示されるウィンドウは、これによって隠されません。
このスタイルで作成されたウィンドウは、その下のすべての姉妹ウィンドウが変更された後でのみ、WM_PAINT メッセージを受け入れます。

WS_EX_WINDOWEDGE - ウィンドウに、縁が凸状の枠があることを指定します。


プラットホーム

Windows , Linux


#Include "window9.bi"

Dim Shared As Integer event
Dim Shared As Any Ptr bra
Dim Shared As HWND hwnd 
Dim Shared As String URL

#Ifdef __FB_WIN32__
  Var style = WS_VSCROLL Or WS_HSCROLL
  Var ExStyle = WS_EX_CLIENTEDGE
#Else
  Var style = 0
  Var ExStyle = 0
#EndIf

hwnd=OpenWindow("WebGadget",10,10,800,600) : CenterWindow(hwnd)

bra=WebGadget(1,10,50,760,500,"http://www.mneniya.ucoz.ru/",style,ExStyle)
StringGadget(2,160,10,540,25,"http://www.mneniya.ucoz.ru/")
SetGadgetFont(2,LoadFont("Arial",12,,1))
ButtonGadget(3,10,10,50,20,"Prev")
ButtonGadget(4,70,10,50,20,"Next")
ButtonGadget(5,720,10,50,20,"Go")

function navigate() As Integer
   If WebGadgetState(bra)<>0 Then
      If URL<>WebGadgetGetURL(bra) Then
         URL=WebGadgetGetURL(bra)
         setgadgettext(2,URL)
      EndIf
   EndIf
   Return TRUE
End Function

SetTimer(hwnd,1,100, Cast(Any Ptr,@navigate))

Do
   event=WaitEvent()
   If Event=EventClose Then
      End
   ElseIf  Event=EventGadget Then
      Select Case EventNumber
         Case 3
            WebGadgetGoBack(bra)
         Case 4
            WebGadgetGoForward(bra)
         Case 5
            dim as Ustring sz = GetGadgetText(2)
            #ifdef UNICODE
               WebGadgetNavigate(bra,**sz)
            #else
               WebGadgetNavigate(bra,sz) 
            #EndIf
      End Select
   EndIf
Loop

結果



旧例:

#Include "window9.bi"
Dim Shared As Integer event
Dim Shared As Any Ptr bra
Dim Shared As HWND hwnd
Dim Shared As String URL
#Ifdef __FB_WIN32__
Var style = WS_VSCROLL Or WS_HSCROLL
Var ExStyle = WS_EX_CLIENTEDGE
#Else
Var style = 0
Var ExStyle = 0
#EndIf
hwnd=OpenWindow("WebGadget",10,10,800,600) : CenterWindow(hwnd)
bra=WebGadget(1,10,50,760,500,"https://www.freebasic.net/",style,ExStyle)
StringGadget(2,160,10,540,25,"https://www.freebasic.net/")
SetGadgetFont(2,LoadFont("Arial",12,,1))
ButtonGadget(3,10,10,50,20,"Prev")
ButtonGadget(4,70,10,50,20,"Next")
ButtonGadget(5,720,10,50,20,"Go")
function navigate() As Integer
   If WebGadgetState(bra)<>0 Then
      If URL<>WebGadgetGetURL(bra) Then
         URL=WebGadgetGetURL(bra)
         setgadgettext(2,URL)
      EndIf
   EndIf
   Return TRUE
End Function
SetTimer(hwnd,1,100, Cast(Any Ptr,@navigate))
Do
   event=WaitEvent()
   If Event=EventClose Then
      End
   ElseIf  Event=EventGadget Then
      Select Case EventNumber
         Case 3
            WebGadgetGoBack(bra)
         Case 4
            WebGadgetGoForward(bra)
         Case 5
            WebGadgetNavigate(bra,GetGadgetText(2))
      End Select
   EndIf
Loop


http://mneniya.ucoz.ru/

←リンク元に戻る Window9 トップに戻る FreeBASIC マニュアル トップに戻る
ロシア語オリジナル:https://users.freebasic-portal.de/freebasicru/window9lib/window9.html