It is currently Sat Apr 27, 2024 7:08 pm

All times are UTC - 8 hours [ DST ]


Forum rules


Before posting a bug report or a feature request, search the forum for an older post on the same topic.



Post new topic Reply to topic  [ 3 posts ] 
Author Message
PostPosted: Sun Mar 17, 2013 12:53 am 
Offline

Joined: Sun Mar 17, 2013 12:11 am
Posts: 2
Hello! Classic Shell looks very impressive. However, it does a lot. I know some things are configurable, but I am really only interested in one thing: Only a fix for the left pane autoscroll bug in Windows 7 Explorer. If this is not possible, I have some technical questions about how to make such a small program myself.

I took a look at the source code and the nice article about it here (thanks Mr. Beltchev!):
http://www.codeproject.com/Articles/45430/Classic-Shell

From what I understand, the solution Classic Shell implements is to make that C++ hook/callback function, which prevents (one of?) the TVM_ENSUREVISIBLE messages from getting sent. Is that correct?

I am more familiar with C# than C++, so the code and its context was hard for me to understand. Using Spy++ 8 and BlitzPlus, I was able to find and programmatically get the handle hwnd of the tree view that sends the TVM_ENSUREVISIBLE messages. BlitzPlus is a language that can use a custom DLL's functions written in C++ if I declare them. I don't have much experience with hooks and callbacks-- and I'm afraid I might cause problems or lock up my system.

I wish I could eradicate all auto-scrolling behavior in Windows 7 Explorer, including the "feature" of auto-scrolling an expanding folder to the top of the pane. I guess it's trying to show me all the subfolders, or as many of them as it can show. But it is jarring and I'd prefer to do the scrolling myself. Whether it scrolls to the top or the bottom, it is annoying for me because it's easy to lose my place and become momentarily distracted, having to re-navigate that "navigation" pane myself.

The bug fix, as performed in Classic Shell, seems to ignore ONE of the TVM_ENSUREVISIBLE messages. Or is it any TVM_ENSUREVISIBLE message? The bug happens randomly on folders that haven't been opened that session, correct? So for the times that the bug doesn't occur, can it avoid the "feature" of autoscrolling which puts the expanding folder at the top? I.e. can a small program be made with a hooked callback function that tells Explorer's tree view to ignore ANY autoscrolling behavior, including the feature of placing it at the top? I'd settle for just the bug fix (to prevent it placing it at the bottom), but eradicating any autoscrolling in that left pane would be ideal.


Top
 Profile  
Reply with quote  
PostPosted: Sun Mar 17, 2013 8:08 am 
Offline
Site Admin
User avatar

Joined: Wed Jan 02, 2013 11:38 pm
Posts: 5333
I disable TVM_ENSUREVISIBLE for the root item if it is not currently selected.

The auto-scrolling to the top is a feature of the underlying tree view control. It is not something that can be easily disabled.


Top
 Profile  
Reply with quote  
PostPosted: Sun Mar 17, 2013 8:42 am 
Offline

Joined: Sun Mar 17, 2013 12:11 am
Posts: 2
Ivo wrote:
I disable TVM_ENSUREVISIBLE for the root item if it is not currently selected.

The auto-scrolling to the top is a feature of the underlying tree view control. It is not something that can be easily disabled.


Thank you sir! If I wanted to make a DLL or a standalone program that only disables TVM_ENSUREVISIBLE, as you already coded in Classic Shell, what are the necessary parts besides the hook function CExplorerBHO::SubclassTreeProc that subclasses the tree view control? (I apologize if this is too technical a question for these forums.)


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 

All times are UTC - 8 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 71 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group, Almsamim WYSIWYG Classic Shell © 2010-2016, Ivo Beltchev.
All right reserved.