void CGUIRender::Render(const EGUICurrentState state, const int32 x, const int32 y) {
    Renderer::Instance().DrawImage(GetCurrentImg(state), static_cast<double>(x),
                                   static_cast<double>(y));
    Renderer::Instance().SetColor(255, 255, 255, 255);
    double textOffset = ((GetCurrImgWidth(state)
                          - m_fontType->GetTextWidth(m_buttonText)) / 2);
    Renderer::Instance().DrawText(m_fontType, m_buttonText,
                                  static_cast<double>(x - GetCurrentImg(state)->GetHandleX()) + textOffset,
                                  static_cast<double>(y));
}
	void CLkDuiImgDisplay::OnChangeImage()
	{
		dc_background_->SetImage(GetNextImg().pImage,TRUE);
		if (!dc_beforeground_)
			dc_beforeground_ = new CLkDuiDC(hWnd_,rect_);	
		dc_beforeground_->SetImage(GetCurrentImg().pImage,TRUE);
		byAlpha_ -= 20;
		timer_->AddTimer(GetMainHWnd(),TIMER_IMAGE_CHANGEING,100);
	}
	void CLkDuiImgDisplay::OnTime(UINT id)
	{
		if (id == TIMER_IMAGE_CHANGE)
		{
			OnChangeImage();
		}
		else if (id == TIMER_IMAGE_CHANGEING)
		{
			
			if (byAlpha_ < 20)
			{	
				byAlpha_ = FULL_ALPHA;
				if (++show_pos_ == image_array_.size())
					show_pos_ = 0;
				dc_background_->SetImage(GetCurrentImg().pImage,TRUE);
				timer_->RemoveTimer(GetMainHWnd(),TIMER_IMAGE_CHANGEING);
			}
			else
				byAlpha_ -= 20;

			is_erase_bg_ = TRUE;
			OnPaint();
		}
	}
uint16 CGUIRender::GetCurrImgHeight(EGUICurrentState state) const {
    return GetCurrentImg(state)->GetHeight() * GetCurrentImg(state)->GetVFrames();
}
uint16 CGUIRender::GetCurrImgWidth(EGUICurrentState state) const {
    return GetCurrentImg(state)->GetWidth() * GetCurrentImg(state)->GetHFrames();
}