Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] GUICtrlCreatePic


.old

Rekomendowane odpowiedzi

Opublikowano

Siema. Ukończyłem swój program i wyszedł jak chciałem :) Teraz zrobiłem sobie tło pod program, ale gdy wstawiam te tło do programu, to elementy GUI zasłaniają te tło. Oczywiście chciałbym, żeby tło było całkowicie widoczne a nie zasłaniane przez: GUICtrlCreateRadio, GUICtrlCreateLabel i GUICtrlCreateGroup. Najbardziej przeszkadza mi GUICtrlCreateLabel, ponieważ są to newsy i obszar dałem na połowę programu. Pomożecie?

Od dnia 1.11.2013r. 14:17 zobaczono moje posty licznik-56-90712-stat.png razy ;)


 


 

Opublikowano

do każdej funkcji masz Style o exStyle użyj ich

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

A nie łatwiej dać w ten sposób. Źle - buttony zasłaniają a nie tło reszte.

$Okno = GUICreate("Ustawienia", 236, 232, 191, 406)

$Pic1 = GUICtrlCreatePic("\tlogui.bmp", 0, 0, 234, 228)

GUICtrlSetState(-1, $GUI_DISABLE)

;tu buttony itp

 

Albo ustawić w parametrach buttonu/radia itp albo w początkach moich z autoit jeśli było jednolite tło to uzywałem GUICtrlSetBkColor

1387536187-U112334.png

Jeśli Ci pomogłem mógłbyś wynagrodzić lajkiem :)

Opublikowano

do każdej funkcji masz Style o exStyle użyj ich

 

Sprawdziłem i znalazłem: $SS_WHITERECT, ale tekst znika gdy tego użyje + zostaje taka ramka. Nic innego nie znalazłem..

Od dnia 1.11.2013r. 14:17 zobaczono moje posty licznik-56-90712-stat.png razy ;)


 


 

Opublikowano

W najgorszym wypadku możesz wkleić obrazek buttona który potraktujesz jako button. (GUICtrlCreatePic i Switch)

1387536187-U112334.png

Jeśli Ci pomogłem mógłbyś wynagrodzić lajkiem :)

Opublikowano

@UP: Buttonów w ogóle nie mam. Używam w programie: GUICtrlCreateRadio, GUICtrlCreateLabel i GUICtrlCreateGroup.

Od dnia 1.11.2013r. 14:17 zobaczono moje posty licznik-56-90712-stat.png razy ;)


 


 

Opublikowano

Sorry mój błąd, a jakie jest tło? Jakiś obraz czy kolor?

1387536187-U112334.png

Jeśli Ci pomogłem mógłbyś wynagrodzić lajkiem :)

Opublikowano

Po prostu guiCtrlCreatePic użyj na początku zaraz pod guiCreate.

WSZYSTKIE PLIKI W CHMURZE DLA MPCFORUM ZOSTAŁY USUNIĘTE. NIE KORZYSTAĆ Z MOICH PROGRAMÓW.

Proszę nie ingerować w moje posty/tematy, w razie potrzeby usunąć całą zawartość. Nie pomagam.

Opublikowano

Po prostu guiCtrlCreatePic użyj na początku zaraz pod guiCreate.

 

Zrobiłem tak i nadal np. GUICtrlCreateLabel zasłania mi tło. A i jak ten problem wygląda:

 

gwj8.jpg

 

Jeszcze oprócz tego w programie jest GUICtrlCreateRadio.

Od dnia 1.11.2013r. 14:17 zobaczono moje posty licznik-56-90712-stat.png razy ;)


 


 

Opublikowano

Po prostu guiCtrlCreatePic użyj na początku zaraz pod guiCreate.

Też tak myślałem na początku ale jemu chodzi o to że obiekt zasłania tło, a nie tło zasłania obiekt.

1387536187-U112334.png

Jeśli Ci pomogłem mógłbyś wynagrodzić lajkiem :)

Opublikowano

 

Zrobiłem tak i nadal np. GUICtrlCreateLabel zasłania mi tło. A i jak ten problem wygląda:

 

gwj8.jpg

 

