www.pudn.com > WinGOS.rar > PWnd.h


#ifndef _GOS_PWND_H_ 
#define _GOS_PWND_H_ 
 
#define HWND_ACTIVECTRL PWND(-1) 
#define HWND_FIRSTCHILD PWND(-2) 
#define HWND_LASTCHILD PWND(-3) 
 
enum _ParentWnd 
{ 
	PW_ACTIVECTRL		=-1, 
	PW_FIRSTCHILD		=-2, 
	PW_LASTCHILD		=-3, 
	PW_FOCUSCHAINKILL	=1, 
	PW_FOCUSCHAINSET	=2, 
	PW_FOCUSCHAIN		=3, 
}; 
 
class CPWnd : public CWnd 
{ 
	friend class CDesktop; 
public: 
	//构造、初始化或销毁 
	BOOL Create(DWORD nStyle,LPCRECT pRect,CPWnd* pParent,int nID=0); 
	BOOL Create(LPCTSTR pszText,DWORD nStyle,LPCRECT pRect,CPWnd* pParent,int nID=0); 
	 
	//状态,属性、窗口访问 
	void AddControl(CWnd* pWnd) 
		{ MsgProc(WM_ADDCONTROL,WPARAM(pWnd),0); } 
	void RemoveControl(CWnd* pWnd) 
		{ MsgProc(WM_REMOVECONTROL,WPARAM(pWnd),0); } 
	void SetActiveControl(CWnd* pWnd,int nMode); 
	CWnd* GetActiveControl(){return m_pActiveControl;} 
	CWnd* GetChild(){return m_pChild;} 
 
	//对话框 
	CWnd* GetDlgItem(int nID); 
	void SetDlgItemText(int nID,CString &string) 
		{ GetDlgItem(nID)->SetWindowText(string); } 
	void SetDlgItemText(int nID,LPCTSTR pszString) 
		{ GetDlgItem(nID)->SetWindowText(pszString); } 
	LPCTSTR GetDlgItemText(int nID) 
		{ return GetDlgItem(nID)->GetWindowText(); } 
	void GetDlgItemText(int nID,CString& rString) 
		{ GetDlgItem(nID)->GetWindowText(rString); } 
	int GetDlgItemText(int nID,LPTSTR pStr,int nMax) 
		{ GetDlgItem(nID)->GetWindowText(pStr,nMax); } 
public: 
	virtual LRESULT MsgProc(UINT message, WPARAM wParam, LPARAM lParam); 
	void OnAddControl(CWnd* pWnd); 
	void OnRemoveControl(CWnd* pWnd); 
	void OnDestroy(); 
private: 
	CWnd* m_pActiveControl; 
	CWnd* m_pChild; 
}; 
 
typedef CPWnd* PPWND; 
 
#endif _GOS_PWND_H_