vcmfc編程實例
VC6.0自帶的一個ActiveX控制項---ActiveMovieControl Object來編輯多媒體播放器
步驟如下:
1. 打開VC6.0,在Projects下選擇MFC AppWizard(exe),並取名MediaPlayer,然後建立基於對話框(Dialog Based)的運用程序。
2. 打開Resource View,選擇其中的對話框,打開其中的主對話框,去掉對話框上的「確定」按鈕,保留「取消」,將Caption改為「Exit」。然後再在上面加上九個按鈕,ID和Caption分別為
IDC_OPEN,Open;
IDC_PLAY,Play;
IDC_PAUSE,Pause;
IDC_STOP,Stop;
IDC_CLOSE,Close;
IDC_LOWER,<<=;
IDC_UPPER,=>>;
IDC_FULLSCREEN,Full;
IDC_REPEAT,Repeat;
再加入兩個靜態文本控制項,分別為IDC_STATIC,Volume;IDC_STATIC2,Status:Normal。
❷ VC棰勫勭悊鎸囦護涓庡畯瀹氫箟鐨勫欑敤
銆銆鍒氭帴瑙﹀埌MFC緙栫▼鐨勪漢寰寰浼氳玀FC 鍚戝肩敓鎴愮殑鍚勭嶅畯瀹氫箟鍜岄勫勭悊鎸囦護鎵鍚撳 浣嗘槸棰勫勭悊鍜屽畯瀹氫箟鍙堟槸C璇璦鐨勪竴涓寮哄ぇ宸ュ叿 浣跨敤瀹冧滑鍙浠ヨ繘琛岀畝鍗曠殑婧愪唬鐮佹帶鍒 鐗堟湰鎺у埗 棰勮︽垨鑰呭畬鎴愪竴浜涚壒孌婄殑鍔熻兘
銆銆 涓涓緇忓吀鐨勪緥瀛
銆銆浣跨敤棰勫勭悊涓庡畯瀹氫箟鏈緇忓吀鐨勪緥瀛愯帿榪囦簬鍔犲湪涓涓澶存枃浠朵腑浠ラ伩鍏嶅ご鏂囦歡琚涓ゆ$紪璇 璇曟兂榪欑嶇殑鎯呭喌 鏈変竴涓鏂囦歡headerfile h 瀹冭鍖呭惈鍦╤eaderfile h涓 鍚屾椂鍦╤eaderfile h 涓涔熻鍖呭惈浜 鐜板湪鏈変竴涓狢PP鏂囦歡 implement cpp 鍖呭惈浜唄eaderfile h 鍜宧eaderfile h
銆銆#include headerfile h
銆銆#include headerfile h
銆銆鍋囪緃eaderfile h 涓瀹氫箟浜嗕竴涓鍏ㄥ矓鍙橀噺 iglobal
銆銆int iglobal
銆銆鍦ㄧ紪璇戠殑鏃跺欑紪璇戝櫒涓ゆ$紪璇慼eaderfile 涔熷氨浼氬彂鐜癷global琚瀹氫箟浜嗕袱嬈 榪欐椂灝變細鍙戠敓鍙橀噺閲嶅畾涔夌殑緙栬瘧閿欒
銆銆浼犵粺鐨勮В鍐沖姙娉曟槸浣跨敤#ifdef 浠ュ強#endif 鏉ラ伩鍏嶅ご鏂囦歡鐨勯噸澶嶇紪璇 鍦ㄤ笂闈㈢殑渚嬪瓙涓 鍙闇瑕佸姞涓婅繖涔堝嚑琛
銆銆#ifndef *** artnose_ _ _ _headerfile_h
銆銆#define *** artnose_ _ _ _headerfile_h
銆銆int iglobal
銆銆#endif
銆銆浠旂粏鐨勮冭檻涓婇潰鐨勫畯瀹氫箟 浼氬彂鐜板綋緙栬瘧鍣ㄧ紪璇戣繃涓嬈headerfile h浠ュ悗 *** artnose_ _ _ _headerfile_h 榪欎釜瀹忓氨琚瀹氫箟浜 浠ュ悗瀵筯eaderfile h鐨勭紪璇戦兘浼氳煩榪噄nt iglobal 榪欎竴琛 褰撶劧 *** artnose_ _ _ _headerfile_h 榪欎釜瀹忔槸鍙浠ヤ換鎰忓畾涔夌殑 浣嗘槸榪欎釜瀹忔湰韜涓嶈兘鍜屽叾瀹冩枃浠朵腑瀹氫箟鐨勫畯閲嶅 鎵浠MFC鍦ㄨ嚜鍔ㄧ敓鎴愮殑鏂囦歡涓鎬繪槸浣跨敤涓涓闅忔満浜х敓鐨勯暱搴﹂潪甯擱暱鐨勫畯 浣嗘垜瑙夊緱榪欐病鏈夊繀瑕 鎴戝緩璁鍦ㄨ繖涓瀹忎腑鍔犲叆涓浜涙湁鎰忎箟鐨勪俊鎮 姣旀柟浣滆 鏂囦歡鍚 鏂囦歡鍒涘緩鏃墮棿絳夌瓑 鍥犱負鎴戜滑鏈夋椂鍊欎細蹇樿板湪娉ㄩ噴涓鍔犲叆榪欎簺淇℃伅
銆銆鍦╒C Net 涓鎴戜滑涓嶄細鍐嶇湅瑙佽繖浜涘畯瀹氫箟浜 鍥犱負鍦ㄨ繖閲屼細鏅閬嶄嬌鐢ㄤ竴涓棰勫勭悊鎸囦護
銆銆#pragma once
銆銆鍙瑕佸湪澶存枃浠剁殑鏈寮濮嬪姞鍏ヨ繖鏉℃寚浠ゅ氨鑳藉熶繚璇佸ご鏂囦歡琚緙栬瘧涓嬈 榪欐潯鎸囦護瀹為檯涓婂湪VC 涓灝卞凡緇忔湁浜 浣嗘槸鑰冭檻鍒板吋瀹規у苟娌℃湁澶澶氱殑浣跨敤瀹
銆銆 婧愪唬鐮佺増鏈鎺у埗
銆銆褰撴垜浠涓鴻稿氬鉤鍙板紑鍙戝氫釜鐗堟湰鐨勬椂鍊欓勭紪璇戞寚浠ゅ拰瀹忓畾涔変篃鑳藉熷府鎴戜滑鐨勫繖 鍋囪炬垜浠鐜板湪涓篧INDOWS 鍜孡INUX寮鍙戜簡涓濂楄蔣浠 鐢變簬榪欎袱縐嶇郴緇熺殑涓嶅悓 鎴戜滑涓嶅緱涓嶅湪紼嬪簭鎺у埗婧愪唬鐮佺殑鐗堟湰 姣旀柟鍐呭瓨鐨勫垎閰 鎴戜滑鍙浠ュ湪LINUX涓婁嬌鐢ㄦ爣鍑咰鐨刴alloc 鍑芥暟 浣嗘槸鎴戜滑甯屾湜鍦 WINDOWS涓婁嬌鐢℉eapAlloc API 涓嬮潰鐨勪唬鐮佹紨紺轟簡榪欑嶆儏鍐
銆銆main錛堬級
銆銆{
銆銆鈥︹︹︹︹︹︹︹
銆銆#ifdef _WINDOWS_PLATFORM
銆銆HeapAlloc錛 錛
銆銆#else
銆銆malloc錛 錛
銆銆#endif
銆銆鈥︹︹︹︹︹︹︹
銆銆}
銆銆褰撴垜浠鍦╓INDOWS 騫沖彴涓婄紪璇戞ょ▼搴忕殑鏃跺 鍙闇瑕佸畾涔塤WINDOWS_PLATFORM榪欎釜瀹 閭d箞HeapAlloc榪欐潯璇鍙ュ氨鑳藉熻搗浣滅敤浜 榪欐牱灝辮兘澶熻╂垜浠鍦ㄥ悓涓涓鏂囦歡涓涓轟笉鍚岀殑騫沖彴瀹炵幇涓嶅悓鐗堟湰鐨勪唬鐮 鍚屾椂淇濇寔紼嬪簭鐨勮壇濂界粨鏋 鍦ㄨ稿氭儏鍐典笅 鎴戜滑榪樺彲浠ヤ負涓涓鏂規硶浣跨敤涓嶅悓鐨勭畻娉 鐒跺悗鐢ㄥ畯瀹氫箟鏉ラ拡瀵逛笉鍚岀殑鎯呭喌閫夋嫨鍏朵腑鐨勪竴涓榪涜岀紪璇 榪欏湪MFC搴旂敤紼嬪簭涓鏄浣跨敤寰楁渶澶氱殑 鏈鏄庢樉鐨勫氨鏄鏂囦歡涓緇忓父瀛樺湪鐨
銆銆#ifdef _DEBUG
銆銆鈥︹︹︹︹︹︹︹ some code鈥︹︹︹︹
銆銆#endif
銆銆榪欐牱鐨勪唬鐮 榪欎簺浠g爜鍦ㄥ簲鐢ㄧ▼搴忕殑璋冭瘯鐗堬紙DEBUG錛変腑浼氬彂鎸ュ叾浣滅敤
銆銆#Pragma 鎸囦護
銆銆鍦ㄦ墍鏈夌殑棰勫勭悊鎸囦護涓 #Pragma 鎸囦護鍙鑳芥槸鏈澶嶆潅鐨勪簡 瀹冪殑浣滅敤鏄璁懼畾緙栬瘧鍣ㄧ殑鐘舵佹垨鑰呮槸鎸囩ず緙栬瘧鍣ㄥ畬鎴愪竴浜涚壒瀹氱殑鍔ㄤ綔 鍏舵牸寮忎竴鑸涓
銆銆#Pragma Para
銆銆鍏朵腑Para 涓哄弬鏁 涓嬮潰鏉ョ湅涓浜涘父鐢ㄧ殑鍙傛暟
銆銆message 鍙傛暟 Message 鍙傛暟鏄鎴戞渶鍠滄㈢殑涓涓鍙傛暟 瀹冭兘澶熷湪緙栬瘧淇℃伅杈撳嚭紿楀彛涓杈撳嚭鐩稿簲鐨勪俊鎮 榪欏逛簬婧愪唬鐮佷俊鎮鐨勬帶鍒舵槸闈炲父閲嶈佺殑 鍏朵嬌鐢ㄦ柟娉曚負
銆銆#Pragma message錛 娑堟伅鏂囨湰 錛
銆銆褰撶紪璇戝櫒閬囧埌榪欐潯鎸囦護鏃跺氨鍦ㄧ紪璇戣緭鍑虹獥鍙d腑灝嗘秷鎮鏂囨湰鎵撳嵃鍑烘潵
銆銆褰撴垜浠鍦ㄧ▼搴忎腑瀹氫箟浜嗚稿氬畯鏉ユ帶鍒舵簮浠g爜鐗堟湰鐨勬椂鍊 鎴戜滑鑷宸辨湁鍙鑳介兘浼氬繕璁版湁娌℃湁姝g『鐨勮劇疆榪欎簺瀹 姝ゆ椂鎴戜滑鍙浠ョ敤榪欐潯鎸囦護鍦ㄧ紪璇戠殑鏃跺欏氨榪涜屾鏌 鍋囪炬垜浠甯屾湜鍒ゆ柇鑷宸辨湁娌℃湁鍦ㄦ簮浠g爜鐨勪粈涔堝湴鏂瑰畾涔変簡_X 榪欎釜瀹忓彲浠ョ敤涓嬮潰鐨勬柟娉
銆銆#ifdef _X
銆銆#Pragma message錛 _X macro activated錛 錛
銆銆#endif
銆銆褰撴垜浠瀹氫箟浜哶X 榪欎釜瀹忎互鍚 搴旂敤紼嬪簭鍦ㄧ紪璇戞椂灝變細鍦ㄧ紪璇戣緭鍑虹獥鍙i噷鏄劇ず _X macro activated錛 鎴戜滑灝變笉浼氬洜涓轟笉璁板緱鑷宸卞畾涔夌殑涓浜涚壒瀹氱殑瀹忚屾姄鑰蟲尃鑵浜
銆銆鍙︿竴涓浣跨敤寰楁瘮杈冨氱殑pragma鍙傛暟鏄痗ode_seg 鏍煎紡濡
銆銆#pragma code_seg錛 [ section name [ section class ] ] 錛
銆銆瀹冭兘澶熻劇疆紼嬪簭涓鍑芥暟浠g爜瀛樻斁鐨勪唬鐮佹 褰撴垜浠寮鍙戦┍鍔ㄧ▼搴忕殑鏃跺欏氨浼氫嬌鐢ㄥ埌瀹
銆銆鏈鍚庝竴涓姣旇緝甯哥敤鐨勫氨鏄涓婇潰鎵璇寸殑#pragma once 鎸囦護浜
銆銆 VC棰勫畾涔夌殑瀹
銆銆鍦╒C涓鏈変竴綾誨畯騫朵笉鏄鐢辯敤鎴風敤#define璇鍙ュ畾涔夌殑 鑰屾槸緙栬瘧鍣ㄦ湰韜灝辮兘澶熻瘑鍒瀹冧滑 榪欎簺瀹忕殑浣滅敤涔熸槸鐩稿綋澶х殑 璁╂垜浠鏉ョ湅絎涓涓 涔熸槸MFC涓浣跨敤寰楁渶棰戠箒鐨勪竴涓 __FILE__
銆銆褰撶紪璇戝櫒閬囧埌榪欎釜瀹忔椂灝辨妸瀹冨睍寮鎴愬綋鍓嶈緙栬瘧鏂囦歡鐨勬枃浠跺悕 濂戒簡 鎴戜滑椹涓婂氨鍙浠ユ兂鍒板彲浠ョ敤瀹冩潵鍋氫粈涔 褰撳簲鐢ㄧ▼搴忓彂鐢熼敊璇鏃 鎴戜滑鍙浠ユ姤鍛婅繖涓閿欒鍙戠敓鐨勭▼搴忎唬鐮佸湪鍝涓鏂囦歡閲 姣旀柟鍦ㄦ枃浠秚est cpp涓鏈夎繖鏍風殑浠g爜
銆銆try
銆銆{
銆銆char * p=new錛坈har[ ]錛
銆銆}
銆銆catch錛圕Exception *e 錛
銆銆{
銆銆TRACE錛 there is an error in file %s __FILE__錛
銆銆}
銆銆鍦ㄧ▼搴忚繍琛岀殑鏃跺 濡傛灉鍐呭瓨鍒嗛厤鍑虹幇浜嗛敊璇 閭d箞鍦ㄨ皟璇曠獥鍙d腑浼氬嚭鐜皌here is an error in file test cpp 榪欏彞璇 褰撶劧 鎴戜滑榪樺彲浠ユ妸榪欎釜閿欒淇℃伅鏄劇ず鍦ㄥ埆鐨勫湴鏂
銆銆濡傛灉鎴戜滑榪樿兘澶熻板綍閿欒鍙戠敓鍦ㄥ摢涓琛屽氨濂戒簡 騫歌繍鐨勬槸 涓巁_FILE__瀹忓畾涔変竴鏍 榪樻湁涓涓瀹忚板綍浜嗗綋鍓嶄唬鐮佹墍鍦ㄧ殑琛屾暟 榪欎釜瀹忔槸__LINE__ 浣跨敤涓婇潰鐨勪袱涓瀹 鎴戜滑鍙浠ュ啓鍑轟竴涓綾諱技浜嶸C鎻愪緵鐨凙SSERT璇鍙 涓嬮潰鏄鏂規硶
銆銆#define MyAssert錛坸錛
銆銆if錛堬紒錛坸錛夛級
銆銆MessageBox錛坃_FILE__ __LINE__ NULL MB_OK錛
銆銆鎴戜滑鍦ㄥ簲鐢ㄧ▼搴忎腑鍙浠ヨ薄浣跨敤ASSERT璇鍙ヤ竴鏍蜂嬌鐢ㄥ畠 鍦ㄩ敊璇鍙戠敓鏃 瀹冧細寮瑰嚭涓涓瀵硅瘽妗 鍏舵爣棰樺拰鍐呭瑰憡璇変簡鎴戜滑閿欒鍙戠敓鐨勬枃浠跺拰浠g爜琛屽彿 鏂逛究鎴戜滑鐨勮皟璇 榪欏逛簬涓嶈兘浣跨敤ASSERT璇鍙ョ殑欏圭洰鏉ヨ存槸闈炲父鏈夌敤鐨
銆銆闄や簡榪欎袱涓瀹忎互澶 榪樻湁璁板綍緙栬瘧鏃墮棿鐨刜_TIME__ 璁板綍鏃ユ湡鐨刜_DATE__ 浠ュ強璁板綍鏂囦歡淇鏀規椂闂寸殑__TIMESTAMP__瀹
銆銆浣跨敤榪欎簺棰勫畾涔夌殑瀹 鎴戜滑鍑犱箮鍙浠ョ敓鎴愬拰VC鑳藉熺敓鎴愮殑涓鏍峰畬鏁寸殑婧愪唬鐮佷俊鎮鎶ヨ〃
銆銆 緇撹
lishixin/Article/program/net/201311/13360