Jeszcze oprócz tego w programie jest GUICtrlCreateRadio.

 

Widzę sami fachowcy w tym temacie <_<

 

Użyj tego dla labeli i tych elementów które zasłaniają Ci tło:

 

GUICtrlSetBkColor(KONTROLKA,$GUI_BKCOLOR_TRANSPARENT)

np.

GUICtrlSetBkColor($Label1,$GUI_BKCOLOR_TRANSPARENT)

9obpmnjr.png

Opublikowano

 

 

Widzę sami fachowcy w tym temacie <_<

 

Użyj tego dla labeli i tych elementów które zasłaniają Ci tło:

 

GUICtrlSetBkColor(KONTROLKA,$GUI_BKCOLOR_TRANSPARENT)

np.

GUICtrlSetBkColor($Label1,$GUI_BKCOLOR_TRANSPARENT)

 

Dzięki, działa jak należy :) Lecz jeszcze chciałbym, aby ta przeźroczystość była też dla GUICtrlCreateRadio i GUICtrlCreateGroup:

 

dis9.png

Od dnia 1.11.2013r. 14:17 zobaczono moje posty licznik-56-90712-stat.png razy ;)


 


 

Opublikowano

Tak samo jak label. U mnie nie ma erroru ale nie wygląda tak ładnie jak label.

 

The special flag $GUI_BKCOLOR_TRANSPARENT can be used with Label, Group, Radio, Checkbox

W tym możesz użyć.

1387536187-U112334.png

Jeśli Ci pomogłem mógłbyś wynagrodzić lajkiem :)

Opublikowano

Zrobiłem tak już wcześniej i gdy program się włącza to wyskakuje error:

 

GUICtrlSetBKColor($radio1, $GUI_BKCOLOR_TRANSPARENT) ; Zrobiłem to pod GUICtrlCreateRadio (również error wyskakuje pod GUICtrlCreateGroup)

GUICtrlSetBKColor(^ ERROR

 

Error: Variable used without being declared.

Od dnia 1.11.2013r. 14:17 zobaczono moje posty licznik-56-90712-stat.png razy ;)


 


 

Opublikowano

Zrobiłem tak już wcześniej i gdy program się włącza to wyskakuje error:

 

GUICtrlSetBKColor($radio1, $GUI_BKCOLOR_TRANSPARENT) ; Zrobiłem to pod GUICtrlCreateRadio (również error wyskakuje pod GUICtrlCreateGroup)

GUICtrlSetBKColor(^ ERROR

 

Error: Variable used without being declared.

 

Czytaj co ten error Ci mowi. Nie zdeklarowales radia lub napisales te ceche przed nim. Strzaleczka pokazuje wyraznie czego sie czepia.

9obpmnjr.png

Opublikowano

 

Czytaj co ten error Ci mowi. Nie zdeklarowales radia lub napisales te ceche przed nim. Strzaleczka pokazuje wyraznie czego sie czepia.

 

Teraz zobaczyłem i pod radio już wcześniej zrobiłem (GUICtrlCreateRadio("1", 20, 30, 130, 15, $GUI_BKCOLOR_TRANSPARENT, 0x000000)). Ale miałeś rację, że zrobiłem to przed :) I jak to zrobię to i tak te białe pole pod radio zostaje:

 

cpjb.png - Te pod kółkiem białe pole :/

 

I jeszcze gdy to robię pod GUICtrlCreateGroup to nic się nie zmienia.

Od dnia 1.11.2013r. 14:17 zobaczono moje posty licznik-56-90712-stat.png razy ;)


 


 

Opublikowano

 

Teraz zobaczyłem i pod radio już wcześniej zrobiłem (GUICtrlCreateRadio("1", 20, 30, 130, 15, $GUI_BKCOLOR_TRANSPARENT, 0x000000)). Ale miałeś rację, że zrobiłem to przed :) I jak to zrobię to i tak te białe pole pod radio zostaje:

 

cpjb.png - Te pod kółkiem białe pole :/

 

I jeszcze gdy to robię pod GUICtrlCreateGroup to nic się nie zmienia.

 

Po bibliotekach dodaj:

 

Dim $XS_n

