MFC中
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)//这里的&符号是什么意思,以前没有看到过
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
//  the CREATESTRUCT cs
   cs.style&=~FWS_ADDTOTITLE;//这里也一样,从前从来没有看到过
return TRUE;
}
什么意思啊

解决方案 »

  1.   

    (1)第一个"& cs",表示传一个"引用"参数进来;
    (2)第二个"cs.style&"表示将style的Bool值与"~FWS_ADDTOTITLE"所代表的Bool值进行逻辑"与"运算,运算的结果再放回style中去.
      

  2.   

    (1)第一个"& cs",表示传一个"引用"参数进来;
    (2)第二个"cs.style&"表示将style的Bool值与"~FWS_ADDTOTITLE"(其中'~'表示对FWS_ADDTOTITLE取补)所代表的值进行按位"与"运算,运算的结果再放回style中去.
     ┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳ 
     ╋━┻━┻━┻━┻━┻━┻━┻━┻━◢█◣◢█◣ 
     ┫   ** 端庄厚重 谦卑含容 *         ██████
     ┫   ** 事有归着 心存济物 *         ◥████◤ 
     ╋━┳━┳━┳━┳━┳━┳━┳━┳━┳◥██◤  
     ┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━◥◤
      

  3.   

    1、第一个"& cs",表示用 引用 传递参数,即传递的是地址,这样的方式传递速度快,函数内对参数的改变可以返回。
    2、第二个"cs.style&="表示将style的Bool值与"~FWS_ADDTOTITLE"所代表的Bool值进行逻辑"与"运算,运算的结果再放回style中去. &= 操作符与+= 类似
      

  4.   

    void fun1(int x)
    {
    x++;
    }
    void fun2(int &x)
    {
    x++;
    }
    void fun3(int *np)
    {
    (*np)++;  //括号不能略
    }
    void CCsdnDlg::OnButton1() 
    {
    int x = 0;
    fun1(x); //x的值仍是0; fun2(x);
    //x的值是1; fun3(&x);
    //x的值是2;

    }
    注意调用方式和x的值变了没有
      

  5.   

    #define STYLE1    0x01
    #define STYLE2    0x02
    #define STYLE3    0x04UINT style = 0x03;
    style &= ~ STYLE3;
      011
      011
     -----
      011
    这样做其它风格不变风格三一定没了
    style |= STYLE3;
    这样做其它风格不变风格三一定有
    &位与
    |位或
      

  6.   

    1、CREATESTRUCT& cs 表示“引用”
    2、cs.style&=~FWS_ADDTOTITLE; 相当于:cs.style = cs.style & ~FWS_ADDTOTITLE;VC++实际上是由C++和Windows程序设计两部分组成的。很多VC的书都是建立在读者已经有C++的基础了,直接讲解用VC开发Windows应用程序。建议在使用VC之前,先读读C++的书,先打好基本的语法基础如果时间比较紧只看一本书的话,建议是《VC++6.0从入门到精通》,这本书前10章讲的都是C++的基本概念,然后才开始讲Windows应用程序设计。不过时间富裕,还是先好好看C++的书:《C++程序设计语言(特别版)》《C++ Primer中文版》《C++ Primer 题解》等等然后再看VC的书:《Visual C++ 技术内幕(第四版)》《MFC深入浅出(第二版)》
    这两本都是讲的VC5的,不要太在意,很多东西都是很精彩的,而且到了VC6也没有什么变化。