锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鍔ㄦ佹帶浠舵槸鎸?span style="color: #0000ff;">鍦ㄩ渶瑕佹椂鐢盋reate()鍒涘緩鐨勬帶浠?/span>錛岃繖涓庨鍏堝湪瀵硅瘽妗嗕腑鏀劇疆鐨勬帶浠舵槸涓嶅悓鐨勩?nbsp; //CButton *p_MyBtn[3];//涓轟簡鍦ㄥ悗闈㈤噴鏀捐祫婧愶紝鏀逛負鍦ㄧ被澶存枃浠朵腑澹版槑涓?/span> //鍏湁鍙橀噺 浜屻佸姩鎬佹帶浠剁殑鍝嶅簲錛?/span> 銆 涓夈佸洖鏀惰祫婧愶細 CMonthCalCtrlDlg::~CMonthCalCtrlDlg() p_MyBtn[0]=NULL;//鑻ラ噰鐢ㄥ叾浠栨柟寮忛噴鏀撅紝鍒欏姞涓婅繖鍙ワ紝鍚﹀垯浼氬嚭閿?br /> }
鐢變簬榪欎釜鍗氬浠呴檺浜巆++鏂歸潰銆傜洰鍓嶈繘琛屾垜鐨勫崥瀹㈣漿縐誨埌csdn
]]>
銆銆涓銆佸垱寤哄姩鎬佹帶浠訛細
銆銆涓轟簡瀵圭収錛屾垜浠厛鏉ョ湅涓涓嬮潤鎬佹帶浠剁殑鍒涘緩銆?br />
銆銆鏀劇疆闈欐佹帶浠舵椂蹇呴』鍏堝緩绔嬩竴涓鍣紝涓鑸槸瀵硅瘽妗嗭紝榪欐椂鎴戜滑鍦ㄥ璇濇緙栬緫紿楀彛涓紝浠庡伐鍏風獥鍙d腑鎷栧嚭鎵闇鎺т歡鏀懼湪瀵硅瘽妗嗕腑鍗沖彲錛屽啀閫傚綋淇敼鎺т歡ID錛岃緗帶浠跺睘鎬э紝涓涓潤鎬佹帶浠跺氨鍒涘緩濂戒簡錛屽綋瀵硅瘽妗嗚鏄劇ず鏃訛紝鍏朵笂鐨勬帶浠朵篃浼氭樉紺恒?br />
銆銆闈欐佹帶浠朵笉闇瑕佽皟鐢–reate()鍑芥暟鏉ュ垱寤恒?br />
銆銆鑰屽垱寤哄姩鎬佹帶浠舵湁寰堝ぇ涓嶅悓錛屼互涓嬩互鎸夐挳涓轟緥錛岀湅涓涓嬪姩鎬佹帶浠剁殑鍒涘緩榪囩▼錛?br />
銆銆1.寤虹珛鎺т歡ID鍙鳳細
銆銆ID鍙鋒槸鎺т歡鐨勬爣璇嗭紝鍒涘緩鎺т歡鍓嶅繀欏誨厛涓哄畠璁劇疆涓涓狪D鍙楓?br />
銆銆鎵撳紑璧勬簮涓殑“String Table”錛屽湪絀虹櫧琛屼笂鍙屽嚮榧犳爣錛岃繖鏃朵細寮瑰嚭涓涓狪D灞炴у璇濇錛屽湪鍏朵腑鐨処D緙栬緫妗嗕腑杈撳叆ID錛屽錛欼DC_MYBUTTON錛屽湪Caption涓緭鍏ユ帶浠舵爣棰樻垨娉ㄨВ錛堟敞錛欳aption妗嗕笉鑳戒負絀猴紝涓虹┖浼氬鑷村垱寤哄け璐ワ級錛岃繖閲屾垜杈撳叆鐨勬槸鎸夐挳涓婅鏄劇ず鐨勬枃瀛?-鍔ㄦ佹寜閽?br />
銆銆2.寤虹珛鎺т歡瀵硅薄錛?br />
銆銆涓嶅悓縐嶇被鐨勬帶浠跺簲鍒涘緩涓嶅悓鐨勭被瀵硅薄錛?br />
銆銆·鎸夐挳鎺т歡 CButton 錛堝寘鎷櫘閫氭寜閽佸崟閫夋寜閽拰澶嶉夋寜閽級
銆銆·緙栬緫鎺т歡 CEdit
銆銆·闈欐佹枃鏈帶浠?CStatic
銆銆·鏍囩鎺т歡 CTabCtrl
銆銆·鏃嬭漿鎺т歡 CSpinButtonCtrl
銆銆·婊戞爣鎺т歡 CSliderCtrl
銆銆·澶氫俊鎭紪杈戞帶浠?CRichEditCtrl
銆銆·榪涘害鏉℃帶浠?CProgressCtrl
銆銆·婊氬姩鏉℃帶浠?CSrcollBar
銆銆·緇勫悎妗嗘帶浠?CComboBox
銆銆·鍒楄〃妗嗘帶浠?CListBox
銆銆·鍥懼儚鍒楄〃鎺т歡 CImageCtrl
銆銆·鏍戠姸鎺т歡 CTreeCtrl
銆銆·鍔ㄧ敾鎺т歡 CAnimateCtrl
銆銆鏈緥涓垜浠垱寤轟竴涓狢Button綾葷殑鏅氭寜閽傛敞鎰忎笉鑳界洿鎺ュ畾涔塁Button瀵硅薄錛屽錛欳Button m_MyBut;榪欑瀹氫箟鍙兘鐢ㄦ潵緇欓潤鎬佹帶浠跺畾涔夋帶鍒跺彉閲忥紝涓嶈兘鐢ㄤ簬鍔ㄦ佹帶浠躲?br />
銆銆姝g‘鍋氭硶鏄敤new璋冪敤CButton鏋勯犲嚱鏁扮敓鎴愪竴涓疄渚嬶細CButton *p_MyBut = new CButton();
銆銆鐒跺悗鐢–Button綾葷殑Create()鍑芥暟鍒涘緩錛岃鍑芥暟鍘熷瀷濡備笅錛?br />BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
銆銆lpszCaption鏄寜閽笂鏄劇ず鐨勬枃鏈紱dwStyle鎸囧畾鎸夐挳椋庢牸錛屽彲浠ユ槸鎸夐挳椋庢牸涓庣獥鍙i鏍肩殑緇勫悎錛屽彇鍊兼湁錛?br />
銆銆紿楀彛椋庢牸錛?br />
銆銆·WS_CHILD 瀛愮獥鍙o紝蹇呴』鏈?br />銆銆·WS_VISIBLE 紿楀彛鍙錛屼竴鑸兘鏈?br />銆銆·WS_DISABLED 紱佺敤紿楀彛錛屽垱寤哄垵濮嬬姸鎬佷負鐏拌壊涓嶅彲鐢ㄧ殑鎸夐挳鏃朵嬌鐢?br />銆銆·WS_TABSTOP 鍙敤Tab閿夋嫨
銆銆·WS_GROUP 鎴愮粍錛岀敤浜庢垚緇勭殑鍗曢夋寜閽腑鐨勭涓涓寜閽?br />
銆銆鎸夐挳椋庢牸錛?br />
銆銆·BS_PUSHBUTTON 涓嬪帇寮忔寜閽紝涔熷嵆鏅氭寜閽?br />銆銆·BS_AUTORADIOBUTTON 鍚嚜鍔ㄩ変腑鐘舵佺殑鍗曢夋寜閽?br />銆銆·BS_RADIOBUTTON 鍗曢夋寜閽紝涓嶅父鐢?br />銆銆·BS_AUTOCHECKBOX 鍚嚜鍔ㄩ変腑鐘舵佺殑澶嶉夋寜閽?br />銆銆·BS_CHECKBOX 澶嶉夋寜閽紝涓嶅父鐢?br />銆銆·BS_AUTO3STATE 鍚嚜鍔ㄩ変腑鐘舵佺殑涓夋佸閫夋寜閽?br />銆銆·BS_3STATE 涓夋佸閫夋寜閽紝涓嶅父鐢?br />銆
銆銆浠ヤ笂椋庢牸鎸囧畾浜嗗垱寤虹殑鎸夐挳綾誨瀷錛屼笉鑳藉悓鏃朵嬌鐢紝浣嗗繀欏繪湁鍏朵竴銆?br />
銆銆·BS_BITMAP 鎸夐挳涓婂皢鏄劇ず浣嶅浘
銆銆·BS_DEFPUSHBUTTON 璁劇疆涓洪粯璁ゆ寜閽紝鍙敤浜庝笅鍘嬪紡鎸夐挳錛屼竴涓璇濇涓彧鑳芥寚瀹氫竴涓粯璁ゆ寜閽?br />銆銆·rect鎸囧畾鎸夐挳鐨勫ぇ灝忓拰浣嶇疆錛?br />銆銆·pParentWnd鎸囩ず鎷ユ湁鎸夐挳鐨勭埗紿楀彛錛屼笉鑳戒負NULL錛?br />銆銆·nID鎸囧畾涓庢寜閽叧鑱旂殑ID鍙鳳紝鐢ㄤ笂涓姝ュ垱寤虹殑ID鍙楓?br />
銆銆涓嶅悓鎺т歡綾葷殑Create()鍑芥暟鐣ユ湁涓嶅悓錛屽彲鍙傝冪浉鍏寵祫鏂欍?br />
銆銆渚嬶細p_MyBut->Create( "鍔ㄦ佹寜閽?, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(20,10,80,40), this, IDC_MYBUTTON );
榪欐牱錛屾垜浠氨鍦ㄥ綋鍓嶅璇濇涓殑(20,10)澶勫垱寤轟簡瀹?0錛岄珮30錛屾寜閽枃瀛椾負“鍔ㄦ佹寜閽?#8221;鐨勪笅鍘嬪紡鎸夐挳銆?br />
銆銆涓轟簡浣垮垱寤鴻繃紼嬫洿鏂逛究鏄撶敤錛屾垜瀹氫箟浜嗗涓嬪嚱鏁幫細CButton* CTextEditorView::NewMyButton(int nID,CRect rect,int nStyle)
{
CString m_Caption;
m_Caption.LoadString( nID ); //鍙栨寜閽爣棰?br />CButton *p_Button = new CButton();
ASSERT_VALID(p_Button);
p_Button->Create( m_Caption, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | nStyle, rect, this, nID ); //鍒涘緩鎸夐挳
return p_Button;
}
銆銆鍏朵腑m_Caption.LoadString( nID )鏄粠瀛楃涓茶〃涓鍙栨寜閽枃鏈紝榪欐牱鍦ㄥ垱寤烘寜閽甀D鏃訛紝搴旇鎶婃枃鏈緗ソ錛屽弬鏁皀Style涓洪櫎蹇呴』椋庢牸澶栫殑棰濆椋庢牸銆?br />
銆銆浠ヤ笅錛岃皟鐢ㄨ鍑芥暟鍦∣NINIATIAL涓垱寤轟笁涓寜閽紝騫舵寚瀹氱涓涓寜閽負榛樿鎸夐挳錛屾寜閽殑ID鍦⊿TRING TABLE涓凡棰勫厛璁劇疆濂戒簡錛?br />
p_MyBtn[0]=NewMyButton(ID_MYBTN1,CRect(10,20,60,40),BS_DEFPUSHBUTTON);
p_MyBtn[1]=NewMyButton(ID_MYBTN2,CRect(10,50,60,70),0);
p_MyBtn[2]=NewMyButton(ID_MYBTN3,CRect(10,80,60,100),0);
銆銆鍔ㄦ佹帶浠剁殑鍝嶅簲鍑芥暟涓嶈兘鐢–lassWizard娣誨姞錛屽彧鑳芥墜鍔ㄦ坊鍔犮備粛浠ヤ笂闈㈢殑鎸夐挳涓轟緥錛屾垜浠埗浣滄寜閽殑鍗曞嚮鍝嶅簲鍑芥暟銆?br />
銆銆1.鍦∕ESSAGE_MAP涓坊鍔犲搷搴斿嚱鏁幫細
銆銆MESSAGE_MAP琛ㄤ腑瀹氫箟浜嗘秷鎭搷搴斿嚱鏁幫紝鍏舵牸寮忎負錛氭秷鎭悕(ID,鍑芥暟鍚?錛屽綋鎴戜滑鐢–lassWizard娣誨姞鍑芥暟鏃訛紝浼氳嚜鍔ㄦ坊鍔犲湪AFX_MSG_MAP鎷搗鐨勫尯闂村唴錛屽錛?br />BEGIN_MESSAGE_MAP(CTextEditorView, CFormView)
//{{AFX_MSG_MAP(CTextEditorView)
ON_BN_CLICKED(IDC_ICONBUT0, OnIconbut0)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
銆銆鎵嬪伐娣誨姞鏃朵笉瑕佹坊鍔犲埌AFX_MSG_MAP鍖洪棿鍐咃紝浠ラ槻ClassWizard涓嶈兘姝e父宸ヤ綔錛屽錛?nbsp;BEGIN_MESSAGE_MAP(CTextEditorView, CFormView)
//{{AFX_MSG_MAP(CTextEditorView)
ON_BN_CLICKED(IDC_ICONBUT0, OnIconbut0)
//}}AFX_MSG_MAP
ON_BN_CLICKED(ID_MYBTN1, OnMybtn1)
ON_BN_CLICKED(ID_MYBTN2, OnMybtn2)
ON_BN_CLICKED(ID_MYBTN3, OnMybtn3)
END_MESSAGE_MAP()
銆銆鍏朵腑ON_BN_CLICKED鏄寜閽崟鍑繪秷鎭?br />
銆銆2.鍦ㄥご鏂囦歡涓坊鍔犲嚱鏁板畾涔夛細
銆銆鐢–lassWizard娣誨姞鍑芥暟鏃訛紝浼氬湪澶存枃浠剁殑AFX_MSG鍖洪棿鍐呮坊鍔犲嚱鏁板畾涔夛紝濡傦細 protected:
//{{AFX_MSG(CTextEditorView)
afx_msg void OnIconbut0();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
銆銆鎴戜滑妯′豢榪欑褰㈠紡錛屽彧鏄妸鍑芥暟瀹氫箟娣誨姞鍒癆FX_MSG鍖洪棿澶栧氨琛屼簡錛?br />protected:
//{{AFX_MSG(CTextEditorView)
afx_msg void OnIconbut0();
//}}AFX_MSG
afx_msg void OnMybtn1();
afx_msg void OnMybtn2();
afx_msg void OnMybtn3();
DECLARE_MESSAGE_MAP()
銆銆3.緙栧啓娑堟伅鍝嶅簲鍑芥暟錛?br />
銆銆浠ヤ笂鏄妸娑堟伅鍜屽嚱鏁板叧鑱旇搗鏉ヤ簡錛屽叿浣撳湪鍗曞嚮鎸夐挳鍚庡簲鍋氱殑宸ヤ綔鍦ㄥ嚱鏁頒腑瀹屾垚錛?nbsp;void CTextEditorView::OnMybtn1()
{
MessageBox( "鍝堬紒浣犲崟鍑諱簡鍔ㄦ佹寜閽? );
}
void CTextEditorView::OnMybtn2()
{
……
}
void CTextEditorView::OnMybtn3()
{
……
}
銆銆闄や簡鎸夐挳鐨勫搷搴斿嚱鏁板錛屼綘榪樺彲浠ョ敤涓婇潰鑾峰緱鐨勬寚閽堣闂寜閽紝濡傦細
銆銆淇敼鎸夐挳鐨勫ぇ灝忓拰浣嶇疆錛歱_MyBtn[0]->MoveWindow(……);
銆銆淇敼鎸夐挳鏂囨湰錛歱_MyBtn[0]->SetWindowText(……);
銆銆鏄劇ず/闅愯棌鎸夐挳錛歱_MyBtn[0]->ShowWindow(……);絳夌瓑銆?br />
銆銆鐢變簬鍔ㄦ佹帶浠跺璞℃槸鐢眓ew鐢熸垚鐨勶紝瀹冧笉浼氳紼嬪簭鑷姩閲婃斁錛屾墍浠ラ渶鎵嬪伐閲婃斁銆傚湪鎺т歡涓嶅啀浣跨敤鏃跺彲浠ュ垹闄ゅ畠錛屽湪瀵硅瘽妗嗕腑鐨勬瀽鏋勫嚱鏁頒腑閿姣侊紙鏋愭瀯鍑芥暟娌℃湁鎵嬪姩娣誨姞錛夛細
{
for(int i=0;i<3;i++)
{if(p_MyBtn[i])
delete p_MyBtn[i];
}
銆銆浠ヤ笂灝辨槸鎸夐挳鎺т歡鍔ㄦ佺敓鎴愮殑鏂規硶銆?/p>
]]>
鍦ㄧ被鐨勫畾涔変腑錛屽畾涔夊涓嬪彉閲?/span>
閭d箞鍦ㄧ被鐨勬垚鍛樺嚱鏁頒腑灝卞彲浠ヤ嬌鐢ㄤ簡濡備笅鏉ュ垱寤烘寜閽?/span>
娉紝鍒涘緩絎簩嬈$殑鏃跺欎細鍑洪敊銆傛墍浠ヨ鐢ㄣ?/span>
鏉ラ噴鏀懼啀榪涜鍒涘緩銆?/span>
鍊熺敱榪欎釜鍔ㄦ佸垱寤猴紝寮勬竻浜嗕竴浜汳FC鐨勬瀯鏋訛紝MFC鏄熀浜庢墍鏈夌殑綾昏屽緱鍑虹殑鎴愭灉錛屼竴涓被媧劇敓涓庡彟涓涓熀綾伙紝浠嶤Wnd鍒癈Dialog灝辨槸涓涓緢濂界殑渚嬪瓙銆侰Dialog媧劇敓涓嶤Wnd銆?/span>
濡傛灉鎴戣鍒涘緩涓涓寜閽紝灝卞繀欏葷敤CDialog瀹氫箟涓涓柊鐨勫彉閲忥紝榪欎釜鍙橀噺灝辨垚浜嗕竴涓寜閽紝鎴戝氨鍙互鍒╃敤榪欎釜鎸夐挳綾昏繘琛?鍚勭被鎿嶄綔錛屼緥濡傚畾涔夊叾鐨勫ぇ灝忥紝椋庢牸銆?/span>
鐨嗙敱姝ゅ彲瑙侊紝鎵鏈夌殑紿楀彛閮芥槸涓涓被瀹氫箟鏉ョ殑銆傛棤璁烘槸鎸夐挳錛屾爣絳撅紝ComBox錛孡ist絳夌瓑錛岄兘鍙互浣跨敤榪欎釜鏂規硶榪涜鍒涘緩銆?/span>
鍦ㄧ紪杈戜唬鐮佹柟闈紝VC涓嶸B灝辨湁浜嗭紝瀵逛簬鐢ㄦ埛鏉ヨ錛屽氨鏈変簡鏈川涓婄殑宸埆錛孷B鐨勬垨璁告洿鍔犳柟渚匡紝鑰孷C闇瑕佸鐞嗙殑緇嗚妭澶浜嗐?br />
//鍒涘緩鎸夐挳
CButton *m_pBt1 = new CButton();
ASSERT_VALID(m_pBt1);
m_pBt1-> Create(_T("榪涘叆[A]"), WS_GROUP ¦WS_CHILD ¦WS_VISIBLE ¦BS_PUSHBUTTON, CRect(10,10,20,20), this, IDC_AUTOCUT_POSTEACH );
m_pBt1-> MoveWindow(0, 152, 100, 100);
//淇敼椋庢牸
HWND hwnd=m_pBt1-> GetSafeHwnd();
long lStyle=GetWindowLong(hwnd,GWL_EXSTYLE);
SetWindowLong(hwnd,GWL_EXSTYLE,lStyle ¦WS_EX_DLGMODALFRAME);
::SetWindowPos(hwnd,0, 12, 55, 55, 111, SWP_NOREPOSITION ¦SWP_NOACTIVATE ¦SWP_NOMOVE ¦SWP_FRAMECHANGED);