Po definicji gui i tła dodaj:

 

XPStyle()

Dorzuć sobie funkcję:

 

Func XPStyle($OnOff = 1)
    If $OnOff And StringInStr(@OSTYPE, "WIN32_NT") Then
        $XS_n = DllCall("uxtheme.dll", "int", "GetThemeAppProperties")
        DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 0)
        Return 1
    ElseIf StringInStr(@OSTYPE, "WIN32_NT") And IsArray($XS_n) Then
        DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", $XS_n[0])
        $XS_n = ""
        Return 1
    EndIf
    Return 0
EndFunc 

9obpmnjr.png

Opublikowano

 

 

Po bibliotekach dodaj:

 

Dim $XS_n

Po definicji gui i tła dodaj:

 

XPStyle()

Dorzuć sobie funkcję:

 

Func XPStyle($OnOff = 1)
    If $OnOff And StringInStr(@OSTYPE, "WIN32_NT") Then
        $XS_n = DllCall("uxtheme.dll", "int", "GetThemeAppProperties")
        DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 0)
        Return 1
    ElseIf StringInStr(@OSTYPE, "WIN32_NT") And IsArray($XS_n) Then
        DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", $XS_n[0])
        $XS_n = ""
        Return 1
    EndIf
    Return 0
EndFunc 

 

Zrobiłem i zmienił się obrazek tego radio i "ramka" GUICtrlCreateGroup:

 

cpjb.png (wcześniej)

 

onfu.png (teraz)

Od dnia 1.11.2013r. 14:17 zobaczono moje posty licznik-56-90712-stat.png razy ;)


 


 

Opublikowano

 

Zrobiłem i zmienił się obrazek tego radio i "ramka" GUICtrlCreateGroup:

 

cpjb.png (wcześniej)

 

onfu.png (teraz)

 

Jaki masz OS?

 

A tu jak masz?:

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Dim $XS_n
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 369, 207, 192, 124)
$nPic = GUICtrlCreatePic(@AutoItExe & "\..\Examples\GUI\msoobe.jpg", 0, 0, 400, 200, 0)
XPStyle()
$Radio1 = GUICtrlCreateRadio("Radio1", 136, 72, 113, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

GUICtrlSetBkColor($Radio1, $GUI_BKCOLOR_TRANSPARENT)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd

Func XPStyle($OnOff = 1)
    If $OnOff And StringInStr(@OSTYPE, "WIN32_NT") Then
        $XS_n = DllCall("uxtheme.dll", "int", "GetThemeAppProperties")
        DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 0)
        Return 1
    ElseIf StringInStr(@OSTYPE, "WIN32_NT") And IsArray($XS_n) Then
        DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", $XS_n[0])
        $XS_n = ""
        Return 1
    EndIf
    Return 0
EndFunc   ;==>XPStyle

9obpmnjr.png

Opublikowano

 

 

Jaki masz OS?

 

A tu jak masz?:

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Dim $XS_n
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 369, 207, 192, 124)
$nPic = GUICtrlCreatePic(@AutoItExe & "\..\Examples\GUI\msoobe.jpg", 0, 0, 400, 200, 0)
XPStyle()
$Radio1 = GUICtrlCreateRadio("Radio1", 136, 72, 113, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

GUICtrlSetBkColor($Radio1, $GUI_BKCOLOR_TRANSPARENT)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd

Func XPStyle($OnOff = 1)
    If $OnOff And StringInStr(@OSTYPE, "WIN32_NT") Then
        $XS_n = DllCall("uxtheme.dll", "int", "GetThemeAppProperties")
        DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 0)
        Return 1
    ElseIf StringInStr(@OSTYPE, "WIN32_NT") And IsArray($XS_n) Then
        DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", $XS_n[0])
        $XS_n = ""
        Return 1
    EndIf
    Return 0
EndFunc   ;==>XPStyle

 

Mam Windows 8 (64 bit). A skrypt to pokaże tak obrazowo, jak u mnie wygląda:

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <ListBoxConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstants.au3>
#include <File.au3>
#include <Misc.au3>
#Include <StaticConstants.au3>

