MFC - WindowsCE - CWaitCursor

时间:2017-04-03 14:04:47

标签: c++ c windows mfc windows-ce

我创建了一个在MFC应用程序的主线程上运行的对话框。虽然这个对话框是模态的,但它在主线程(即消息泵线程)上做了一些需要时间的事情。每当需要时间时,我使用MFC类CWaitCursor创建一个自动变量。

在OnInitDialog方法中,它按预期工作。但是,如果我在OnInitDialog结束时执行相同操作,例如在响应自定义窗口消息的调用方法中,则等待光标不会显示。但是,如果我"激活应用程序"使用EveryWAN(允许从PC查看和控制设备的远程控制应用程序),然后光标显示。

我可以提供代码,但它充满了很多不太可能与问题相关的东西。我只是编写一个示例代码,然后显示我刚刚尝试解释的内容:

class MyDialog : public CDialog
{
public:

    BOOL OnInitDialog()
    {
        CWaitCusor oWaitCursor; // Shows wait cursor.
        Sleep( 5000 );
        PostMessage( WM_FOO, 0, 0 );
    }

    LRESULT OnFoo( WPARAM wParam, LPARAM lParam )
    {
        CWaitCusor oWaitCursor; // Does NOT show wait cursor, unless I "activate" the application...
        Sleep( 5000 );
    }
};

您是否了解可能导致等待光标不会显示在InInitDialog之外的原因?它是Windows CE错误吗?它是焦点,屏幕刷新还是z-index问题?谢谢。

0 个答案:

没有答案