VC++(MFC):关于CButton的Create函数的一个疑问
比如,我有以下代码:CButtoncbt;cbt.Create(TEXT("MFCTest"),WS_CHILD|BS_PUSHBUTTON,CRect(0,0,10,1...
比如,我有以下代码:
CButton cbt ;
cbt.Create( TEXT( "MFCTest" ), WS_CHILD | BS_PUSHBUTTON, CRect( 0, 0, 10, 10), this, 1 ) ;
-------------------------------------------------------------------------------------
关于第三个参数,我有点不明白,MSDN上说,第三个参数是const RECT& rect,可以用RECT的派生类CRect来进行代替,但是CRect不是一个类的名字吗?它不是一个函数啊?如果是调用构造函数的话,不是应该在定义一个对象的时候使用吗?比如CRect crectObj (0, 0, 10, 10),这样使用才对啊,为什么能直接用类的名称后面加参数呢?
--------------------------------------------------------------------------------------
小弟才疏学浅,问的东西如果太简单了,请多多包涵,希望各位高手解答一下! 展开
CButton cbt ;
cbt.Create( TEXT( "MFCTest" ), WS_CHILD | BS_PUSHBUTTON, CRect( 0, 0, 10, 10), this, 1 ) ;
-------------------------------------------------------------------------------------
关于第三个参数,我有点不明白,MSDN上说,第三个参数是const RECT& rect,可以用RECT的派生类CRect来进行代替,但是CRect不是一个类的名字吗?它不是一个函数啊?如果是调用构造函数的话,不是应该在定义一个对象的时候使用吗?比如CRect crectObj (0, 0, 10, 10),这样使用才对啊,为什么能直接用类的名称后面加参数呢?
--------------------------------------------------------------------------------------
小弟才疏学浅,问的东西如果太简单了,请多多包涵,希望各位高手解答一下! 展开
10个回答
展开全部
CButton cbt ;
cbt.Create( TEXT( "MFCTest" ), WS_CHILD | BS_PUSHBUTTON, CRect( 0, 0, 10, 10), this, 1 ) ;
等同
CButton cbt ;
CRect cr = CRect( 0, 0, 10, 10);
cbt.Create( TEXT( "MFCTest" ), WS_CHILD | BS_PUSHBUTTON, cr, this, 1 ) ;
cbt.Create( TEXT( "MFCTest" ), WS_CHILD | BS_PUSHBUTTON, CRect( 0, 0, 10, 10), this, 1 ) ;
等同
CButton cbt ;
CRect cr = CRect( 0, 0, 10, 10);
cbt.Create( TEXT( "MFCTest" ), WS_CHILD | BS_PUSHBUTTON, cr, this, 1 ) ;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CRect(...)调用了CRect的构造函数,构造了一个CRect对象,但是这个CRect对象是未命名的,是个临时的对象。这整个过程和你先CRect rc(....); 然后把rc递给Create是一样的。这个用法在C++中是比较常见的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ct(x1,y1,x2,y2)
x1和y1表示按钮左上角坐标
x2和y2表示按钮右下角坐标
所以x2必须大于x1,y2必须大于y1;
你的x都设成了100,按钮的宽度为0了,当然不显示了。
明白了不。
x1和y1表示按钮左上角坐标
x2和y2表示按钮右下角坐标
所以x2必须大于x1,y2必须大于y1;
你的x都设成了100,按钮的宽度为0了,当然不显示了。
明白了不。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-03-27
展开全部
这是CRect的构造函数,他会在内存堆栈中生成一个临时CRect对象。而Create函数的参数是引用类型的CRect,所以可以直接那样使用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-03-28
展开全部
const RECT& 是引用
const RECT *是指针
传引用和传指针在效率方面是一样的,但是传引用相对于传指针有一个好处就是,不用判断这个指针是否为空。
const RECT *是指针
传引用和传指针在效率方面是一样的,但是传引用相对于传指针有一个好处就是,不用判断这个指针是否为空。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询