Что нового

Создание GUI с $WS_EX_CONTEXTHELP вместе с $WS_MINIMIZEBOX

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Есть ли какой то метод создания GUI с $WS_EX_CONTEXTHELP, но в тоже время имея возможность задать $WS_MINIMIZEBOX или $WS_MAXIMIZEBOX? :scratch:

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

;$hGUI = GUICreate("Test Script", 300, 200, -1, -1, BitXOR($GUI_SS_DEFAULT_GUI, $WS_MINIMIZEBOX), $WS_EX_CONTEXTHELP)
$hGUI = GUICreate("Test Script", 300, 200, -1, -1, $GUI_SS_DEFAULT_GUI, $WS_EX_CONTEXTHELP)
GUISetState(@SW_SHOW, $hGUI)

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd


Можно конечно создать самопальную кнопку на заголовке, но хотелось бы поэлегантнее.
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Extended Window Styles
WS_EX_CONTEXTHELP cannot be used with the WS_MAXIMIZEBOX or WS_MINIMIZEBOX styles.

Вероятно, элегантно не получится.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481

SharkyEXE

Новичок
Сообщения
134
Репутация
0
Всем здравствуйте

Пожалуйста, научите, самопал-не самопал, как сделать окно с четырьмя кнопками, чтобы было так , как на картинке

Однако, функционал кнопки ? ( Справка) должен быть рабочим , как описано здесь
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>

$hGUI = GUICreate('$WS_EX_CONTEXTHELP Demo', 300, 200, -1, -1, BitOR($WS_CAPTION, $WS_POPUP, $WS_SYSMENU), $WS_EX_CONTEXTHELP)

$iButton = GUICtrlCreateButton('Button', 20, 40, 60, 20)
$hButton = GUICtrlGetHandle($iButton)

GUIRegisterMsg($WM_HELP, 'WM_HELP')
GUISetState(@SW_SHOW, $hGUI)

While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd

Func WM_HELP($hWnd, $Msg, $wParam, $lParam)
Local $HELPINFO, $hControl

$HELPINFO = DllStructCreate('int cbSize;int iContextType;int iCtrlId;hwnd hItemHandle;dword dwContextId;long MousePos[2]', $lParam)
$hControl = DllStructGetData($HELPINFO, 'hItemHandle')

Switch $hControl
Case $hButton
ToolTip('Button')
AdlibRegister('_ClearTooltip_Proc', 10)
EndSwitch

Return $GUI_RUNDEFMSG
EndFunc

Func _ClearTooltip_Proc()
Local $stPoint = DllStructCreate($tagPOINT)

DllStructSetData($stPoint, 'x', MouseGetPos(0))
DllStructSetData($stPoint, 'y', MouseGetPos(1))

If _WinAPI_WindowFromPoint($stPoint) <> $hButton Then
ToolTip('')
AdlibUnRegister('_ClearTooltip_Proc')
EndIf
EndFunc

Спасибо.
 

Вложения

  • Безымянный.png
    Безымянный.png
    12.7 КБ · Просмотры: 8
Верх