zoukankan      html  css  js  c++  java
  • WM_IDLEUPDATECMDUI与CView

    CFrameWnd貌似会向其CView子窗口(从CWnd继承的子窗口也适用)发生此消息, 子窗口可以响应该消息来更新一些按钮控件的状态. ex:

    #pragma once
    // CWelcomeView

    class CWelcomeWnd : public CWnd
    {
    public:
        CWelcomeWnd();
        virtual ~CWelcomeWnd();

    protected:
        DECLARE_MESSAGE_MAP()

        afx_msg  void OnIdleUpdateCmdUI();  

    };

    // WelcomeView.cpp : 实现文件
    //

    #include "stdafx.h"
    #include "WelcomeView.h"
    #include "afxpriv.h"

    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif

    // CWelcomeView

    CWelcomeView::CWelcomeView()
    {

    }

    CWelcomeView::~CWelcomeView()
    {
    }

    BEGIN_MESSAGE_MAP(CWelcomeView, CWnd)
        ON_MESSAGE_VOID(WM_IDLEUPDATECMDUI, OnIdleUpdateCmdUI)
    END_MESSAGE_MAP()

    // CWelcomeView 消息处理程序

    afx_msg void CWelcomeView::OnIdleUpdateCmdUI()
    {
        BOOL bEnabled = FALSE;

        // 树形控件弹出菜单

        // 导入导出
        bEnabled = (m_nCurrTag == TAG_SIM1 ||
                    m_nCurrTag == TAG_SIM2 ||
                    m_nCurrTag == TAG_ME);
        m_wndDropBtnImpExp.EnableCommand(IDC_IMPEXP,    bEnabled);
        m_wndDropBtnImpExp.EnableCommand(IDC_IMPCSV,    bEnabled);
        m_wndDropBtnImpExp.EnableCommand(IDC_IMPVCARD,    bEnabled);
        m_wndDropBtnImpExp.EnableCommand(IDC_EXPCSV,    bEnabled);
        m_wndDropBtnImpExp.EnableCommand(IDC_EXPVCARD,    bEnabled);

        // 复制粘贴
        bEnabled = (m_nCurrTag == TAG_SIM1 ||
                    m_nCurrTag == TAG_SIM2 ||
                    m_nCurrTag == TAG_ME   ||
                    m_nCurrTag == TAG_LOCAL);
        bEnabled &= (m_wndPbList.GetSelectedCount() > 0);
        m_wndDropBtnCopySave.EnableCommand(IDC_COPY1, bEnabled);
        m_wndDropBtnCopySave.EnableCommand(IDC_CUT1, bEnabled);

        bEnabled = (m_nCurrTag == TAG_SIM1 ||
            m_nCurrTag == TAG_SIM2 ||
            m_nCurrTag == TAG_ME   ||
            m_nCurrTag == TAG_LOCAL);
        bEnabled &= (m_clipboard.size() > 0);
        m_wndDropBtnCopySave.EnableCommand(IDC_PASTE1, bEnabled);

        // 删除
        bEnabled = (m_wndPbList.GetSelectedCount() > 0);
        m_wndBtnDelete.EnableWindow(bEnabled);

        // 同步
        bEnabled = (m_nCurrTag == TAG_SIM1 ||
            m_nCurrTag == TAG_SIM2 ||
            m_nCurrTag == TAG_ME);
        m_wndBtnSync.EnableWindow(bEnabled);

        // 刷新
        //bEnabled = (m_nCurrTag == TAG_SIM1 ||
        //    m_nCurrTag == TAG_SIM2 ||
        //    m_nCurrTag == TAG_ME);

        // 添加
        bEnabled = (m_nCurrTag == TAG_SIM1 ||
            m_nCurrTag == TAG_SIM2 ||
            m_nCurrTag == TAG_ME);
        m_wndPbList.EnableTopButton(TOP_COMMAND_ADD, bEnabled);

    }

  • 相关阅读:
    聊聊Flame Graph(火焰图)的那些事
    Dynamometer:HDFS性能扩展测试工具
    论分布式系统中单一锁控制的优化
    聊聊磁盘数据的损坏
    分级副本存储:一种更具效益成本的数据容错策略
    分布式存储系统中的Data Scrubbing机理
    论一个成熟分布式系统的工具类设计
    聊聊Raft一致性协议以及Apache Ratis
    ListenableFuture的状态同步和原子更新
    2018-9-1-win10-uwp-轻量级-MVVM-框架入门-2.1.5.3199
  • 原文地址:https://www.cnblogs.com/hcfalan/p/1886721.html
Copyright © 2011-2022 走看看