WIN32提供了一個IP地址控制項,MFC封裝成CIPAddressCtrl類管理這個控制項。
class CIPAddressCtrl : public CWnd
{
DECLARE_DYNAMIC(CIPAddressCtrl)
public:
// Constructors
CIPAddressCtrl();
virtual BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
virtual BOOL CreateEx(DWORD dwExStyle, DWORD dwStyle, const RECT& rect,CWnd* pParentWnd, UINT nID);
// Attributes
BOOL IsBlank() const;
void ClearAddress();
int GetAddress(BYTE& nField0, BYTE& nField1, BYTE& nField2, BYTE& nField3);
int GetAddress(DWORD& dwAddress);
void SetAddress(DWORD dwAddress);
void SetAddress(BYTE nField0, BYTE nField1, BYTE nField2, BYTE nField3);
void SetFieldFocus(WORD nField);
void SetFieldRange(int nField, BYTE nLower, BYTE nUpper);
// Implementation
public:
virtual ~CIPAddressCtrl();
};
這是從MFC源碼中摘出的CIPAddressCtrl類的聲明。
1、BOOL IsBlank()
當控制項四個輸入欄位都為空白的時候,函數返回TRUE;哪怕有一個域不為空白,函數返回FALSE。
2、void ClearAddress()
清空控制項所有輸入欄位。
3、int GetAddress(BYTE& nField0, BYTE& nField1, BYTE& nField2, BYTE& nField3)
擷取控制項中四個域輸入的值,由於IP地址的數值不大於255,所以使用BYTE類型。
4、void SetAddress(BYTE nField0, BYTE nField1, BYTE nField2, BYTE nField3)
設定控制項四個域的值。
5、int GetAddress(DWORD& dwAddress)和void SetAddress(DWORD dwAddress)
這兩個函數用一個雙位元組表示IP地址,24-31位表示0域,16-23位表示1域,8-15位表示2域,0-7位表示3域。
6、void SetFieldFocus(WORD nField)
設定控制項獲得焦點的域,當參數大於3,焦點設定在第一個空域上,如果不存在空域,那麼焦點設定在第一個域上。
7、void SetFieldRange(int nField, BYTE nLower, BYTE nUpper)
設定域輸入資料的範圍。