在 MFC(Microsoft Foundation Classes)中,COleMessageFilter 类确实提供了名为 BeginBusyState 的公共方法。这个方法用于标识应用程序正在忙碌状态,防止在执行繁忙操作时,OLE 消息队列中的其他消息干扰当前操作。

以下是 COleMessageFilter 类的 BeginBusyState 方法的一种可能实现:
void COleMessageFilter::BeginBusyState()
{
    // 增加忙碌状态计数
    m_nBusyCount++;

    // 如果计数为1,表示应用程序刚刚进入忙碌状态
    if (m_nBusyCount == 1)
    {
        // 禁用主窗口
        ::EnableWindow(AfxGetMainWnd()->m_hWnd, FALSE);
    }
}

在这个示例中,BeginBusyState 方法通过增加 m_nBusyCount 计数来标识应用程序正在忙碌状态。如果计数为1,表示应用程序刚刚进入忙碌状态,此时禁用主窗口。

具体的实现可能因应用程序的需要而有所不同。


转载请注明出处:http://www.zyzy.cn/article/detail/21431/MFC/COleMessageFilter