Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » png или ico вместо обычной кнопки,как реализовать?

Ответить
Настройки темы
png или ico вместо обычной кнопки,как реализовать?

Ветеран


Автор проектов


Сообщения: 598
Благодарности: 114


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Vsirf
Дата: 22-02-2012
Описание: 1660807-1.png
Здраствуйте...
1.Как вместо кнопки закрыть , поставить свои 3 изображения, таким образом, что бы при наведении и нажатии изображение изменялось?
2.Как вместо кнопки запуск , установить свое изображение формата png , таким же образом как и в пункте 1 ?

Код

Код: Выделить весь код
#Include <WindowsConstants.au3>
#Include <GUIConstantsEx.au3>
#Include <WinAPIEx.au3>
#Include <GDIPlus.au3>

_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & '\1660807-1.png')
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
_GDIPlus_Shutdown()

$hForm = GUICreate('Здраствуйте', 620, 460, -1, -1, $WS_POPUP, $WS_EX_LAYERED)
_WinAPI_UpdateLayeredWindowEx($hForm, -1, -1, $hBitmap, 255)
GUIRegisterMsg($WM_NCHITTEST, 'WM_NCHITTEST')
GUISetState()

$iPos = WinGetPos($hForm)
$hChild = GUICreate('', 620, 460, $iPos[0], $iPos[1], $WS_POPUP, $WS_EX_LAYERED, $hForm)
GUISetBkColor(0xFF00DC)
$iButton = GUICtrlCreateButton('Закрыть', 568, 2, 50, 20)
$iButton1 = GUICtrlCreateButton('Запуск', 40, 68, 50, 20)
_WinAPI_SetLayeredWindowAttributes($hChild, 0xFF00DC, 255)
GUIRegisterMsg($WM_MOVE, 'WM_MOVE')
GUISetState()

While 1
    Switch GUIGetMsg()
        Case -3, $iButton
            Exit
		EndSwitch
		
		    Switch GUIGetMsg()
      Case $iButton1
         ShellExecute('drv\Ex.exe')
    EndSwitch
WEnd

Func WM_MOVE($hWnd, $iMsg, $wParam, $lParam)
    Switch $hWnd
        Case $hForm
            $iPos = _WinAPI_GetPosFromRect(_WinAPI_GetWindowRect($hWnd))
            WinMove($hChild, '', $iPos[0], $iPos[1])
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc

Func WM_NCHITTEST($hWnd, $iMsg, $wParam, $lParam)
    Switch $hWnd
        Case $hForm
            Switch _WinAPI_DefWindowProc($hWnd, $iMsg, $wParam, $lParam)
                Case $HTCLIENT
                    Return $HTCAPTION
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc


изображение( фон)

1660807-1.png

Спасибо за внимание

Отправлено: 20:15, 22-02-2012

 

Аватара для AZJIO

Старожил


Сообщения: 265
Благодарности: 126

Профиль | Отправить PM | Цитировать


Vsirf, Я сделал ошибку, не передав в функцию дескриптор списка изображений, используя один список, теперь рисунки добавляются каждый в свой список изображений. И работает.

читать дальше »
Код: Выделить весь код
#include <GDIPlus.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiButton.au3>
#include <GuiImageList.au3>

$Gui=GUICreate('пример', 300, 220, -1, -1, BitOr($WS_BORDER, $WS_POPUP, $WS_SYSMENU))
; GUICreate('пример', 300, 220)

; =====================================
$hImage1 = _GUIImageList_Create(16, 16, 5, 3)
_GUIImageList_AddIcon($hImage1, "shell32.dll", 27)
_GUIImageList_AddIcon($hImage1, "shell32.dll", 112)
_GUIImageList_AddIcon($hImage1, "shell32.dll", 25)
_GUIImageList_AddIcon($hImage1, "shell32.dll", 25)
_GUIImageList_AddIcon($hImage1, "shell32.dll", 27)

$Button = GUICtrlCreateButton("", 300-27, 2, 25, 25)
_GUICtrlButton_SetImageList(-1, $hImage1, 1, 4)
; =====================================
$hImageList = _GUIImageList_Create(66, 91, 5)
_GDIPlus_Startup()
_Image($hImageList, @ScriptDir & '\Image1.png')
_Image($hImageList, @ScriptDir & '\Image2.png')
_Image($hImageList, @ScriptDir & '\Image3.png')
_Image($hImageList, @ScriptDir & '\Image1.png')
_Image($hImageList, @ScriptDir & '\Image1.png')
_GDIPlus_Shutdown()
; =====================================
$Button1 = GUICtrlCreateButton("", 10, 50, 80, 100)
_GUICtrlButton_SetImageList(-1, $hImageList, 1)

; =====================================
$hImageList1 = _GUIImageList_Create(66, 91, 5)
_GDIPlus_Startup()
_Image($hImageList1, @ScriptDir & '\Image1.png')
_Image($hImageList1, @ScriptDir & '\Image2.png')
_Image($hImageList1, @ScriptDir & '\Image3.png')
_Image($hImageList1, @ScriptDir & '\Image1.png')
_Image($hImageList1, @ScriptDir & '\Image1.png')
_GDIPlus_Shutdown()
; =====================================
$Button2 = GUICtrlCreateButton("", 100, 50, 80, 100)
_GUICtrlButton_SetImageList(-1, $hImageList1, 1)

GUISetState()

While 1
    Switch GUIGetMsg()
        Case $Button1
            MsgBox(0, 'Сообщение', 'е')
        Case $Button2
            MsgBox(0, 'Сообщение', 'е')
        Case $GUI_EVENT_CLOSE, $Button
            ExitLoop
    EndSwitch
WEnd

Func _Image($hImageList, $Path)
    $h_Image = _GDIPlus_BitmapCreateFromFile($Path)
    $h_Bitmap =_GDIPlus_BitmapCreateHBITMAPFromBitmap($h_Image)
    _GUIImageList_Add($hImageList, $h_Bitmap)
    _GDIPlus_ImageDispose($h_Image)
    _WinAPI_DeleteObject($h_Bitmap)
EndFunc


Так как я не сразу догадался, об ошибке, то делал второй вариант, тоже не плохой, по принципу Filmstrip. Картинки вставляются в один рисунок, а при использовании указываются координаты нужного участка рисунка.
Вот готовый пример (9кб) с картинками в комплекте.
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:44, 26-02-2012 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Автор проектов


Сообщения: 598
Благодарности: 114

Профиль | Отправить PM | Цитировать


AZJIO, отлично, хорошо придумал, но картинка на кнопке мерцает после нажатия, пропадает,потом заново появляется )))

Отправлено: 01:33, 29-02-2012 | #12



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » png или ico вместо обычной кнопки,как реализовать?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Обои и Значки - Иконки в форматах PNG и ICO и другие ресурсы из Windows 7 (Обновлено) prokazzza Оформление Windows XP 100 29-07-2018 21:42
AutoExtract 16x16.ico; 32x32.ico; .... from file semiono Автоматическая установка приложений 1 08-10-2010 14:43
[решено] Как из формата PNG сделать формат ICO assch AutoIt 10 28-07-2010 19:20
Иконки PNG и ICO sergeikom Microsoft Windows Vista 0 13-05-2007 12:52
Ноут с обычной клавой? Мечта или реальность? warezhka84 Хочу все знать 11 15-03-2007 16:27




 
Переход