MFC 控件纪要

来源:互联网 发布:蜂窝移动数据lte设置 编辑:程序博客网 时间:2024/04/28 03:51

这段时间一直在做MFC上的界面工作,很多麻烦的习俗,这边记录下来,方便自己,也方便别人:

  1. 多个Radio  button控件组合使用,我使用九个radio代表相对中心的九个位置,实现选择其中一个,其他自动消除,最后程序退出的时候自动保存值.首先设置第一个Radio的Group属性,然后使用向导添加变量a,此时你设置5的时候应该选中中间位置,可是开始的时候是成功了,也琢磨MFC根据什么信息知道我选中的哪个控件呢?后来再使用这个控件的时候,就不可以了,Google了一下知道,MFC根据的是Tab的顺序,所以要保证这组Radio的Tab键顺序正常即可.
  2. 树控件CTreeCtrl使用:带CheckBox的树控件直接修改他的Checkbox属性就可以,但是选中项之间没有关联,即你选中了父控件不能连带选中所有的子控件,这可以通过重载NM_CLICK事件来实现,
        CPoint pt;  
        GetCursorPos(&pt);  
        m_Tree.ScreenToClient(&pt);  
        UINT uFlags;
        HTREEITEM hItem = m_Tree.HitTest(pt, &uFlags);
        if (hItem)
        {if(   uFlags   &   TVHT_ONITEMSTATEICON){}}
        然后通过GetChildItem得到第一个子控件,通过GetParentItem得到父控件,通过GetNextSiblingItem得到兄弟控件,通过这些函数,我们完全可以控制选中逻辑.