C ++
我创建了一个在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问题? 谢谢。
链接地址: http://www.djcxy.com/p/39243.html上一篇: c++