Dim $XS_n
Opt("TrayMenuMode", 1)

; <-- Tutaj mam funkcję na sprawdzanie nowych aktualizacji programu

Local $DLL = DllOpen("user32.dll")

$GUI = GUICreate("Program v" & $Wersja, 265, 395)
GUISetState(@SW_SHOWNORMAL)

; <-- Tutaj mam GUICtrlCreateMenu itp. więc pomine

Global $BI = GUICtrlCreatePic(@ScriptDir & "\tlo.jpg", 0, 0, 265, 395)
XPStyle()

$newsy = GUICtrlCreateLabel("Wczytywanie..", 130, 10, 131, 317)
                  GUICtrlSetBkColor($newsy, $GUI_BKCOLOR_TRANSPARENT)

; <-- Tutaj zrobiłem funkcję, która pobiera news z FTP i zamiast "Wczytywanie.." wstawia tekst z FTP

Global Const $Group = GUICtrlCreateGroup("Grupa:", 10, 10, 115, 340)

Global Const $radio1 = _GUICtrlCreateRadio("Czarny", 20, 30, 130, 15, $GUI_BKCOLOR_TRANSPARENT, 0x000000)

; <-- Tutaj tego GUICtrlCreateRadio jest jeszcze 16 takich więc pominę

; <-- Reszta funkcji programu (Czyli Case, If'y itp.)

Func _IsChecked($control)
	Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED
EndFunc   ;==>_IsChecked

Func _GUICtrlCreateRadio(Const $rText, Const $rLeft, Const $rTop, Const $rLength, Const $rHeight, Const $rBackColor = "", Const $rTextColor = "")
	Local Const $PCRadio = GUICtrlCreateRadio("", $rLeft, $rTop, 12, 12)

	GUICtrlCreateLabel($rText, $rLeft + 15, $rTop, $rLength - 15, $rHeight)

	If $rTextColor <> "" Then GUICtrlSetColor(-1, $rTextColor)

	If $rBackColor <> "" Then GUICtrlSetBkColor(-1, $rBackColor)

	Return $PCRadio
EndFunc   ;==>_GUICtrlCreateRadio

Func XPStyle($OnOff = 1)
    If $OnOff And StringInStr(@OSTYPE, "WIN32_NT") Then
        $XS_n = DllCall("uxtheme.dll", "int", "GetThemeAppProperties")
        DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 0)
        Return 1
    ElseIf StringInStr(@OSTYPE, "WIN32_NT") And IsArray($XS_n) Then
        DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", $XS_n[0])
        $XS_n = ""
        Return 1
    EndIf
    Return 0
EndFunc



Wstawiłem to w ten sposób ponieważ nie chcę wstawiać całego skryptu.

Od dnia 1.11.2013r. 14:17 zobaczono moje posty licznik-56-90712-stat.png razy ;)


 


 

Opublikowano

Mam Windows 8 (64 bit). A skrypt to pokaże tak obrazowo, jak u mnie wygląda:

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <ListBoxConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstants.au3>
#include <File.au3>
#include <Misc.au3>
#Include <StaticConstants.au3>

Dim $XS_n
Opt("TrayMenuMode", 1)

; <-- Tutaj mam funkcję na sprawdzanie nowych aktualizacji programu

Local $DLL = DllOpen("user32.dll")

$GUI = GUICreate("Program v" & $Wersja, 265, 395)
GUISetState(@SW_SHOWNORMAL)

; <-- Tutaj mam GUICtrlCreateMenu itp. więc pomine

Global $BI = GUICtrlCreatePic(@ScriptDir & "\tlo.jpg", 0, 0, 265, 395)
XPStyle()

$newsy = GUICtrlCreateLabel("Wczytywanie..", 130, 10, 131, 317)
                  GUICtrlSetBkColor($newsy, $GUI_BKCOLOR_TRANSPARENT)

; <-- Tutaj zrobiłem funkcję, która pobiera news z FTP i zamiast "Wczytywanie.." wstawia tekst z FTP

Global Const $Group = GUICtrlCreateGroup("Grupa:", 10, 10, 115, 340)

