免费97视频在线精品国自产拍|亚洲就去吻婷婷永久网|香蕉视观看在线a|日本精品AⅤ在线观看

<dl id="aauvq"></dl>
<blockquote id="aauvq"></blockquote>
<thead id="aauvq"></thead>

<dl id="aauvq"><noframes id="aauvq"></noframes></dl>

           找回密碼
           注冊

          QQ登錄

          只需一步,快速開始

          未公開API函數(shù)揭秘——通用對話框

          [復(fù)制鏈接]
          1#
          發(fā)表于 2008-9-28 16:29:36 | 只看該作者 |倒序瀏覽 |閱讀模式
          <P class=MsoNormal><SPAN lang=EN-US>COMDLG32.DLL </SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">為我們提供了一些很有用的對話框,但是仍然有部分我們可能會用到的系統(tǒng)對話框它卻沒有提供。如果試圖復(fù)制這些系統(tǒng)對話框?qū)⑹且患闊┑目嗖钍?。幸?lt;/SPAN><SPAN lang=EN-US>shell32.dll</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">為我們提供了這些對話框,本文將帶你去發(fā)掘一些未公開的</SPAN><SPAN lang=EN-US>API</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函數(shù),以實現(xiàn)這些對話框。</SPAN></P>
          " Z9 y$ A, ~# Y; S3 p- [5 C) I, x# V<P class=MsoNormal><SPAN lang=EN-US>&nbsp;<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
          2 Q0 d: s& U7 Z: s$ U' S0 \; |- Q<P class=MsoNormal><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在使用未公開的</SPAN><SPAN lang=EN-US>API</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函數(shù)之前,你必須知道聲明未公開的</SPAN><SPAN lang=EN-US>API</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函數(shù)與聲明那些公開的</SPAN><SPAN lang=EN-US>API</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函數(shù)略有不同,那就是,你必須用到未公開</SPAN><SPAN lang=EN-US>API</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函數(shù)的順序號</SPAN><SPAN lang=EN-US>(ordinal number)</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。這個順序號就是未公開函數(shù)的別名。也就是說在聲明未公開</SPAN><SPAN lang=EN-US>API</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函數(shù)時,必須加上它的別名。例如下面要說到的</SPAN><SPAN lang=EN-US>PickIconDlg</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函數(shù)的順序號為</SPAN><SPAN lang=EN-US>62</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">,它的別名就是</SPAN><SPAN lang=EN-US>"#62"</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。如果不這樣做,系統(tǒng)會提示你找不到函數(shù)的入口點。</SPAN></P>
          6 W/ c/ {" ?0 u3 W2 {! X<P class=MsoNormal><SPAN lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
          ! h, D0 d: t$ u% v<P class=MsoNormal><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">選取圖標</SPAN></P>
          ; k: y3 O/ p# U! [<P class=MsoNormal><SPAN lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>6 P' K, Y& O# R" r
          <P class=MsoNormal><SPAN lang=EN-US>BOOL WINAPI PickIconDlg(</SPAN></P>  c3 z, W% Y! c* M! f- w2 |
          <P class=MsoNormal><SPAN lang=EN-US>HWND hwndOwner, </SPAN></P>, W% y0 t6 O; C9 ?1 ~
          <P class=MsoNormal><SPAN lang=EN-US>LPSTR lpstrFile, </SPAN></P>
            ?( P, }! r, r2 y' }+ T<P class=MsoNormal><SPAN lang=EN-US>DWORD nMaxFile, </SPAN></P>% h+ y  B! |4 q  |- q& l
          <P class=MsoNormal><SPAN lang=EN-US>LPDWORD lpdwIconIndex);</SPAN></P>
          - O/ i" \1 P4 ?<P class=MsoNormal><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">該函數(shù)的順序號為</SPAN><SPAN lang=EN-US>62</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</SPAN></P>- y" a. |* _  U, a- B
          <P class=MsoNormal><SPAN lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
          3 T4 _5 w- w: s0 S! I4 a% g<P class=MsoNormal><SPAN lang=EN-US>hwndOwner</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">擁有該對話框的窗口句柄</SPAN><SPAN lang=EN-US> lpstrFile</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">指向一個緩沖,包含初始的文件名。函數(shù)返回后它就包含新的文件名。</SPAN><SPAN lang=EN-US>nMaxFile</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">指定緩沖的大小,以字符為單位。</SPAN><SPAN lang=EN-US> lpdwIconIndex</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">指向一個變量其中包含基于零的圖標的索引。函數(shù)返回后它包含新圖標的索引值。</SPAN> <SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果用戶選擇了圖標,則返回值為真,如果用戶選擇取消按鈕或是系統(tǒng)菜單的關(guān)閉選項則返回值為假。</SPAN></P>
          ! l+ a0 q8 @7 Z" f; N) B; k9 b+ C7 B4 \<P class=MsoNormal><SPAN lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
          + ]) {3 f) g* S7 e: A4 G; o. z<P class=MsoNormal><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">運行程序?qū)υ捒?lt;/SPAN></P>
          2 I( L  o8 ]9 e. M1 ]: o<P class=MsoNormal><SPAN lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
          ; J, a: G7 Q3 r+ t! {2 x<P class=MsoNormal><SPAN lang=EN-US>void WINAPI RunFileDlg(</SPAN></P>
          & S1 K2 X! p, I& q6 t4 }, Y<P class=MsoNormal><SPAN lang=EN-US>HWND hwndOwner, </SPAN></P>
          ; @& V4 l: ^5 C; U- X<P class=MsoNormal><SPAN lang=EN-US>HICON hIcon, </SPAN></P>: M2 h4 {1 n& s; A3 M0 r( V
          <P class=MsoNormal><SPAN lang=EN-US>LPCSTR lpstrDirectory, </SPAN></P>
          1 E- K" E/ X5 ?3 l6 E9 ~. \% p9 U<P class=MsoNormal><SPAN lang=EN-US>LPCSTR lpstrTitle, </SPAN></P>1 G! m# }' {0 S- s6 C
          <P class=MsoNormal><SPAN lang=EN-US>LPCSTR lpstrDescription,</SPAN></P>
          + F: O  u/ D$ v# n<P class=MsoNormal><SPAN lang=EN-US>UINT uFlags);</SPAN></P>6 n$ b/ c& G1 H7 m  t& t
          <P class=MsoNormal><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">該函數(shù)的順序號為</SPAN><SPAN lang=EN-US>61</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。在</SPAN><SPAN lang=EN-US>VB</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中可聲明如下:</SPAN></P>! }2 o* I0 {( r& T: }$ J
          <P class=MsoNormal><SPAN lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>8 E% g# U( \& Y7 ?4 K* |7 d
          <P class=MsoNormal><SPAN lang=EN-US>Private Declare Function RunFileDlg Lib "shell32" Alias "#61" (ByVal hwndOwner As Long, ByVal hIcon As Long, ByVal lpstrDirectory As String, ByVal lpstrTitle As String, ByVal lpstrDescription As String, ByVal uFlags As Long) As Long</SPAN></P>) O# y7 \, s' c/ ~( o+ M/ H
          <P class=MsoNormal><SPAN lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>9 Z  w/ A, ~" t& C- f
          <P class=MsoNormal><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">其中</SPAN><SPAN lang=EN-US>uFlags</SPAN><SPAN style="FONT-FAMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">參數(shù)的可選值為</SPAN></P>0 g9 q6 Y, s# t8 q1 p, L! E" q
          <P class=MsoNormal><SPAN lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
          : z1 @+ k% s) z  a* K& x+ O<P class=MsoNormal><SPAN lang=EN-US>RFF_NOBROWSE 0x01 Removes the browse button. </SPAN></P>
          5 g1 h) h/ Y. w8 K<P class=MsoNormal><SPAN lang=EN-US>RFF_NODEFAULT 0x02 No default item selected. </SPAN></P>
          . p# ]; L; k: \& m<P class=MsoNormal><SPAN lang=EN-US>RFF_CALCDIRECTORY 0x04 Calculates the working directory from the file name. </SPAN></P>
          * n2 N" N5 y- O<P class=MsoNormal><SPAN lang=EN-US>RFF_NOLABEL 0x08 Removes the edit box label. </SPAN></P>4 @# r3 h: m1 g- J# D$ g) N
          <P class=MsoNormal><SPAN lang=EN-US>RFF_NOSEPARATEMEM 0x20 Removes the Separate Memory Space check box (Windows NT only). </SPAN></P>
          您需要登錄后才可以回帖 登錄 | 注冊

          本版積分規(guī)則

          QQ|本地廣告聯(lián)系: QQ:905790666 TEL:13176190456|Archiver|手機版|小黑屋|汶上信息港 ( 魯ICP備19052200號-1 )

          GMT+8, 2025-5-4 05:48

          Powered by Discuz! X3.5

          © 2001-2025 Discuz! Team.

          快速回復(fù) 返回頂部 返回列表