杩涗竴姝ュ涔犲璇濇
鍙戝竷: 2008-6-26 22:55 | 浣滆: admin | 鏌ョ湅: 3娆
杩涗竴姝ュ涔犲璇濇锛
銆銆鏈涓垜浠皢杩涗竴姝ュ涔犲璇濇銆傜壒鍒湴鎴戜滑灏嗚鎺㈣濡備綍鎶婂璇濇褰撴垚杈撳叆璁惧銆傚鏋滄偍瀛︿範浜嗕笂涓璇撅紝閭e氨浼氬彂鐜版湰璇剧殑渚嬪瓙鍙湁灏戦噺鐨勬敼鍔紝灏辨槸鎶婃垜浠殑瀵硅瘽妗嗙獥鍙i檮灞炲埌涓荤獥鍙d笂銆傚彟澶栵紝鎴戜滑杩樿瀛︿範閫氱敤瀵硅瘽妗嗙殑鐢ㄦ硶銆
鐞嗚锛
鎶婂璇濇褰撴垚涓涓緭鍏ヨ澶囨潵鐢ㄧ‘瀹炴槸闈炲父鍦扮畝鍗曪紝鍒涘缓瀹屼富绐楀彛鍚庯紝鎮ㄥ彧瑕佽皟鐢ㄥ嚱鏁 CreatedialogParam 鎴 DialogBoxParam 灏卞彲浠ヤ簡锛屽墠涓涓嚱鏁板彧瑕佸湪瀵硅瘽妗嗙殑杩囩▼澶勭悊鍑芥暟涓鐞嗙浉鍏崇殑娑堟伅灏卞彲浠ワ紝鑰屽悗鑰呬綘蹇呴』鍦ㄦ秷鎭惊鐜涓彃鍏ュ嚱鏁 IsDialogMessage 鐨勮皟鐢ㄨ瀹冩潵澶勭悊閿洏鐨勬寜閿昏緫銆傚洜涓鸿繖涓や釜绋嬪簭娈电浉瀵规潵璇存瘮杈冨鏄擄紝鎴戜滑灏变笉璇﹁В銆傛偍鍙互涓嬭浇骞朵粩缁嗙爺绌躲
涓嬮潰鎴戜滑鏉ヨ璁洪氱敤瀵硅瘽妗嗐俉INDOWS宸茬粡涓烘偍鍑嗗濂戒簡棰勫畾涔夌殑瀵硅瘽妗嗙被锛屾偍鍙互鎷挎潵灏辩敤锛岃繖浜涢氱敤瀵硅瘽妗嗘彁渚涚粰鐢ㄦ埛浠ョ粺涓鐨勭晫闈€傚畠浠寘鎷:鎵撳紑鏂囦欢銆佹墦鍗般侀夋嫨棰滆壊銆佸瓧浣撳拰鎼滅储绛夈傛偍搴旇灏藉彲鑳藉湴鐢ㄥ畠浠傚鐞嗚繖浜涘璇濇鐨勪唬鐮佸湪comdlg32.dll涓紝涓轰簡鍦ㄦ偍鐨勫簲鐢ㄧ▼搴忎腑浣跨敤瀹冧滑锛屽氨蹇呴』鍦ㄩ摼鎺ラ樁娈甸摼鎺ュ簱鏂囦欢 comdlg32.lib銆傜劧鍚庤皟鐢ㄥ叾涓殑鐩稿叧鍑芥暟鍗冲彲銆傚浜庢墦寮鏂囦欢閫氱敤瀵硅瘽妗嗭紝璇ュ嚱鏁板悕涓 GetOpenFileName锛"淇濆瓨涓..."瀵硅瘽妗嗕负 GetSaveFileName锛屾墦鍗伴氱敤瀵硅瘽妗嗘槸 PrintDlg锛 绛夌瓑銆傛瘡涓涓繖鏍风殑鍑芥暟閮芥帴鏀朵竴涓寚鍚戜竴涓粨鏋勪綋鐨勬寚閽堢殑鍙傛暟锛屾偍鍙互鍙傝僕IN32 API鎵嬪唽寰楀埌璇︾粏鐨勮祫鏂欙紝鏈涓垜灏嗚瑙e垱寤哄拰浣跨敤鎵撳紑鏂囦欢瀵硅瘽妗嗐
涓嬮潰鏄墦寮瀵硅瘽妗嗗嚱鏁 GetOpenFileName 鐨勫師鍨:
GetOpenFileName proto lpofn:DWORD
鎮ㄥ彲浠ョ湅鍒帮紝璇ュ嚱鏁板彧鏈変竴涓弬鏁帮紝鍗虫寚鍚戠粨鏋勪綋OPENFILENAME鐨勬寚閽堛傚綋鐢ㄦ埛閫夋嫨浜嗕竴涓枃浠跺苟鎵撳紑锛岃鍑芥暟杩斿洖TRUE锛屽惁鍒欒繑鍥濬ALSE銆傛帴涓嬫潵鎴戜滑鐪嬬湅缁撴瀯浣揙PENFILENAME鐨勫畾涔:
OPENFILENAME STRUCT
lStructSize DWORD ?
hwndOwner HWND ?
hInstance HINSTANCE ?
lpstrFilter LPCSTR ?
lpstrCustomFilter LPSTR ?
nMaxCustFilter DWORD ?
nFilterIndex DWORD ?
lpstrFile LPSTR ?
nMaxFile DWORD ?
lpstrFileTitle LPSTR ?
nMaxFileTitle DWORD ?
lpstrInitialDir LPCSTR ?
lpstrTitle LPCSTR ?
Flags DWORD ?
nFileOffset WORD ?
nFileExtension WORD ?
lpstrDefExt LPCSTR ?
lCustData LPARAM ?
lpfnHook DWORD ?
lpTemplateName LPCSTR ?
OPENFILENAME ENDS
濂斤紝鎴戜滑鍐嶆潵鐪嬬湅璇ョ粨鏋勪綋涓父鐢ㄧ殑鎴愬憳鐨勬剰涔:
lStructSize 缁撴瀯浣揙PENFILENAME鐨勫ぇ灏忋
hwndOwner 鎷ユ湁鎵撳紑瀵硅瘽妗嗙殑绐楀彛鐨勫彞鏌勩
hInstance 鎷ユ湁璇ユ墦寮鏂囦欢瀵硅瘽妗嗙殑搴旂敤绋嬪簭鐨勫疄渚嬪彞鏌 銆
lpstrFilter 浠ULL缁撳熬鐨勪竴涓垨澶氫釜閫氶厤绗︺傞氶厤绗︽槸鎴愬鍑虹幇鐨勶紝鍓嶄竴閮ㄥ垎鏄弿杩伴儴鍒嗭紝鍚庝竴閮ㄥ垎鍒欐槸閫氶厤绗︾殑鏍煎紡锛岃濡:
FilterString db "All Files (*.*)",0, "*.*",0
db "Text Files (*.txt)",0,"*.txt",0,0
娉ㄦ剰:鍙湁姣忎竴瀵逛腑鐨勭浜岄儴鍒嗘槸WINDOWS鐢ㄦ潵杩囨护鎵闇閫夋嫨鐨勬枃浠剁殑锛屽彟澶栨偍蹇呴』鍦ㄨ閮ㄥ垎鍚庢斁缃竴涓0锛屼互绀哄瓧绗︿覆鐨勭粨鏉熴
nFilterIndex 鐢ㄦ潵鎸囧畾鎵撳紑鏂囦欢瀵硅瘽妗嗙涓娆℃墦寮鏃舵墍鐢ㄧ殑杩囨护妯″紡涓诧紝璇ョ储寮曟槸浠1寮濮嬬畻鐨勶紝鍗崇涓涓氶厤绗︽ā寮忕殑绱㈠紩鏄1锛岀浜屼釜鏄2锛岃濡備笂闈㈢殑渚嬪瓙涓紝鑻ユ寚瀹氳鍊间负2锛屽垯缂虹渷鏄剧ず鐨勬ā寮忎覆灏辨槸"*.txt"銆
lpstrFile 闇瑕佹墦寮鐨勬枃浠剁殑鍚嶇О鐨勫湴鍧锛岃鍚嶇О灏嗕細鍑虹幇鍦ㄦ墦寮鏂囦欢瀵硅瘽妗嗙殑缂栬緫鎺т欢涓紝璇ョ紦鍐插尯涓嶈兘瓒呰繃260涓瓧绗﹂暱锛屽綋鐢ㄦ埛鎵撳紑鏂囦欢鍚庯紝璇ョ紦鍐插尯涓寘鍚鏂囦欢鐨勫叏璺緞鍚嶏紝鎮ㄥ彲浠ヤ粠璇ョ紦鍐插尯涓娊鍙栨偍鎵闇瑕佺殑璺緞鎴栨枃浠跺悕绛変俊鎭
nMaxFile lpstrFile鐨勫ぇ灏忋
lpstrTitle 鎸囧悜瀵硅瘽妗嗘爣棰樼殑瀛楃涓层
Flags 璇ユ爣蹇楀喅瀹氬喅瀹氫簡瀵硅瘽妗嗙殑椋庢牸鍜岀壒鐐广
nFileOffset 鍦ㄧ敤鎴锋墦寮浜嗕竴涓枃浠跺悗璇ュ兼槸鍏ㄨ矾寰勫悕绉颁腑鎸囧悜鏂囦欢鍚嶇涓涓瓧绗︾殑绱㈠紩銆傝濡:鑻ュ叏璺緞鍚嶄负"c:\windows\system\lz32.dll"锛 鍒欒鍊间负18銆
nFileExtension 鍦ㄧ敤鎴锋墦寮浜嗕竴涓枃浠跺悗璇ュ兼槸鍏ㄨ矾寰勫悕绉颁腑鎸囧悜涓枃浠舵墿灞曞悕绗竴涓瓧绗︾殑绱㈠紩銆
渚嬪瓙:
涓嬩緥涓紝鎴戜滑婕旂ず浜嗗綋鐢ㄦ埛閫夋嫨"File->Open"鏃讹紝灏嗗脊鍑轰竴涓墦寮鏂囦欢瀵硅瘽妗嗭紝褰撶敤鎴烽夋嫨浜嗘煇涓枃浠舵墦寮鏃讹紝浼氬脊鍑轰竴涓璇濇锛屽憡鐭ヨ鎵撳紑鐨勬枃浠剁殑鍏ㄨ矾寰勫悕锛屾枃浠跺悕鍜屾枃浠舵墿灞曞悕銆
.386
.model flat,stdcall
option casemap:none
WinMain proto :DWORD,:DWORD,:DWORD,:DWORD
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\comdlg32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\comdlg32.lib
.const
IDM_OPEN equ 1
IDM_EXIT equ 2
MAXSIZE equ 260
OUTPUTSIZE equ 512




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











