• 关于dodateexchange


    关于MFC和ATL中手动添加的变量与可视化绘制的资源,常常需要手动添加关联,才能正常工作。

    这里说说自己遇到的情况:

    tablectrl 自认为table标签页一直是比较高端的东西,前些天却看到一个新手同事用了。瞬间感觉自己有些不思进取的嫌疑了。

    于是顺着这次机会使用了一下tablectrl却发现是个十分简单方便易用的东西。

    刚开始加了窗口类,并实例了tablectrl到窗体中,发现tablectrl部分一版空白,他为什么没有像别的控件或者空勤口一样只是显示出来而没有功能,却是一片空白呢。

    如果是因为没有关联到变量,其它控件为何不会呢。

    这个问题无关紧要,接下来从其它MFC类中拷贝了如下几个宏

    头文件中:

    DECLARE_DYNAMIC  //声明几个类相关静态函数

    virtual void DoDataExchange(CDataExchange* pDX);//将资源窗口关联到变量,

    DECLARE_MESSAGE_MAP()//声明消息映射,具体定义将在源文件中实现

    源文件中:

    IMPLEMENT_DYNAMIC  //声明某些静态实现

    BEGIN_MESSAGE_MAP//消息映射定义

    END_MESSAGE_MAP

    void CTable::DoDataExchange(CDataExchange* pDX)
    {
    CDialogEx::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_TAB1, m_Table);

    }

    以上这些宏和定义或许存在先后顺序关系

    另外 查阅dodateexchange函数作用之后,从声明到定义都注释了,取而代之的是如下代码,并添加在初始化函数中:

    HWND hWnd;
    GetDlgItem(IDC_TAB1, &hWnd);
    m_Table.Attach(hWnd);

    效果未见差异。

  • 相关阅读:
    Python IDE
    Codeforces Beta Round #69 Div1
    HDU1595 find the longest of the shortest[最短路]
    MFC/OpenGL下的调色板
    ApacheCN 编程/大数据/数据科学/人工智能学习资源 2019.12
    计算机电子书 2016 BiliDrive 备份
    计算机电子书 2017 BiliDrive 备份
    Java项目中常见的异常处理
    从小工到专家第三次读后感
    《梦断代码》读后感1
  • 原文地址:https://www.cnblogs.com/ice-arrow/p/12738299.html
Copyright © 2020-2023  润新知