2015-01-14 2 views
1

클릭 할 때 어떻게 선의 색인을 얻습니까?루아 wxwidgets wxListCtrl

lpanelList:Connect(ID_REL_LIST, wx.wxEVT_COMMAND_LEFT_CLICK, 
function (event) 
local number 
number = GetIndex()       --generates an error 
frame:SetStatusText("REL LIST") 
wx.wxMessageBox('Clicked on rel list.', 
" Rel List Clicked ", 
wx.wxOK + wx.wxICON_INFORMATION, 
lpanelList) 
end) 

답변

1

GetIndex()event하는 방법입니다, 그래서 당신은 event:GetIndex()를 사용해야하지만, 나는 그것이 마우스 이벤트 (LEFT_CLICK)으로 채워 생각하지 않습니다. 마우스 이벤트의 경우 wxListCtrl:FindItem (wxlua를 통해 사용할 수있는 경우)을 사용하여 클릭 위치와 가장 가까운 항목을 가져올 수 있습니다. 클릭의 좌표를 얻으려면이 같은 event:GetPoint() (사용 가능한 경우) 또는 무언가 사용할 수 있습니다

local mousePos = wx.wxGetMousePosition() -- mouse pos on screen 
local clientPos = lpanelList:ScreenToClient(mousePos) 

대신 마우스 이벤트를 사용하는, 당신은 또한 wxEVT_COMMAND_LIST_ITEM_ACTIVATED을 사용할 수 있습니다, 당신은 local index = event:GetIndex()을 할 수있는 경우를 (나는이 생각 인덱스는 0 기준).

wxlua를 사용하는 경우 wxlua API가 지원되는 좋은 솔루션 소스 (samples/ 폴더)가 포함되어 있습니다.