WTL for MFC Programming瀹炶返绡 --- 涓涓嚜瀹氫箟ComboBox鐨勭Щ妞嶈繃绋(涓)
鍙戝竷: 2008-6-26 11:25 | 浣滆: admin | 鏌ョ湅: 37娆
WTL for MFC Programming瀹炶返绡
--- 涓涓嚜瀹氫箟ComboBox鐨勭Щ妞嶈繃绋
鐜板湪鏈変竴涓狹FC鍐欑殑鑷畾涔塁omboBox鎵撶畻绉绘鍒癢TL涓婏紝浜庢槸鏍规嵁WTL鐨勪功鍐欐柟娉曚慨鏀逛簡绋嬪簭锛屽氨寰楀埌涓嬮潰鐨勪唬鐮侊細
Class CComboBoxEx : public CComboBox
{
protected:
void OnDrawItem(UINT wParam, LPDRAWITEMSTRUCT lpDrawItemStruct);
public:
BEGIN_MSG_MAP_EX(CComboBoxEx)
MSG_OCM_DRAWITEM(OnDrawItem)
END_MSG_MAP()
}
Class CMainDlg : public CDialogImpl< CMainDlg >
{
Protected:
CComboBoxEx m_cmbEx;
Public:
BEGIN_DDX_MAP(CPageConfigFont)
DDX_CONTROL_HANDLE(IDC_COMBOBOXEX, m_cmbEx);
END_DDX_MAP()
BEGIN_MSG_MAP_EX(CPageConfigFont)
MSG_WM_INITDIALOG(OnInitDialog)
REFLECT_NOTIFICATIONS()
END_MSG_MAP()
}
濡備綍鐢熸垚浠ヤ笂浠g爜鍙婁唬鐮佺殑鍚箟锛屽師涔﹂兘鏈変粙缁嶏紝鐢变簬涓嶆槸鏈枃鐨勯噸鐐癸紝涓嶅啀涓涓瑙i噴銆
瑕佽鐨勬槸锛屽湪WTL 7.1涓坊鍔犱簡DDX_CONTROL_HANDLE瀹忥紝鍙互鐢ㄦ潵璁剧疆鎺т欢锛屼笌DDX_CONTROL涓嶅悓鐨勬槸锛屽畠涓嶈姹傛帶浠剁被鐢盋WindowImpl娲剧敓锛屽嵆涓嶉渶瑕佸寘鍚玈ubclassWindow()鍑芥暟锛岃繖鏍锋垜浠墠鍙互浣跨敤DDX鏉ヨ缃垜浠粠CComboBox娲剧敓鐨勭被锛堝惉涓婂幓寰堟湁閬撶悊锛屽叾瀹炲嵈鏄湪MFC缂栫▼涔犳儻甯﹀姩涓嬮敊璇濈淮锛夈
褰撶劧锛岃瀹炵幇杩樻湁涓涓皬灏忕殑闂锛孌DX_CONTROL_HANDLE瀹忛渶瑕佹垜浠殑绫诲寘鍚竴涓搷浣滅鈥=鈥濓紝鎬庝箞鍐欒繖涓嚱鏁板憿锛熷弬鐪嬩簡涓涓嬪熀绫荤殑瀹炵幇鏂规硶锛
CComboBoxExT< TBase >& operator =(HWND hWnd)
{
m_hWnd = hWnd;
return *this;
}
鍙傜湅WTL鏂囦欢
鍘熸潵鍙槸灏唌_hWnd璧嬪硷紝浜庢槸鎴戜滑鍦ㄦ垜浠殑绫讳腑娣诲姞濡備笅鐨勪唬鐮侊細
CComboBoxEx& operator=(HWND hWnd)
{
m_hWnd = hWnd;
return *this;
}
浜庢槸缂栬瘧閫氳繃浜嗐傦紙娈婁笉鐭ユ綔鍦ㄧ殑閿欒灏辫繖鏍疯娣辨繁鐨勫煁璧锋潵浜嗭級
鍙槸涓轰粈涔圖DX_CONTROL_HANDLE瀹忛渶瑕佹垜浠殑绫诲寘鍚搷浣滅鈥=鈥濆憿锛熸垜浠潵鐪嬬湅DDX_CONTROL_HANDLE瀹忔槸鎬庝箞瀹炵幇鐨勶細
鏁翠釜DDX_MAP鍏跺疄鏄畾涔変簡涓涓狣oDataExchange鍑芥暟锛孊EGIN_DDX_MAP瀹忓畾涔変簡鍑芥暟澶达紝鑰孍ND_DDX_MAP瀹氫箟浜嗗嚱鏁板熬锛屼腑闂翠竴椤归」鐨凞DX瀹氫箟鍑芥暟鐨勫叿浣撳唴瀹癸紝鑰屽綋浣犲湪浠g爜涓畾涔塂DX_MAP鐨勬椂鍊欏氨绛変簬閲嶈浇浜咰WinDataExchange::DoDataExchange()鍑芥暟锛屽叿浣撲唬鐮佸涓嬶細
#define BEGIN_DDX_MAP(thisClass) \
BOOL DoDataExchange(BOOL bSaveAndValidate = FALSE, UINT nCtlID = (UINT)-1) \
{ \
bSaveAndValidate; \
nCtlID;
#define END_DDX_MAP() \
return TRUE; \
}
鍙傜湅WTL鏂囦欢
瀵逛簬DDX_CONTROL_HANDLE瀹忥紝瀹冨叾瀹炴槸璋冪敤浜咰WinDataExchange:: DDX_Control_Handle鍑芥暟锛屽叿浣撲唬鐮佸涓嬶細
// Simple control attaching (for HWND wrapper controls)
template
void DDX_Control_Handle(UINT nID, TControl& ctrl, BOOL bSave)
{
if(!bSave && ctrl.m_hWnd == NULL




发表于 2009-1-5 19:48
| 











