• 您的位置我爱Aspx >> VC.Net >> 在VC中MSFlexGrid内嵌EDIT、COMBOBOX的实现方法
  • 在VC中MSFlexGrid内嵌EDIT、COMBOBOX的实现方法

  • 作者:aspxer  来源:internet  日期:2007-5-21 23:49:09  关键字:com
  • 这个函数的作用,主要是支持MSFlexGrid的编辑,并把你的内嵌控件显示出来,当然,如果它是一个EDIT,那么我们有责任把EDIT内的光标置于EDIT中字串的最后。这个函数有两个参数:

    WORD nKeyAsciiCode:如果激活编辑FlexGrid的事件是一次按键,那么这个参数当然就和按键的信息有关了,另外在函数中,通过它可以实现支持中文,比如:您把焦点放到一个内嵌为EDIT的网格中[只是让FlexGrid的网格得到焦点,而不让内嵌的EDIT显示出来],直接输入中文,然后就会发现,网格自动进入编辑状态,并且你输入的中文汉字位于字串的最后:

    第二个参数:

    CWnd *p_wnd可以指定你想使用的内嵌控件,传入时可以使用&m_edit或&m_cmb。

    当然,你可以不指定它而用我们当初设置好的规则[这规则是指MSFlexGrid哪列固定采用哪个内嵌控件],这是用什么实现的呢?

    看到函数GridEdit中的

    if(p_wnd == NULL)

    {

    p_wnd = GetThisCellMaskControl();

    }

    了吧?

    CWnd * CProg5Dlg::GetThisCellMaskControl()

    {

    switch(m_FlexGrid.GetCol())

    {

    //第一列,第三列用ComboBox做为内嵌控件

    case 1:

    case 3:

    return &m_cmb;

    break;

    //其它的用Edit

    default:

    return &m_edit;

    }

    }

    我们可通过这个函数来设定一些基本规则。

    那么GridEdit函数是由谁来调用的呢?答案当然是由想实现编辑网格的事件触发的,在这里我设定为鼠标双击和网格有焦点时的按键事件:

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:c++入门学习笔记继承
    下一篇:c++入门学习笔记指针篇