Click here to Skip to main content
15,886,199 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
AnswerRe: Optimisation challenge... [modified] Pin
Chris Losinger30-Jun-10 4:19
professionalChris Losinger30-Jun-10 4:19 
GeneralRe: Optimisation challenge... Pin
MarkB77730-Jun-10 11:01
MarkB77730-Jun-10 11:01 
GeneralRe: Optimisation challenge... Pin
Chris Losinger30-Jun-10 11:41
professionalChris Losinger30-Jun-10 11:41 
GeneralRe: Optimisation challenge... Pin
MarkB77730-Jun-10 12:00
MarkB77730-Jun-10 12:00 
QuestionWin32_ScheduledJob Pin
Jayapal Chandran29-Jun-10 23:36
Jayapal Chandran29-Jun-10 23:36 
Questionscollbar in CStatic Pin
kk.tvm29-Jun-10 23:28
kk.tvm29-Jun-10 23:28 
AnswerRe: scollbar in CStatic Pin
Cedric Moonen29-Jun-10 23:37
Cedric Moonen29-Jun-10 23:37 
GeneralRe: scollbar in CStatic Pin
kk.tvm29-Jun-10 23:57
kk.tvm29-Jun-10 23:57 
Hi Cédric Moonen,

Basically my class is subclass of CStatic.

I set scrollinfo using below code

void CImageViewer::PreSubclassWindow()
{
	CRect rect;
	GetClientRect( &rect );

	// set horizontal scroll bar
	SCROLLINFO si;
	ZeroMemory( &si, sizeof( SCROLLINFO ));
	si.cbSize = sizeof( SCROLLINFO );
	si.fMask = SIF_ALL;
	si.nMin = 0;
	si.nMax = nScrWidth;
	si.nPage = rect.Width();
	si.nPos = 0;
	si.nTrackPos = 0;
	SetScrollInfo( SB_HORZ, &si );
	CStatic::PreSubclassWindow();
}


and handled OnHScroll Message

void CImageViewer::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
	SCROLLINFO si;
	int nScrollPos = nPos;
	pScrollBar->GetScrollInfo( &si );
	int nCurPos = si.nPos;
	int nMin = si.nMin;
	int nMax =  si.nMax;

	switch( nSBCode )
	{
		case SB_THUMBPOSITION:
		case SB_THUMBTRACK:
			nScrollPos = si.nTrackPos;
			break;
		case SB_LEFT:
			nScrollPos = nMin;
			break;
		case SB_RIGHT:
			nScrollPos = nMax;
			break;
		case SB_LINELEFT:
			nScrollPos = nCurPos - 2;
			break;
		case SB_LINERIGHT:
			nScrollPos = nCurPos + 2;
			break;
		case SB_PAGELEFT:
			nScrollPos = nCurPos - 5;
			break;
		case SB_PAGERIGHT:
			nScrollPos = nCurPos + 5;
			break;
		case SB_ENDSCROLL:
			nScrollPos = nCurPos;
			break;
	}

	if(nScrollPos < nMin) nScrollPos = nMin;
	else if(nScrollPos > nMax) nScrollPos = nMax;
	pScrollBar->SetScrollPos( nScrollPos );
	Invalidate();
	CStatic::OnHScroll(nSBCode, nPos, pScrollBar);
}


After this a scroll bar appears with my control. But i can't change scroll position.
-kk.tvm-

GeneralRe: scollbar in CStatic Pin
Cedric Moonen30-Jun-10 0:13
Cedric Moonen30-Jun-10 0:13 
GeneralRe: scollbar in CStatic Pin
kk.tvm30-Jun-10 0:39
kk.tvm30-Jun-10 0:39 
GeneralRe: scollbar in CStatic Pin
Cedric Moonen30-Jun-10 1:06
Cedric Moonen30-Jun-10 1:06 
GeneralRe: scollbar in CStatic Pin
kk.tvm30-Jun-10 1:21
kk.tvm30-Jun-10 1:21 
QuestionMessage Removed Pin
29-Jun-10 22:34
learningvisualc29-Jun-10 22:34 
AnswerRe: Detecting sim card reader Pin
LloydA11130-Jun-10 1:16
LloydA11130-Jun-10 1:16 
Questionconditional menu Pin
josip cagalj29-Jun-10 22:27
josip cagalj29-Jun-10 22:27 
AnswerRe: conditional menu Pin
Richard MacCutchan30-Jun-10 1:34
mveRichard MacCutchan30-Jun-10 1:34 
AnswerRe: conditional menu Pin
KarstenK30-Jun-10 3:46
mveKarstenK30-Jun-10 3:46 
GeneralRe: conditional menu Pin
josip cagalj30-Jun-10 3:50
josip cagalj30-Jun-10 3:50 
GeneralRe: conditional menu Pin
KarstenK30-Jun-10 3:55
mveKarstenK30-Jun-10 3:55 
GeneralRe: conditional menu Pin
josip cagalj30-Jun-10 3:57
josip cagalj30-Jun-10 3:57 
QuestionHow to distinguish a physical printer from a virtual printer? Pin
lek25829-Jun-10 21:36
lek25829-Jun-10 21:36 
AnswerRe: How to distinguish a physical printer from a virtual printer? Pin
«_Superman_»29-Jun-10 22:50
professional«_Superman_»29-Jun-10 22:50 
QuestionRe: How to distinguish a physical printer from a virtual printer? Pin
David Crow30-Jun-10 3:17
David Crow30-Jun-10 3:17 
AnswerRe: How to distinguish a physical printer from a virtual printer? Pin
Iain Clarke, Warrior Programmer30-Jun-10 12:26
Iain Clarke, Warrior Programmer30-Jun-10 12:26 
Questioncannot get the first vallue from ComboBox Pin
raju_shiva29-Jun-10 21:14
raju_shiva29-Jun-10 21:14 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.