procedure meutreeview.mousedown Lparameters button, shift, x, y Local loNode If Button = 2 && botao direito do mouse loNode = This.HitTest(x * Thisform.nTreeFactorX, ; Y * Thisform.nTreeFactorX) * se tiver uma node válida , seleciona If not isnull(loNode) loNode.Selected = .T. *This.NodeClick(loNode) Endif if type("wform")="U" public wform endif wform = thisform Define POPUP shortcut shortcut IN WINDOW form1 MARGIN FROM MROW(), MCOL() Define BAR 1 OF shortcut PROMPT IIF("P"$loNode.key,"\ ","")+"\<Incluir "+alltrim(proper(clients.razaosoc))+" na fila"+iif("O"$loNode.key,""," de "+proper(loNode.text)) FONT 'Arial', 8 style "T" Define BAR 2 OF shortcut PROMPT '\-' Define BAR 3 OF shortcut PROMPT iif("O"$loNode.key,"\<Copiar "+proper(loNode.text),"\ \<Copiar de outro cliente") FONT 'Arial', 8 style "T" Define BAR 4 OF shortcut PROMPT '\-' Define BAR 5 OF shortcut PROMPT iif("O"$loNode.key,"E\<xcluir "+proper(loNode.text),"\ E\<xcluir") FONT 'Arial', 8 style "T" On SELECTION BAR 1 OF shortcut wform.incfila(loNode, "INC") On SELECTION BAR 3 OF shortcut wform.incfila(loNode, "COP") On SELECTION BAR 5 OF shortcut wform.excfila(loNode) Activate POPUP shortcut * Else * botao esquerdo do mouse loNode = This.HitTest(x * Thisform.nTreeFactorX, ; Y * Thisform.nTreeFactorX) * se tiver uma node válida , seleciona If not isnull(loNode) loNode.Selected = .T. This.NodeClick(loNode) Endif If type("loNode.key")="C" If "O"$loNode.key =thisform.atualiza_dados_fila(loNode) Endif Else Thisform.captadoitem = .f. Endif Endif procedure meutreeview.init local liHWnd, ; liHDC, ; liPixelsPerInchX, ; liPixelsPerInchY #define cnLOG_PIXELS_X 88 * From WINGDI.H #define cnLOG_PIXELS_Y 90 * From WINGDI.H #define cnTWIPS_PER_INCH 1440 * 1440 twips per inch declare integer GetActiveWindow in WIN32API declare integer GetDC in WIN32API ; integer iHDC declare integer GetDeviceCaps in WIN32API ; integer iHDC, integer iIndex liHWnd = GetActiveWindow() liHDC = GetDC(liHWnd) * pegar pixels por polegada liPixelsPerInchX = GetDeviceCaps(liHDC, cnLOG_PIXELS_X) liPixelsPerInchY = GetDeviceCaps(liHDC, cnLOG_PIXELS_Y) Thisform.addproperty("nTreeFactorX", cnTWIPS_PER_INCH/liPixelsPerInchX) Thisform.addproperty("nTreeFactorY", cnTWIPS_PER_INCH/liPixelsPerInchYE ainda pelo teclado:
procedure meutreeview.keydown *** ActiveX Control Event *** Lparameters keycode, shift If keycode=46 && excluir do treeview loNode = This.SelectedItem Thisform.excfila(loNode) Return Endif If keycode=187 && incluir no treeview loNode = This.SelectedItem If type("loNode.key")="C" If "O"$loNode.key Else Thisform.incfila(loNode, "INC") Endif Endif Return Endif If keycode=13 && enter loNode = This.SelectedItem If type("loNode.key")="C" If "O"$loNode.key =thisform.atualiza_dados_fila(loNode) Endif Endif Endif