代码之家  ›  专栏  ›  技术社区  ›  Canacourse

最终网格不可见

  •  0
  • Canacourse  · 技术社区  · 16 年前

    我试图在对话框中使用代码项目中的最终网格,但网格是不可见的。

    attachgrid(this,idc_credentials)返回true,但看不到应该显示网格的静态文本占位符,并且从不显示网格。

    我用的是这里的代码示例 http://www.codeproject.com/KB/MFC/UltimateGrid_Start.aspx?display=PrintAll&fid=452565&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=2629959&fr=51#Using_the_Grid_in_a_CDialog

    我安装了最新的更新ultimategrid72_src_update03.zip,我使用的是VS2008 SP1。

    谢谢。。。

    BOOL CCredentials::OnInitDialog()
    {
        CDialog::OnInitDialog();
    
        MyCug m_PList;
    
    m_Plist.AttachGrid(this, IDC_CREDENTIALS);
    
    }
    
    3 回复  |  直到 16 年前
        1
  •  3
  •   DavidK    16 年前

    我自己还没有使用终极网格。但是,通过查看您发布的代码,我可以看到可能存在一个问题:您在堆栈上声明一个“mycug”实例,然后附加它,但是一旦OnInitDialog()方法存在,基于堆栈的实例就会被销毁。您必须做的是将“mycug m_plist;”声明作为对话类的成员,这样网格对象的生存期与对话的生存期相同。

        2
  •  0
  •   1800 INFORMATION    16 年前

    我不知道你的网格为什么不显示,要查找的是它是否从对话框模板正确加载,它是否可见?您可以使用Spy++(与Visual Studio一起分发的工具)查看对话框中实际创建的窗口、窗口的位置以及在窗口上设置的标志和样式。

        3
  •  0
  •   Eric H.    16 年前

    创建并附加网格后,是否按示例定义添加行和列?

    否则,就没有什么可看的了。

    在mycug::onsetup()中需要以下代码:

    void MyCug::OnSetup(){ 
    
        //*******Set the Rows and Columns
        SetNumberCols(10);
        SetNumberRows(10); 
    
    } 
    

    这是7.2版本的教程中的内容。我广泛使用UG,对VS2008没有任何问题。但我自己创建了所有网格,不使用对话框模板。

    推荐文章