PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Фон


Фон

Сообщений 1 страница 6 из 6

1

Как сделать так, что бы находящийся jpg-файл стал фоном в окне Pure Basic?

0

2

Почитай Рисованный интерфейс программы

0

3

OPBR написал(а):

Как сделать так, что бы находящийся jpg-файл стал фоном в окне Pure Basic?

В простейшем случае, размешаешь ImageGadget в окне, делаешь его не активным (функция DisableGadget()), загружаешь в него рисунок.
Пример. http://pure-basic.narod.ru/forum/Back_Image.rar

0

4

Код:
SetClassLongPtr_(WindowID(0), #GCL_HBRBACKGROUND, CreatePatternBrush_(ImageID(0)))
InvalidateRect_(WindowID(0), 0, 1)

Этот код ставит изображение ImageID(0) как фон у окна WindowID(0). Если нужен именно фон окна, то имхо, это лучший способ, даже лучше ImageGadget()'а.

0

5

Как сделать так, что бы находящийся jpg-файл стал фоном в окне Pure Basic?

А для линукса есть что то подобнее?

Код:
SetClassLongPtr_(WindowID(0), #GCL_HBRBACKGROUND, CreatePatternBrush_(ImageID(0)))
InvalidateRect_(WindowID(0), 0, 1)

0

6

Вот дали за бугром

Код:
   Procedure SetWindowBackgroundImage(hWnd.I, hImage.I)
    CompilerSelect #PB_Compiler_OS
     CompilerCase #PB_OS_Linux    
      Protected *Background, FixedBox.I, *Style.GtkStyle
      gdk_pixbuf_render_pixmap_and_mask_(hImage, @*Background, 0, 0)
      *Style = gtk_style_new_()
      *Style\bg_pixmap[0] = *Background
      FixedBox = g_list_nth_data_(gtk_container_get_children_(gtk_bin_get_child_(hWnd)), 0)
      gtk_widget_set_style_(FixedBox, *Style)
     CompilerCase #PB_OS_Windows
      SetClassLongPtr_(hWnd, #GCL_HBRBACKGROUND, CreatePatternBrush_(hImage))
      InvalidateRect_(hWnd, 0, #True)  
    CompilerEndSelect  
   EndProcedure

    If LoadImage(0, #PB_Compiler_Home + "examples/sources/Data/Geebee2.bmp") = #False
      Debug "Error loading background image"
    Else
      OpenWindow(0, 270, 100, 254, 260, "With background image", #PB_Window_SizeGadget)
      SetWindowBackgroundImage(WindowID(0), ImageID(0))
      ButtonGadget(0, 90, 116, 74, 25, "Click me!")

      Repeat
        Select WaitWindowEvent()
          Case #PB_Event_CloseWindow
            Break
          Case #PB_Event_Gadget
            If EventGadget() = 0
              Debug "Button was clicked!"
            EndIf
        EndSelect
      ForEver
    EndIf

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Фон