CListCtrl listctrl;
第一种情况:
listctrl.Create(
   WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT,
   CRect(10,10,400,200), pParentWnd, 1);
第二种情况:
   listctrl.ModifyStyle(0, WS_CLIPCHILDREN);
第三种情况:
   listctrl.SetExtendedStyle(LVS_EX_HEADERDRAGDROP);
第四种情况:
   CListCtrl*pmyListCtrl=(CListCtrl*)GetDlgItem(IDC_LIST_GPS);
DWORD dwStyle=GetWindowLong(pmyListCtrl->m_hWnd,GWL_STYLE);
SetWindowLong(pmyListCtrl->m_hWnd,GWL_STYLE,dwStyle|LVS_REPORT);
看到这么多我都晕了,哪位好新大哥帮我理理清楚啊,说出他们各自的区别以及用法。非常感谢!!

解决方案 »

  1.   

    呵呵,昨天回答问题时,也提到了通过英语来理解MFC的函数功能的问题,上面的代码中,完全可以用这种方法学习。例如
    1、函数是Create(),那么就是创建呗,创建是指定了这些属性:WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT(其中每个属性又可以用“英语”来分析,例如WS_CHILD,就是“子窗口”属性等等),CRect(10,10,400,200),就是指定了创建的地方和大小,pParentWnd就是该控件的父窗口等等;
    2、ModifyStyle,就是“修改”+“属性(或者样式)”,就是修改属性罗,至于修改什么属性,后面写得很清楚;
    3、SetExtendedStyle,就是“设置”+“高级(或者额外)”+“属性”,就是设置高级属性;
    4、GetDlgItem(),就是“获取”+“对话框(缩写)”+“项目(也就是其中的控件)”,就是获取对话框上的控件的指针;GetWindowLong()和SetWindowLong()就是获取和设置窗口的属性(用长整型数的形式表示)用英语来理解各函数与消息,学Vc会容易得多,一定要多找找规律,呵呵
      

  2.   

    1、你说的“控件不不creat也行”,那些控件是在资源界面上添加的控件,你添加后系统就给你Create了,不需要你在去Create,这种添加控件方法,有一个名称,叫做“静态生成”,有些控件在资源里不生成,而是用代码“动态”创建,就需要用Create了,当然动态创建时,需要带属性;2、你查看MSDN,SetWindowLong功能很多,不仅仅是设置属性,它的功能比ModifyStyle强,后者只修改属性;3、Api函数,在Vc里一般不需要加::,基本上能直接用,用“::”的好处在于,你记不清楚API函数名时,打“::”号后,系统会根据你后面输入的字符显示相应的函数名,使编译时方便些