15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Hiding Scrollbars in CScrollView/CSplitterWnd

David Halpin -- dhalpin@macromedia.com
Wednesday, December 18, 1996

Environment: VC++ 4.2b, Win 95, NT 4.0

Dear Fellow MFC Developers:

I have created a static CSplitterWnd with 4 panes.  I want each of the
panes to have a scrolling area that is larger than the actual client area
shown in the splitter pane window.  Thus, each of the panes will contains a
CScrollView derived view.   However, I do not want each of the panes to
contain a scroll bar.  How can I hide the scroll bars that are created by
the CScrollView objects in addition to any scroll bars that the
CSplitterWnd  makes?

These are the things I have tried thus far:

1.> SetScrollSize - SetScrollSize sets the scrollable area of the scroll
view.  If the scroll size is larger than the client area, then the
scrollbars appears.  If I set the scroll sizes the same size as the client
area, then the scroll bars do not show.  This defeats the point of having a
scroll view.  Thus did not work.

2.>  OnPreCreateWindow - I turned off the WS_HSCROLL and WS_VSCROLL flags
in the CREATESTRUCT to try and eliminate the scroll bars when the views are
created.  This did not work.

3.> ShowScrollBar - I tried to use ShowScrollBar(SB_BOTH, FALSE) to
elmininate the scroll bars. I called this after creating the views and
during each of the views OnDraw methods.  This did nothing.

4.> GetScrollBarCtrl - I tried to get the scroll bar control from the views
and call ShowScrollBar on each of them.  This did nothing.

5.> CSplitterWnd & CScrollView - I looked into overriding many of the
member functions of these classes after reading the source code and
stepping through a bunch of functions.   No good solution came about.

Obviously, since this is an advanced MFC list., I assumed everyone is
expected to do  background work BEFORE submitting a question.  I believe
this is an advanced question.  A good implementation of this could be used
in may situations.  In fact, I saw an earlier e-mail from someone who
wanted to draw some rulers in their view and have the rulers scroll with
the contents of the view.  I have not seen a response to his message yet.

Because this is an advanced MFC list, I assume specific things:

1.> Responses to messages have been thought through, and are not just the
everyday average thing I should have tried before I sent this mail to the
list.  (Unless you are sure it will work)

2.> You have not tried the basic ideas you proposed or are not familiar
with the subject at hand.

3.> I keep my messages brief  so you don't have to read all the overhead to
get to the question.  I don't think there is a need for a lot of fluff
because, once again, "This is an advanced list".  I have had problems
getting my messages past the moderator because they are to small.
Therefore,  assuming that I have not thought the problem out and completed
the necessary research.

Sorry, about the above.  But, I had to say something.  I enjoy the list and
am looking for it to maintain and improve on  it's "Advanced"  assistance.
Therefore, any "qualified" responses would be greatly appreciated.

Thanks

David
dhalpin@macromedia.com
"Lotteries are a tax on people who don't understand statistics."
"It is better to beg for forgiveness than ask for permission."

---------------------------------------------------------------------------
This email is only for the use of the addressee. It may contain information
which is legally privileged, confidential and exempt from disclosure.
If you are not the intended recipient you are hereby notified that any
dissemination, distribution, or copying of this communication and its
attachments is strictly prohibited. If you receive this communication in
error, please email dhalpin@macromedia.com
---------------------------------------------------------------------------





David Lantsman -- davidlan@il.lucky.net
Friday, December 20, 1996

Hello,

In order to hide a scroll bar you should set it's range to 0-0:
SetScrollRange(SB_VERT /* or SB_HORZ */ , 0, 0, FALSE);

It'll make it hidden.

Goodbye,
	David Lantsman
P.S.
You can check in the same way whether the scroll bar is visible - 
check it's range.


----------
From:  David Halpin[SMTP:dhalpin@macromedia.com]
To:  mfc-l@netcom.com
Subject:  Hiding Scrollbars in CScrollView/CSplitterWnd

Environment: VC++ 4.2b, Win 95, NT 4.0

Dear Fellow MFC Developers:

I have created a static CSplitterWnd with 4 panes.  I want each of the
panes to have a scrolling area that is larger than the actual client area
shown in the splitter pane window.  Thus, each of the panes will contains a
CScrollView derived view.   However, I do not want each of the panes to
contain a scroll bar.  How can I hide the scroll bars that are created by
the CScrollView objects in addition to any scroll bars that the
CSplitterWnd  makes?






| Вернуться в корень Архива |