LOCAL lnHWnd LOCAL lnHDC LOCAL lnPixelsPerInchX LOCAL lnPixelsPerInchY #define LOG_PIXELS_X 88 #define LOG_PIXELS_Y 90 #define TWIPS_PER_INCH 1440 declare integer GetActiveWindow in WIN32API declare integer GetDC in WIN32API integer lnHDC declare integer GetDeviceCaps in WIN32API integer lnHDC, integer lnCapIndex if version(5) > 700 lnHWnd = This.HWnd else lnHWnd = GetActiveWindow() endif && version(5) > 700 lnHDC = GetDC(lnHWnd) lnPixelsPerInchX = GetDeviceCaps(lnHDC, LOG_PIXELS_X) lnPixelsPerInchY = GetDeviceCaps(lnHDC, LOG_PIXELS_Y) with ThisForm .nTwipsX = TWIPS_PER_INCH / lnPixelsPerInchX .nTwipsY = TWIPS_PER_INCH / lnPixelsPerInchY .oleTreeView.ImageList = .oleImageList *!* Create the treeview nodes. loRootNode = ThisForm.oleTreeView.Nodes.Add(, 1, "_ROOT_", "Root Node", 0, 0) loRootNode.Expanded = .T. for lnLoop = 1 to 10 if lnLoop % 3 = 0 loChild = ThisForm.oleTreeView.Nodes.Add(loRootNode, 4, "NODE" + transform(lnLoop), "Child Node " + transform(lnLoop), "GREY", "GREY") loChild.ForeColor = rgb(192, 192, 192) else loChild = ThisForm.oleTreeView.Nodes.Add(loRootNode, 4, "NODE" + transform(lnLoop), "Child Node " + transform(lnLoop), "RED", "RED") endif endfor endwithEnter the following code into the oleTreeView.MouseMove event.
LOCAL loNode loNode = This.HitTest(x * ThisForm.nTwipsX, y * ThisForm.nTwipsY) if vartype(loNode) == "O" if loNode.Image = "GREY" This.MousePointer = 2 && ccCross else This.MousePointer = 0 && ccDefault endif else This.MousePointer = 0 && ccDefault endifEnter the following code into the oleTreeView.nodeClick event.
if node.Image = "GREY" This.SelectedItem = This.Nodes.Item(1) endifAs you can see you can get close to simulating a disabled treeview node.