Графика в Windows
Участников: 2
FreeBasic :: Программирование :: Общее
Страница 1 из 1
Графика в Windows
У оператора SCREEN есть параметр flags, одно из его значений -1 описано в хэлпе следующим образом:
А вот что об этом флаге написано здесь: http://freebasic-world.narod.ru/graphic1.html
It creates a graphics buffer but not a window. User must implement the window, the events manager and and refresh screen as needed. This mode allows to mix FreeBASIC drawing functions with API-driven windows. This flag overrides all other mode flags
Означает ли это, что при использовании flags = -1 можно рисовать стандартными графическими операторами Fb на окнах Windows? Или это я неправильно понял?
режим, позволяющий рисовать совместно с GDI функциями API на обычном Windows окне. При этом экран , установленный с помощью Screen и ScreenRes , не отображается.
justar- Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 49
Откуда : Кишинёв, Республика Молдоа
Re: Графика в Windows
justar пишет:У оператора SCREEN есть параметр flags, одно из его значений -1 описано в хэлпе следующим образом:А вот что об этом флаге написано здесь: http://freebasic-world.narod.ru/graphic1.html
It creates a graphics buffer but not a window. User must implement the window, the events manager and and refresh screen as needed. This mode allows to mix FreeBASIC drawing functions with API-driven windows. This flag overrides all other mode flagsОзначает ли это, что при использовании flags = -1 можно рисовать стандартными графическими операторами Fb на окнах Windows? Или это я неправильно понял?
режим, позволяющий рисовать совместно с GDI функциями API на обычном Windows окне. При этом экран , установленный с помощью Screen и ScreenRes , не отображается.
Этот код прольет свет:
- Код:
#include "fbgfx.bi"
#include "window9.bi"
dim shared as HWND g_hwndODS
dim shared as RECT g_rcODS
Dim shared as BITMAPV4HEADER bmi
Dim As HWND hWnd ,hwnd1
Dim Shared As Integer event,i
Dim Shared As hdc hdc
Dim Shared As hbitmap hbmp,hbmp1
'==============================================================================
Sub tt(param As Any Ptr)
Do
line (i,i)-(299-i,299-i),rgb(0,0,0),bf
line (299-i,0)-(i,299),rgb(0,0,255)
line (i,0)-(299-i,299),rgb(0,0,255)
i += 1
i mod=300
with g_rcODS
StretchDIBits( hDC, _
0, _
0, _
.right - .left + 1, _
.bottom - .top, _
0, _
0, _
.right - .left + 1, _
.bottom - .top, _
ScreenPtr, _
CPtr( BITMAPINFO ptr, @bmi), _
DIB_RGB_COLORS, SRCCOPY )
End With
Sleep(5)
Loop
End Sub
hwnd=OpenWindow("",10,10,500,500) : CenterWindow(hwnd)
g_hwndODS=ImageGadget(1,10,10,300,300)
GetClientRect(g_hwndODS , @g_rcODS )
hdc=GetDC(g_hwndODS)
With bmi
.bV4Size = len(BITMAPV4HEADER)
.bv4width = g_rcODS.right+1
.bv4height = -(g_rcODS.bottom+1)
.bv4planes = 1
.bv4bitcount = 32
.bv4v4compression = 0
.bv4sizeimage = (g_rcODS.right+1) * (g_rcODS.bottom+1) * 4
.bV4RedMask = &h0f00
.bV4GreenMask = &h00f0
.bV4BlueMask = &h000f
.bV4AlphaMask = &hf000
end with
ScreenRes g_rcODS.right+1, g_rcODS.bottom+1, 32, 1, FB.GFX_NULL
ThreadCreate(@tt)
Do
event=WaitEvent()
If event=EventClose Then
End
EndIf
Loop
DeleteDC(hdc)
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: Графика в Windows
Спасибо. Буду разбираться на досуге...trew пишет:
Этот код прольет свет:
justar- Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 49
Откуда : Кишинёв, Республика Молдоа
FreeBasic :: Программирование :: Общее
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|