FreeBASIC マニュアルのトップに戻る

FreeBASIC Screencontrol

目次→描画ライブラリー参考→描画画面関連SCREENCONTROL←オリジナル・サイト

SCREENCONTROL 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

内部の描画ライブラリ設定を用意する、あるいは、取得します。

構文:
declare sub ScreenControl ( byval what as const long, byref param1 as long = &h80000000, byref param2 as long = &h80000000, byref param3 as long = &h80000000, byref param4 as long = &h80000000 )
declare sub ScreenControl ( byval what as const long, byref param1 as longint, byref param2 as longint = &h80000000, byref param3 as longint = &h80000000, byref param4 as longint = &h80000000 )
declare sub ScreenControl ( byval what as const long, byref param as string)

用法:
in the LONG (or INTEGER<32>) version of the sub:
ScreenControl( what [, [ param1 ] [, [ param2 ] [, [ param3 ] [, param4 ]]]] )
or,
ScreenControl( what , param )
in the LONGINT (or INTEGER<64>) version of the sub:
ScreenControl( what , param1 [, [ param2 ] [, [ param3 ] [, param4 ]]] )
or,
ScreenControl( what , param )

パラメータ:
what
実行する関数を指定します。
param1
任意の最初の整数パラメタ。登録で設定する値、または、出口で得られた値を、含んでいます。
param2
2番目の任意の整数パラメタ。登録で設定する値、または、出口で得られた値を、含んでいます。
param3
3番目の任意の整数パラメタ。登録で設定する値、または、出口で得られた値を、含んでいます。
param4
4番目の任意の整数パラメタ。登録で設定する値、または、出口で得られた値を、含んでいます。
param
任意の文字列パラメタ。登録で設定するテキスト、または、出口で得られたテキストを、含んでいます。

記述:

この関数は、内部の GfxLib の状態を設定するか、または取得するために使います。
what パラメタは、どの操作を実行するかを指定します。
状態を設定する操作で、param* パラメタは、設定すべき値を含まなければなりません。
状態を取得する操作では、param* は、関数が戻るとき、GfxLib からの戻り値を保存します。

param* パラメタの意味は、what パラメタに依存します。param* パラメタで可能な値は、fbgfx.bi で定義された定数となります。
lang fbでは、FB Namespace に、格納されるように設定されます。

以下は、what の内容としてサポートされている項目と、それらに関連しているパラメタと共に書かれるときに定義されている、値のリストです。


サポートされている操作

注意:
(*)印: Screen (Graphics)ScreenRes を介して、描画モードがまだ設定されていないときに、許可される操作を示します。
(**)印: Screen (Graphics)ScreenRes で描画モードを設定する前に、実行する必要がある操作を示します。

印以外のすべての操作では、戻り値は、ゼロ (0) か、空の文字列("")です。呼び出し時に描画モードが利用できない場合、操作は効果がありません。

取得操作

設定操作

他の操作

例:
注:FreeBASIC 1.08〜 で、SetEnviron を追加しなくても、日本語環境で描画画面が表示されるように改善されました。
' Sets the graphics method GDI
' 描画方法を GDI に設定
SetEnviron("fbgfx=GDI")

'' 役に立つ定義のため、fbgfx.bi を含めます
#include "fbgfx.bi"

'' 型/定数に簡単にアクセスできるように、FB 名前空間を使います
Using FB

Dim e As EVENT
Dim As Long x0, y0, x, y
Dim As Integer shakes = 0
Dim As Any Ptr img

ScreenRes 320, 200, 32
Print "Click to shake window"

'' window 座標を見つける
ScreenControl GET_WINDOW_POS, x0, y0

Do

    If (shakes > 0) Then
       
        '' ウインドウを振動させます

        If (shakes > 1) Then

            '' ウィンドウを、その元の座標の近くの任意の位置に、移動させます。
            x = x0 + Int(32 * (Rnd() - 0.5))
            y = y0 + Int(32 * (Rnd() - 0.5))
            ScreenControl SET_WINDOW_POS, x, y

        Else

            '' ウィンドウを、その元の座標に移動させます。
            ScreenControl SET_WINDOW_POS, x0, y0

        End If

        shakes -= 1

    End If

    If (ScreenEvent(@e)) Then
        Select Case e.type
       
        '' ユーザはマウスボタンを押しました。
        Case EVENT_MOUSE_BUTTON_PRESS

            If (shakes = 0) Then
                '' 20 振動を設定
                shakes = 20

                '' まわりに震動するために現在のウィンドウ座標を見つけます。
                ScreenControl GET_WINDOW_POS, x0, y0
            End If

        '' ユーザは、ウィンドウを閉じるか、キーを押しました。
        Case EVENT_WINDOW_CLOSE, EVENT_KEY_PRESS
            '' プログラム終了への出口
            Exit Do

        End Select
    End If

    '' 他のプログラムのために、CPU を解放。
    Sleep 5

Loop



'' 役に立つ定義のため fbgfx.bi を含める
#include "fbgfx.bi"

Dim As String driver

#ifdef __FB_WIN32__
'' ScreenRes を呼ぶ前に、GDI(Windows のみ)に、描画ドライバーを設定
ScreenControl FB.SET_DRIVER_NAME, "GDI"
#endif

ScreenRes 640, 480

'' 描画ドライバー名を取って来て、ユーザに表示する。
ScreenControl FB.GET_DRIVER_NAME, driver
Print "Graphics driver name: " & driver

'' キー入力を待って、ウィンドウを閉じます。
Sleep


バージョン: 方言差:
QBからの違い:
参考:
描画画面関連に戻る
←リンク元に戻る プログラム開発関連に戻る
ページ歴史:2023-07-08 23:52:43
日本語翻訳:WATANABE Makoto、原文著作者:LilloWiki

ホームページのトップに戻る

表示-非営利-継承