|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Скрипт создания кнопок с картинками, не меняеться цвет надписи((( |
|
Скрипт создания кнопок с картинками, не меняеться цвет надписи(((
|
Старожил Сообщения: 247 |
Скрипт создания кнопок с картинками, не получается поменять цвет надписи
#Include <GuiButton.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiImageList.au3> $hImagebtn = _GUIImageList_Create(150, 100) $hH1 = _GUIImageList_AddBitmap($hImagebtn, @ScriptDir & "\img_black.bmp") $hH2 = _GUIImageList_AddBitmap($hImagebtn, @ScriptDir & "\img_over.bmp") $hH3 = _GUIImageList_AddBitmap($hImagebtn, @ScriptDir & "\img_white.bmp") #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 350, 200, 100, 100) $Button1 = GUICtrlCreateButton("Супер кнопка", 100, 50, 150, 100) GUICtrlSetFont(-1, 16, 600, 2, 'Times New Roman') _GUICtrlButton_SetImageList(-1, $hImagebtn, 4) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 GUICtrlSetState($Button1, $GUI_DISABLE) Sleep(2000) GUICtrlSetState($Button1, $GUI_ENABLE) MsgBox(0, '', 'Супер кнопка') EndSwitch WEnd |
|
Отправлено: 13:57, 11-03-2011 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Как вариант:
#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $hGUI = GUICreate("_GUICtrlCreateButtonEx") $aButton = _GUICtrlCreateButtonEx("Click Me here", 50, 80, -1, 30, "shell32.dll", 23) GUICtrlSetColor(-1, 0xff0000) GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $aButton[1] $iButtonRandomIcon = Random(0, 50, 0) GUICtrlSetImage($aButton[0], "shell32.dll", -$iButtonRandomIcon) EndSwitch WEnd Func _GUICtrlCreateButtonEx($sText, $iLeft, $iTop, $iWidth, $iHeight, $sIconFile="", $nIconIndex=0) Local $aRetArr[2] $aRetArr[0] = GUICtrlCreateIcon($sIconFile, $nIconIndex, $iLeft + 5, $iTop + (($iHeight - 16) / 2), 16, 16) GUICtrlSetState(-1, $GUI_DISABLE) ;GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) $aRetArr[1] = GUICtrlCreateButton(" " & $sText & " ", $iLeft, $iTop, $iWidth, $iHeight, 0x04000000) ;$WS_CLIPSIBLINGS Return $aRetArr EndFunc #Include <Constants.au3> #Include <GUIConstantsEx.au3> #Include <StaticConstants.au3> #Include <WindowsConstants.au3> #Include <WinAPI.au3> #include <GUIImageList.au3> #include <GUIButton.au3> Global $hLastWndProc Global $hBtnCtrlWndProc = DllCallbackRegister('__GUICtrlCreateButton_WndProc', 'ptr', 'hwnd;uint;wparam;lparam') Global $pBtnCtrlWndProc = DllCallbackGetPtr($hBtnCtrlWndProc) $hImgLst = _GUIImageList_Create(16, 16, 5, BitOr($ILC_MASK, $ILC_COLOR32), 0, 1) _GUIImageList_AddIcon($hImgLst, "shell32.dll", -6) $hForm = GUICreate('Set Button Color - _GUICtrlCreateButtonEx', 370, 65) $aButton = _GUICtrlCreateButtonEx(' Button', 70, 20, 70, 23, 1, BitOR($SS_CENTER, $SS_CENTERIMAGE), -1, 0xFF0000) _GUICtrlButton_SetImageList($aButton[0], $hImgLst) GUISetState() While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE _WinAPI_SetWindowLong($aButton[2], $GWL_WNDPROC, $hLastWndProc) DllCallbackFree($hBtnCtrlWndProc) Exit Case $aButton[0] MsgBox(64, 'Message', GUICtrlRead($nMsg+1, 1) & ' is pressed.', 0, $hForm) EndSwitch WEnd Func _GUICtrlCreateButtonEx($sText, $iLeft, $iTop, $iWidth = -1, $iHeight = -1, $vButton = 1, $nStyle = -1, $nExStyle = -1, $nColor = -1) Local $anButton[3] If IsString($vButton) Then $anButton[0] = Execute("GUICtrlCreate" & $vButton & "('', $iLeft, $iTop, $iWidth, $iHeight)") Else $anButton[0] = GUICtrlCreateButton('', $iLeft, $iTop, $iWidth, $iHeight) EndIf $anButton[1] = GUICtrlCreateLabel($sText, $iLeft, $iTop, $iWidth, $iHeight, BitOR($SS_CENTER, $SS_CENTERIMAGE)) $anButton[2] = GUICtrlGetHandle($anButton[0]) GUICtrlSetBkColor($anButton[1], $GUI_BKCOLOR_TRANSPARENT) GUICtrlSetColor($anButton[1], $nColor) $hLastWndProc = _WinAPI_SetWindowLong($anButton[2], $GWL_WNDPROC, $pBtnCtrlWndProc) Return $anButton EndFunc Func __GUICtrlCreateButton_WndProc($hWnd, $iMsg, $wParam, $lParam) Switch $iMsg Case $WM_PAINT Local $tRECT = DllStructCreate($tagRECT) Local $Ret = DllCall('user32.dll', 'int', 'GetUpdateRect', 'hwnd', $hWnd, 'ptr', DllStructGetPtr($tRECT), 'int', 1) If $Ret[0] Then _WinAPI_InvalidateRect(GUICtrlGetHandle(_WinAPI_GetDlgCtrlID($hWnd) + 1), $tRECT) EndIf EndSwitch Return _WinAPI_CallWindowProc($hLastWndProc, $hWnd, $iMsg, $wParam, $lParam) EndFunc |
------- Отправлено: 19:28, 11-03-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 247
|
А можно тогда еще пример создания кнопки из GUICtrlCreateLabel
|
Отправлено: 20:41, 11-03-2011 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Centrinar:
|
|
------- Отправлено: 23:17, 11-03-2011 | #4 |
Старожил Сообщения: 247
|
Для общего развития
|
|
Отправлено: 23:35, 11-03-2011 | #5 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Centrinar:
|
|
------- Отправлено: 23:55, 11-03-2011 | #6 |
Старожил Сообщения: 247
|
а как правильно делают кнопки в стиле надписи?
|
Отправлено: 00:05, 12-03-2011 | #7 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Centrinar:
Если нужно просто создать надпись, и чтобы была реакция при нажатий на неё, то точно также как проверяется нажатие кнопки - проверяется нажатие Label'а (Case $nMsg = $nLabel). |
|
------- Отправлено: 00:15, 12-03-2011 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Скрипт создания ссылки, для GPO | bombording | Скриптовые языки администрирования Windows | 6 | 27-09-2012 13:37 | |
Любой язык - Батник (скрипт) для создания odbc | ITSpec | Скриптовые языки администрирования Windows | 2 | 09-12-2009 10:32 | |
Скрипт для создания пользователей | Ven | Microsoft Windows NT/2000/2003 | 6 | 24-02-2008 23:57 | |
Прочие - Программа для создания кнопок и иконок на сайт | Francesco | Программное обеспечение Windows | 5 | 21-01-2007 14:26 | |
цвет надписи на кнопке | hameg | Программирование и базы данных | 4 | 09-03-2004 19:27 |
|