--- description: "Learn more about: CKeyFrame Class" title: "CKeyFrame Class" ms.date: "11/04/2016" f1_keywords: ["CKeyFrame", "AFXANIMATIONCONTROLLER/CKeyFrame", "AFXANIMATIONCONTROLLER/CKeyFrame::CKeyFrame", "AFXANIMATIONCONTROLLER/CKeyFrame::AddToStoryboard", "AFXANIMATIONCONTROLLER/CKeyFrame::AddToStoryboardAfterTransition", "AFXANIMATIONCONTROLLER/CKeyFrame::AddToStoryboardAtOffset", "AFXANIMATIONCONTROLLER/CKeyFrame::GetExistingKeyframe", "AFXANIMATIONCONTROLLER/CKeyFrame::GetOffset", "AFXANIMATIONCONTROLLER/CKeyFrame::GetTransition", "AFXANIMATIONCONTROLLER/CKeyFrame::m_offset", "AFXANIMATIONCONTROLLER/CKeyFrame::m_pExistingKeyFrame", "AFXANIMATIONCONTROLLER/CKeyFrame::m_pTransition"] helpviewer_keywords: ["CKeyFrame [MFC], CKeyFrame", "CKeyFrame [MFC], AddToStoryboard", "CKeyFrame [MFC], AddToStoryboardAfterTransition", "CKeyFrame [MFC], AddToStoryboardAtOffset", "CKeyFrame [MFC], GetExistingKeyframe", "CKeyFrame [MFC], GetOffset", "CKeyFrame [MFC], GetTransition", "CKeyFrame [MFC], m_offset", "CKeyFrame [MFC], m_pExistingKeyFrame", "CKeyFrame [MFC], m_pTransition"] ms.assetid: d050a562-20f6-4c65-8ce5-ccb3aef1a20e --- # CKeyFrame Class Represents an animation keyframe. ## Syntax ``` class CKeyFrame : public CBaseKeyFrame; ``` ## Members ### Public Constructors |Name|Description| |----------|-----------------| |[CKeyFrame::CKeyFrame](#ckeyframe)|Overloaded. Constructs a keyframe that depends on other keyframe.| ### Public Methods |Name|Description| |----------|-----------------| |[CKeyFrame::AddToStoryboard](#addtostoryboard)|Adds a keyframe to a storyboard. (Overrides [CBaseKeyFrame::AddToStoryboard](../../mfc/reference/cbasekeyframe-class.md#addtostoryboard).)| |[CKeyFrame::AddToStoryboardAfterTransition](#addtostoryboardaftertransition)|Adds a keyframe to storyboard after transition.| |[CKeyFrame::AddToStoryboardAtOffset](#addtostoryboardatoffset)|Adds a keyframe to storyboard at offset.| |[CKeyFrame::GetExistingKeyframe](#getexistingkeyframe)|Returns a pointer to a keyframe this keyframe depends on.| |[CKeyFrame::GetOffset](#getoffset)|Returns an offset from other keyframe.| |[CKeyFrame::GetTransition](#gettransition)|Returns a pointer to a transition this keyframe depends on.| ### Protected Data Members |Name|Description| |----------|-----------------| |[CKeyFrame::m_offset](#m_offset)|Specifies offset of this keyframe from a keyframe stored in m_pExistingKeyFrame.| |[CKeyFrame::m_pExistingKeyFrame](#m_pexistingkeyframe)|Stores a pointer to an existing keframe. This keyframe is added to storyboard with m_offset to the existing keyframe.| |[CKeyFrame::m_pTransition](#m_ptransition)|Stores a pointer to transtion that begins at this keyframe.| ## Remarks This class implements an animation keyframe. A keyframe represents a moment in time within a storyboard and can be used to specify the start and end times of transitions. A keyframe may be based on other keyframe and have an offset (in seconds) from it, or may be based on a transition and represent a moment in time when this transition ends. ## Inheritance Hierarchy [CObject](../../mfc/reference/cobject-class.md) [CBaseKeyFrame](../../mfc/reference/cbasekeyframe-class.md) [CKeyFrame](../../mfc/reference/ckeyframe-class.md) ## Requirements **Header:** afxanimationcontroller.h ## CKeyFrame::AddToStoryboard Adds a keyframe to a storyboard. ``` virtual BOOL AddToStoryboard( IUIAnimationStoryboard* pStoryboard, BOOL bDeepAdd); ``` ### Parameters *pStoryboard*
A pointer to a storyboard. *bDeepAdd*
Specifies whether to add keyframe or transition recursively. ### Return Value TRUE, if keyframe was added successfully. ### Remarks This method adds a keyframe to storyboard. If it depends on other keyframe or transition and bDeepAdd is TRUE, this method tries to add them recursively. ## CKeyFrame::AddToStoryboardAfterTransition Adds a keyframe to storyboard after transition. ``` BOOL AddToStoryboardAfterTransition( IUIAnimationStoryboard* pStoryboard, BOOL bDeepAdd); ``` ### Parameters *pStoryboard*
A pointer to a storyboard. *bDeepAdd*
Specifies whether to add a transition recursively. ### Return Value TRUE, if keyframe was added successfully. ### Remarks This function is called by the framework to add a keyframe to storyboard after transition. ## CKeyFrame::AddToStoryboardAtOffset Adds a keyframe to storyboard at offset. ``` virtual BOOL AddToStoryboardAtOffset( IUIAnimationStoryboard* pStoryboard, BOOL bDeepAdd); ``` ### Parameters *pStoryboard*
A pointer to a storyboard. *bDeepAdd*
Specifies whether to add a keyframe this keyframe depend on recursively. ### Return Value TRUE, if keyframe was added successfully. ### Remarks This function is called by the framework to add a keyframe to storyboard at offset. ## CKeyFrame::CKeyFrame Constructs a keyframe that depends on a transition. ``` CKeyFrame(CBaseTransition* pTransition); CKeyFrame( CBaseKeyFrame* pKeyframe, UI_ANIMATION_SECONDS offset = 0.0); ``` ### Parameters *pTransition*
A pointer to a transition. *pKeyframe*
A pointer to keyframe. *offset*
Offset, in seconds, from keyframe specified by pKeyframe. ### Remarks The constructed keyframe will represent a moment in time within a storyboard when the specified transition ends. ## CKeyFrame::GetExistingKeyframe Returns a pointer to a keyframe this keyframe depends on. ``` CBaseKeyFrame* GetExistingKeyframe(); ``` ### Return Value A valid pointer to keyframe, or NULL if this keyframe does not depend on other keyframe. ### Remarks This is an accessor to a keyframe this keyframe depends on. ## CKeyFrame::GetOffset Returns an offset from other keyframe. ``` UI_ANIMATION_SECONDS GetOffset(); ``` ### Return Value An offset in seconds from other keyframe. ### Remarks This method should be called to determine an offset in seconds from other keyframe. ## CKeyFrame::GetTransition Returns a pointer to a transition this keyframe depends on. ``` CBaseTransition* GetTransition(); ``` ### Return Value A valid pointer to transition, or NULL if this keyframe does not depend on transition. ### Remarks This is an accessor to a transition this keyframe depends on. ## CKeyFrame::m_offset Specifies offset of this keyframe from a keyframe stored in m_pExistingKeyFrame. ``` UI_ANIMATION_SECONDS m_offset; ``` ## CKeyFrame::m_pExistingKeyFrame Stores a pointer to an existing keframe. This keyframe is added to storyboard with m_offset to the existing keyframe. ``` CBaseKeyFrame* m_pExistingKeyFrame; ``` ## CKeyFrame::m_pTransition Stores a pointer to transtion that begins at this keyframe. ``` CBaseTransition* m_pTransition; ``` ## See also [Classes](../../mfc/reference/mfc-classes.md)