Thanks for the code. It is similar to the code I was testing, apart from the VK_HOME/VK_END handling. When I test it out in your project, it works but it is still reproducing the same issue in my code. There is a lot of old subclassed code here, some of which already handles VM_VSCROLL, so my guess is that there is a conflict somewhere. Also, looking through the custom keyboard handling code for listboxes, I would have to place the VK_HOME/VK_END code somewhere in the existing sequence of key press handling and it's not entirely clear where that would work best without interfering with existing code and causing other issues. Right. I am going to have to whittle this down.
Update: Okay. Managed to get it to work by re-arranging some code. I am not going to implement the VK_HOME/VK_END fix. It requires more code changes to keyboard handling than I'd like and since its purpose is to fix listbox handling of VK_HOME/VK_END with two million+ listbox items, I am going to go out on a limb and say this is not going to be a priority for 99.99% of users. Also note: this fix will only apply to custom dialog listboxes/comboboxes and window listboxes such as in @window, channel nickname list, URLS list, and so on. It will not apply to any other listboxes since this would require subclassing every listbox in every window/dialog throughout mIRC. If it looks like this fix causes other issues (it is basically intercepting WM_VSCROLL, blocking it, and sending two other windows messages in its place, which could in turn trigger other messages, events, etc. which could cause backward-compatibility issues with scripts/DLLs), I will revert this change.
Update: I've decided to apply this fix only to custom dialog listboxes/comboboxes and @window listboxes. It will not apply to any other windows.
Last edited by Khaled; 02/02/22 01:09 PM.