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

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


Initializing Slider Controls in a CDialogBar

Jeff Yates X5389 -- jeffy@dv.callawaygolfco.com
Friday, December 13, 1996

	Environment: VC++ 4.2b, NT 4.0

I am attempting to add several slider controls to a CDialogBar and cannot
determine where I should be initializing them (ie: m_slider.SetRange(...) and
m_slider.SetTicFreq(...)).  I can't do this in CmyDialogBar::OnCreate() since
the controls haven't been created.   Neither can I do it in
CMainFrame::OnCreate().  Could someone tell me where/how this should
be done?

Thank You!






Roy G. Browning -- ctf@sccsi.com
Sunday, December 15, 1996

[Mini-digest: 3 responses]

At 11:12 AM 12/13/96 -0500, you wrote:
>	Environment: VC++ 4.2b, NT 4.0
>
>I am attempting to add several slider controls to a CDialogBar and cannot
>determine where I should be initializing them (ie: m_slider.SetRange(...) and
>m_slider.SetTicFreq(...)).  I can't do this in CmyDialogBar::OnCreate() since
>the controls haven't been created.   Neither can I do it in
>CMainFrame::OnCreate().  Could someone tell me where/how this should
>be done?
>
int
CMainFrame::OnCreate( LPCREATESTRUCT lpCreateStruct )
{
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
    ....
    ....
	// initiate the animation toolbar
        if ( !m_wndAnimationBar.InitInstance( this, TRUE ) ) {
		TRACE0("Failed to create animation bar\n");
		return -1;      // fail to create
	}
    ....
    ....
}

BOOL
CAnimationBar::InitInstance( CWnd * pParentWnd, BOOL bToolTips )
{
	m_bVertical = FALSE;

	// start out with no borders
	DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_SIZE_DYNAMIC;
	if (bToolTips)
		dwStyle |= (CBRS_TOOLTIPS | CBRS_FLYBY);

	if ( !Create( pParentWnd, dwStyle, ID_VIEW_ANIMATION_BAR ) )
		return FALSE;
    
        LoadToolBar( IDR_ANIMATION );
	
        CRect rect( -SLIDER_WIDTH, -SLIDER_HEIGHT, 0, 0 );
	if ( !m_cAnimationDelay.Create( WS_CHILD |
                                        WS_BORDER |
                                        TBS_TOP |
                                        TBS_AUTOTICKS , 
                                        rect,
                                        this,
		                        ID_ANIMATION_SLIDER_CONTROL ) ) {
		return FALSE;
	}
	if( !SetHorizontal() )
		return FALSE;

	m_cAnimationDelay.SetRange( 0, 100 );
        m_cAnimationDelay.SetTicFreq( 50 );

	return TRUE;
}

The above works for me!

Roy Browning

////////////////////////////////////////

C o n t r o l l i n g  the  F u t u r e
    Software Design & Development

             www.CtF.net

            800-CTF-0032

    Roy Browning - ctf@msn.com

///////////////////////////////////////


-----From: Peter.Walker@ubs.com

     You should override  ON_MESSAGE(WM_INITDIALOG, HandleInitDialog),
     and call the base class 
     CDialogBar::HandleInitDialog(..)
     See bardlg.cpp line 123.
     
     Peter Walker
     Peter.Walker@ubs.com


______________________________ Forward Header __________________________________
Subject: PUBLIC:  Initializing Slider Controls in a CDialogBar
Author:  owner-mfc-l at zhux/DD.RFC-822=owner-mfc-l@majordomo.netcom.com
Date:    13/12/96 15:12


        Environment: VC++ 4.2b, NT 4.0
     
I am attempting to add several slider controls to a CDialogBar and cannot 
determine where I should be initializing them (ie: m_slider.SetRange(...) and 
m_slider.SetTicFreq(...)).  I can't do this in CmyDialogBar::OnCreate() since 
the controls haven't been created.   Neither can I do it in 
CMainFrame::OnCreate().  Could someone tell me where/how this should
be done?
     
Thank You!
-----From: "Daniel Munoz" 

Environment: VC++ 4.2, Win 95, NT 3.51, NT 4.00

Hi Jeff,

> I am attempting to add several slider controls to a CDialogBar and cannot
> determine where I should be initializing them (ie: m_slider.SetRange(...)
and

I do this on the CDialog::OnInitialUpdate () message, after a
CDialog::UpdateData (FALSE).

Daniel Munoz
dmunoz@socabim.fr







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