1.我用的vs2005的vc,使用list control的时候,如果设置的列超出了list control的界面,
例如:list control的宽度为500,而我设置的列数宽度加起来超过500,那么,我在填充了数据后,
双击某行数据(我设置的list样式为m_list.SetExtendedStyle(m_list.GetStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT)),
就会出现错误,关闭应用程序,调试的时候错误位置如下:
#ifdef _DEBUG
ASSERT(++_afxResourceLocked[nLockType] > 0);
#endif
提示错误内容: 0xC0000094: Integer division by zero.
如果在的话,希望能够尽快给出答案2.还有个小问题就是如何用代码控制combox只能下拉选择,或者技能下拉也能输入

解决方案 »

  1.   

    1. 调试一下,看具体出错位置,除0?
    2. 设置combobox属性中,属性改为Drop   List就只能选择
      

  2.   

    你的回答太让我不满意了,晕死
    1.出错位置在afxcrit.cpp下,
    2.我只想知道代码中控制combox下拉属性,因为我要随时改变他的状态,希望你能认真考虑下
      

  3.   

    2
    DWORD   theStyle;  
      HWND   theChild;  
      theChild   =   ::GetWindow(   m_combo.m_hWnd   ,   GW_CHILD   );  
      theStyle   =   ::GetWindowLong(   m_combo.m_hwnd   ,   GWL_STYLE   );  
      theStyle   |=   !CBS_DROPDOWN;  
      theStyle   |=   CBS_DROPDOWNLIST;  
      ::DestroyWindow(   theChild   );  
      ::SetWindowLong(   m_combo.m_hWnd   ,   GWL_STYLE   ,   theStyle   );
      

  4.   


    别人没有帮你的义务。
    关于第二个,下面的代码是在vc6测试通过的
    1.动态修改ComboBox的DROPDOWN,DROPDOWNLIST属性 DWORD  theStyle; 
    HWND  theChild; theChild  =  ::GetWindow( GetDlgItem(IDC_COMBO1)->m_hWnd  ,  GW_CHILD  );  
    theStyle = GetWindowLong(GetDlgItem(IDC_COMBO1)->m_hWnd, GWL_STYLE  );  
    theStyle  &=  ~CBS_DROPDOWN;//去掉DROPDOWN  
    theStyle  |=  CBS_DROPDOWNLIST; //添加DROPDOWNLIST ::DestroyWindow(  theChild  );  
    SetWindowLong(GetDlgItem(IDC_COMBO1)->m_hWnd, GWL_STYLE  ,  theStyle  ); 
    第一个,不好判断,但是怀疑和你所说的超过宽度没有关系,你自己在分析一下
      

  5.   

    你可以自己建一个2005下的单文档,在aboutbox上建一个list control 测试一下啊,我要能找到问题,
    我也就不问你了,不就是想csdn是个高手云集的地方么,看见你是常驻高手,想问下,你也不至于说什么
    义务不义务的把,解决不了我又不会怪你什么!
      

  6.   

    m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT)), 
      

  7.   

    不管怎样,分给你了,即使这个专家没有给到我想要的答案,但是你给了,说明csdn高手还是很的,谢谢