none
关于Direct2D magazine app sample 例子的问题 RRS feed

  • 问题

  • 我按照Direct2D magazine app sample 这个例子编写了程序,

    程序里面 PageModel.cpp 的

    ICustomProperty^ PageModel::GetCustomProperty(_In_ Platform::String^ propertyName)

    这个函数都没被调用,怎么就会执行了呢? 是由什么触发的呢?  我按照这些写的,却不能触发。

    求教

    2012年9月13日 15:54

答案

  • 这个触发的找到了, 还有一个问题就是 ContentImageSource.cpp 中的HRESULT STDMETHODCALLTYPE ContentImageSource::UpdatesNeeded()

    这个函数,系统在什么时候才会触发它呢?? 如果没触发,我强制调用的话 DX::ThrowIfFailed(
                m_imageSourceNative->GetUpdateRectCount(&drawingBoundsCount)
                );

    drawingBoundsCount的值都是 0 , 就是没有显示的区域。

    是什么事件触发了该函数呢??求教,谢谢

    2012年9月13日 16:45
  • 原来是前面设置的问题,

    不过在下面这个函数中:

    HRESULT STDMETHODCALLTYPE ContentImageSource::UpdatesNeeded()
     for (ULONG i = 0; i < drawingBoundsCount; ++i)
            {
                if (Draw(drawingBounds[i]))
                {
                    // Drawing isn't complete. This can happen when the content is still being
                    // asynchronously loaded. Inform the image source to invalidate the drawing
                    // bounds so that it calls back to redraw.
                    DX::ThrowIfFailed(
                        m_imageSourceNative->Invalidate(drawingBounds[i])
                        );
                }
            }
      m_imageSourceNative->Invalidate(drawingBounds[i]) 会crash 。这是为什么呢?


     

     

     

     

     

     

     

     

    2012年9月14日 2:58
  • 终于自己解决了, 嘿嘿。是自己想的太复杂了
    2012年9月14日 7:22

全部回复

  • 这个触发的找到了, 还有一个问题就是 ContentImageSource.cpp 中的HRESULT STDMETHODCALLTYPE ContentImageSource::UpdatesNeeded()

    这个函数,系统在什么时候才会触发它呢?? 如果没触发,我强制调用的话 DX::ThrowIfFailed(
                m_imageSourceNative->GetUpdateRectCount(&drawingBoundsCount)
                );

    drawingBoundsCount的值都是 0 , 就是没有显示的区域。

    是什么事件触发了该函数呢??求教,谢谢

    2012年9月13日 16:45
  • 原来是前面设置的问题,

    不过在下面这个函数中:

    HRESULT STDMETHODCALLTYPE ContentImageSource::UpdatesNeeded()
     for (ULONG i = 0; i < drawingBoundsCount; ++i)
            {
                if (Draw(drawingBounds[i]))
                {
                    // Drawing isn't complete. This can happen when the content is still being
                    // asynchronously loaded. Inform the image source to invalidate the drawing
                    // bounds so that it calls back to redraw.
                    DX::ThrowIfFailed(
                        m_imageSourceNative->Invalidate(drawingBounds[i])
                        );
                }
            }
      m_imageSourceNative->Invalidate(drawingBounds[i]) 会crash 。这是为什么呢?


     

     

     

     

     

     

     

     

    2012年9月14日 2:58
  • 终于自己解决了, 嘿嘿。是自己想的太复杂了
    2012年9月14日 7:22