Page 1 of 1

Cum aflu daca scrollbar-ul apare ?

Posted: 21 Oct 2010, 21:41
by mesajflaviu
Cum pot stii daca intr-o aplicatie MDI cu CView bazat pe CScrollbarView am la un moment dat scrollbar pe orizontala sau pe verticala ? Am inteles ca in VC2005 exista CScrollView::CheckScrollBars(...) , dar nu exista ceva similar in VC6 ... am incercat in felul urmator :

Code: Select all

void CCustomClass::OnMouseMove(CMyView* pView,...)
{
        if(pView->GetStyle() & WS_HSCROLL)TRACE("\n WS_HSCROLL \n");	
        if(pView->GetStyle() & WS_VSCROLL)TRACE("\n WS_VSCROLL \n");
}
dar nu functioneaza ...

Re: Cum aflu daca scrollbar-ul apare ?

Posted: 21 Oct 2010, 22:14
by Ovidiu Cucu
Implementarea din VS2005 este

Code: Select all

void CScrollView::CheckScrollBars(BOOL& bHasHorzBar, BOOL& bHasVertBar) const
{
	DWORD dwStyle = GetStyle();
	CScrollBar* pBar = GetScrollBarCtrl(SB_VERT);
	bHasVertBar = ((pBar != NULL) && pBar->IsWindowEnabled()) ||
					(dwStyle & WS_VSCROLL);

	pBar = GetScrollBarCtrl(SB_HORZ);
	bHasHorzBar = ((pBar != NULL) && pBar->IsWindowEnabled()) ||
					(dwStyle & WS_HSCROLL);
}
Asta pentru ca, o fereastra poate sa aiba controale scrollbar sau sa nu aiba controale scrollbar dar stilul WS_VSCROLL, respectiv WS_HSCROLL.

Re: Cum aflu daca scrollbar-ul apare ?

Posted: 22 Oct 2010, 08:57
by mesajflaviu
Este exact ce imi trebuia ! Merge brici ! Multumesc mult !!!