• 您的位置我爱Aspx >> VC.Net >> 非议MFC(二)逻辑上的不完备
  • 非议MFC(二)逻辑上的不完备

  • 作者:aspxer  来源:internet  日期:2007-5-21 23:49:38  关键字:
  • 非议MFC(二)逻辑上的不完备

    sp; 非议MFC(二)逻辑上的不完备

    关键字:C++,MFC,RECT,CRect,POINT,CPoint,逻辑

    说明:程序片断仅包括理解所必需的代码,其余省略。

    1.设计缺失

    <WINDEF.H>

    typedef struct tagRECT

    {

    LONG left;

    LONG top;

    LONG right;

    LONG bottom;

    } RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;

    <AFXWIN.H>

    class CRect : public tagRECT

    {

    void SwapLeftRight(); 1]

    BOOL IsRectEmpty() const;

    BOOL IsRectNull() const;

    void SetRectEmpty(); 2]

    CRect(int l, int t, int r, int b);

    CRect(POINT topLeft, POINT bottomRight);

    CRect(POINT point, SIZE size); 3]

    void SetRect(int x1, int y1, int x2, int y2);

    void SetRect(POINT topLeft, POINT bottomRight);

    };

    [1]为什么有SwapLeftRight(),却不提供对应的SwapTopBottom()?

    [2]同理,为什么不提供SetRectNull()呢?

    [3]既然三种方法都可以构造CRect对象,期望SetRect(POINT point, SIZE size)不是很合理吗?

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:从WEB服务器下载文件的简单方法。
    下一篇:实战DeviceIoControl 之一:通过API访问设备驱动程序
  • 相关文章