TreeView beeps when you tab?!
<< Back
If you have any TreeView in your program. You can put the focus in the TreeView, turn on the speakers for your computer, and then
press the "Tab" key on your keyboard. You will hear the standard Windows warning sound.
- In 2008, I reported it here on the DAW forum,
and Vincent from DAW said they were aware of the issue, and they would look for a solution
- In 2012, I figured out what's wrong,
and I posted the solution on the forum under same thread. Dennis from DAW said he added this as a workaround to the bug report.
- In 2020, DF 20.0 Alpha 2, the same problem continues.
Run the following program, then hit the tab key, you shall hear the Windows warning chime.
Use Windows
Use DfTreeVw
Object oPanel is a ModalPanel
Set pbSizeToClientArea to True
Set Size to 200 200
Object oTree is a TreeView
Set Size to 185 200
Set peAnchors to anAll
Procedure OnCreateTree
Handle hTest
Get AddTreeItem "Test" 0 0 0 0 to hTest
End_Procedure // OnCreateTree
End_Object // oTree
Object oButton is a Button
Set Location to 185 0
Set peAnchors to anBottom
End_Object // oButton
End_Object // oPanel
Send Popup of oPanel
Here is the solution. Add that to your TreeView subclass.
Procedure Notify Integer wParam Integer lParam
Integer iVoid iResult
tWinNmHdr Header
tWinNmTvKeyDown KeyInfo
Forward Get Msg_Notify wParam lParam to iResult
Move (MemCopy(AddressOf(Header), lParam, SizeOfType(tWinNmHdr))) to iVoid
If (Header.Code = TVN_KEYDOWN) Begin
Move (MemCopy(AddressOf(KeyInfo), lParam, SizeOfType(tWinNmTvKeyDown))) to iVoid
If (KeyInfo.wVKey = VK_TAB) Procedure_Return TRUE
End
Procedure_Return iResult
End_Procedure // Notify