Global Const $radio1 = _GUICtrlCreateRadio("Czarny", 20, 30, 130, 15, $GUI_BKCOLOR_TRANSPARENT, 0x000000)

; <-- Tutaj tego GUICtrlCreateRadio jest jeszcze 16 takich więc pominę

; <-- Reszta funkcji programu (Czyli Case, If'y itp.)

Func _IsChecked($control)
	Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED
EndFunc   ;==>_IsChecked

Func _GUICtrlCreateRadio(Const $rText, Const $rLeft, Const $rTop, Const $rLength, Const $rHeight, Const $rBackColor = "", Const $rTextColor = "")
	Local Const $PCRadio = GUICtrlCreateRadio("", $rLeft, $rTop, 12, 12)

	GUICtrlCreateLabel($rText, $rLeft + 15, $rTop, $rLength - 15, $rHeight)

	If $rTextColor <> "" Then GUICtrlSetColor(-1, $rTextColor)

	If $rBackColor <> "" Then GUICtrlSetBkColor(-1, $rBackColor)

	Return $PCRadio
EndFunc   ;==>_GUICtrlCreateRadio

Func XPStyle($OnOff = 1)
    If $OnOff And StringInStr(@OSTYPE, "WIN32_NT") Then
        $XS_n = DllCall("uxtheme.dll", "int", "GetThemeAppProperties")
        DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 0)
        Return 1
    ElseIf StringInStr(@OSTYPE, "WIN32_NT") And IsArray($XS_n) Then
        DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", $XS_n[0])
        $XS_n = ""
        Return 1
    EndIf
    Return 0
EndFunc



Wstawiłem to w ten sposób ponieważ nie chcę wstawiać całego skryptu.

 

 

Po:

Global Const $Group = GUICtrlCreateGroup("Grupa:", 10, 10, 115, 340)

Dodaj:

GUICtrlSetBkColor($Group, $GUI_BKCOLOR_TRANSPARENT)

Po:

Global Const $radio1 = _GUICtrlCreateRadio("Czarny", 20, 30, 130, 15)

Dodaj:

GUICtrlSetBkColor($radio1, $GUI_BKCOLOR_TRANSPARENT)

Zamiast:

GUICtrlCreateLabel($rText, $rLeft + 15, $rTop, $rLength - 15, $rHeight)

Dodaj:

Local Const $labelek = GUICtrlCreateLabel($rText, $rLeft + 15, $rTop, $rLength - 15, $rHeight)
	GUICtrlSetBkColor($labelek, $GUI_BKCOLOR_TRANSPARENT)

9obpmnjr.png

Opublikowano

 

Po:

Global Const $Group = GUICtrlCreateGroup("Grupa:", 10, 10, 115, 340)

Dodaj:

GUICtrlSetBkColor($Group, $GUI_BKCOLOR_TRANSPARENT)

Po:

Global Const $radio1 = _GUICtrlCreateRadio("Czarny", 20, 30, 130, 15)

Dodaj:

GUICtrlSetBkColor($radio1, $GUI_BKCOLOR_TRANSPARENT)

Zamiast:

GUICtrlCreateLabel($rText, $rLeft + 15, $rTop, $rLength - 15, $rHeight)

Dodaj:

Local Const $labelek = GUICtrlCreateLabel($rText, $rLeft + 15, $rTop, $rLength - 15, $rHeight)
	GUICtrlSetBkColor($labelek, $GUI_BKCOLOR_TRANSPARENT)

 

Teraz jest ok :) Tylko jest problem, ponieważ teraz w żadne radio nie mogę kliknąć :/

Od dnia 1.11.2013r. 14:17 zobaczono moje posty licznik-56-90712-stat.png razy ;)


 


 

Opublikowano

Okej, teraz da się klikać :) Ale jeszcze jednej rzeczy nie dopatrzyłem:

 

xz0c.png

^

Zmienił się wygląd MsgBoxów | oraz wygląd drugiego GUI (w programie mam 2 GUI; Jedno GUI dla głównego programu i drugie dla ustawień)

Od dnia 1.11.2013r. 14:17 zobaczono moje posty licznik-56-90712-stat.png razy ;)


 


 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...