Что нового

Не отображать системное меню в элементе Input

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Пример
Код:
#include <WinAPI.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiMenu.au3>
Global $k
Global Enum $idOpen = 1000
Global $Form1 = GUICreate("Form1", 552, 60, 192, 124)
Global $Input1 = GUICtrlCreateInput("", 40, 16, 473, 21)
GUISetState()

GUIRegisterMsg($WM_SETCURSOR, 'WM_SETCURSOR')
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case -3
			Exit

	EndSwitch
WEnd

Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
	#forceref $hWnd, $iMsg, $ilParam
	Switch $iwParam
		Case $idOpen
			$k += 1
			GUICtrlSetData($Input1, 'Вызов - ' & $k)
	EndSwitch
	Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND

Func WM_SETCURSOR($hWnd, $iMsg, $iwParam, $ilParam)
	#forceref $hWnd, $iMsg, $ilParam
	Switch _WinAPI_GetDlgCtrlID($iwParam)
		Case $Input1
			If _WinAPI_HiWord($ilParam) = 517 Then _Menu($hWnd)
	EndSwitch
	Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_SETCURSOR

Func _Menu($HW)
	Local $hMenu
	$hMenu = _GUICtrlMenu_CreatePopup()
	_GUICtrlMenu_InsertMenuItem($hMenu, 0, "Выбрать", $idOpen)
	_GUICtrlMenu_TrackPopupMenu($hMenu, $HW)
	_GUICtrlMenu_DestroyMenu($hMenu)
EndFunc   ;==>_Menu

Реализация именно такая в моем коде. При клике правой клавишей мыши на Input появляется меню. Выбираю пункт меню, после этого появляется системное меню(если я правильно это называю). Вот как раз оно не должно появляться. Как это сделать?
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
да я и забыл. когда ж это было.
в моем коде достаточно обработчиков запускается. можно как-нить проще не давать системному окну появиться?.
к тому же, в проекте используется только Input как элемент ввода. да и то, по желанию пользователя. все остальное это обычные не редактируемые напрямую (как input) элементы
 
A

Alofa

Гость
Код:
; ...
Global $Input1 = GUICtrlCreateInput("", 40, 16, 473, 21, BitOR($GUI_SS_DEFAULT_INPUT, $WS_HSCROLL))
; ...
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Alofa
Не вариант. Сделай высоту элемента 25 и скрол будет виден
 
Верх