亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lion-tut-c11.htm

?? 內有一些代碼
?? HTM
?? 第 1 頁 / 共 2 頁
字號:
<HTML>
<head>
<link rel="stylesheet" href="../../asm.css">

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Iczelion's win32 asm tutorial</title>
</head>

<body bgcolor="#FFFFFF" background="../../images/back01.jpg">
<P align=center><FONT color=#0000ff size=+2>第十一課 進一步學習對話框</FONT></P>
<HR SIZE=1>
本課中我們將進一步學習對話框。特別地我們將要探討如何把對話框當成輸入設備。如果您學習了上一課,那就會發現本課的例子只有少量的改動,就是把我們的對話框窗口附屬到主窗口上。另外,我們還要學習通用對話框的用法。 

<H3><FONT 
color=#ff0000>理論:</FONT></H3>
把對話框當成一個輸入設備來用確實是非常地簡單,創建完主窗口后,您只要調用函數 CreatedialogParam 或 DialogBoxParam 就可以了,前一個函數只要在對話框的過程處理函數中處理相關的消息就可以,而后者你必須在消息循環段中插入函數 
IsDialogMessage 的調用讓它來處理鍵盤的按鍵邏輯。因為這兩個程序段相對來說比較容易,我們就不詳解。您可以下載并仔細研究。<BR>
下面我們來討論通用對話框。WINDOWS已經為您準備好了預定義的對話框類,您可以拿來就用,這些通用對話框提供給用戶以統一的界面。它們包括:打開文件、打印、選擇顏色、字體和搜索等。您應該盡可能地用它們。處理這些對話框的代碼在comdlg32.dll中,為了在您的應用程序中使用它們,就必須在鏈接階段鏈接庫文件 
comdlg32.lib。然后調用其中的相關函數即可。對于打開文件通用對話框,該函數名為 GetOpenFileName,"保存為..."對話框為 GetSaveFileName,打印通用對話框是 
PrintDlg, 等等。每一個這樣的函數都接收一個指向一個結構體的指針的參數,您可以參考WIN32 API手冊得到詳細的資料,本課中我將講解創建和使用打開文件對話框。<BR>
下面是打開對話框函數 GetOpenFileName 的原型: <br>
<BR>
&nbsp; 
<BLOCKQUOTE><B>GetOpenFileName proto 
lpofn:DWORD</B></BLOCKQUOTE>
您可以看到,該函數只有一個參數,即指向結構體OPENFILENAME的指針。當用戶選擇了一個文件并打開,該函數返回TRUE,否則返回FALSE。接下來我們看看結構體OPENFILENAME的定義: 
<br>
<BR>
&nbsp; 
<BLOCKQUOTE><B>OPENFILENAME&nbsp; STRUCT</B> 
  <BLOCKQUOTE><B>&nbsp;lStructSize DWORD&nbsp; ?</B> <BR><B>&nbsp;hwndOwner 
    HWND&nbsp; ?</B> <BR><B>&nbsp;hInstance HINSTANCE ?</B> 
    <BR><B>&nbsp;lpstrFilter LPCSTR&nbsp; ?</B> <BR><B>&nbsp;lpstrCustomFilter 
    LPSTR&nbsp; ?</B> <BR><B>&nbsp;nMaxCustFilter DWORD&nbsp; ?</B> 
    <BR><B>&nbsp;nFilterIndex DWORD&nbsp; ?</B> <BR><B>&nbsp;lpstrFile 
    LPSTR&nbsp; ?</B> <BR><B>&nbsp;nMaxFile DWORD&nbsp; ?</B> 
    <BR><B>&nbsp;lpstrFileTitle LPSTR&nbsp; ?</B> <BR><B>&nbsp;nMaxFileTitle 
    DWORD&nbsp; ?</B> <BR><B>&nbsp;lpstrInitialDir LPCSTR&nbsp; ?</B> 
    <BR><B>&nbsp;lpstrTitle LPCSTR&nbsp; ?</B> <BR><B>&nbsp;Flags&nbsp; 
    DWORD&nbsp; ?</B> <BR><B>&nbsp;nFileOffset WORD&nbsp; ?</B> 
    <BR><B>&nbsp;nFileExtension WORD&nbsp; ?</B> <BR><B>&nbsp;lpstrDefExt 
    LPCSTR&nbsp; ?</B> <BR><B>&nbsp;lCustData LPARAM&nbsp; ?</B> 
    <BR><B>&nbsp;lpfnHook DWORD&nbsp; ?</B> <BR><B>&nbsp;lpTemplateName 
    LPCSTR&nbsp; ?</B></BLOCKQUOTE><B>OPENFILENAME&nbsp; 
ENDS</B></BLOCKQUOTE>好,我們再來看看該結構體中常用的成員的意義:<BR>&nbsp; 
<CENTER>
<TABLE border=1 width="100%">
  <TBODY>
  <TR>
    <TD>lStructSize</TD>
    <TD>結構體OPENFILENAME的大小。</TD></TR>
  <TR>
    <TD>hwndOwner</TD>
    <TD>擁有打開對話框的窗口的句柄。</TD></TR>
  <TR>
    <TD>hInstance</TD>
    <TD>擁有該打開文件對話框的應用程序的實例句柄
      。</TD></TR>
  <TR>
    <TD>lpstrFilter</TD>
    <TD>
      <P>以NULL結尾的一個或多個通配符。通配符是成對出現的,前一部分是描述部分,后一部分則是通配符的格式,譬如: 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; FilterString&nbsp;&nbsp; db "All Files 
      (*.*)",0, "*.*",0 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      db "Text Files (*.txt)",0,"*.txt",0,0 
      <BR>注意:只有每一對中的第二部分是WINDOWS用來過濾所需選擇的文件的,另外您必須在該部分后放置一個0,以示字符串的結束。</P></TD></TR>
  <TR>
    <TD>nFilterIndex</TD>
    <TD>用來指定打開文件對話框第一次打開時所用的過濾模式串,該索引是從1開始算的,即第一個通配符模式的索引是1,第二個是2,譬如上面的例子中,若指定該值為2,則缺省顯示的模式串就是"*.txt"。</TD></TR>
  <TR>
    <TD>lpstrFile</TD>
    <TD>需要打開的文件的名稱的地址,該名稱將會出現在打開文件對話框的編輯控件中,該緩沖區不能超過260個字符長,當用戶打開文件后,該緩沖區中包含該文件的全路徑名,您可以從該緩沖區中抽取您所需要的路徑或文件名等信息。</TD></TR>
  <TR>
    <TD>nMaxFile</TD>
    <TD>lpstrFile的大小。</TD></TR>
  <TR>
    <TD>lpstrTitle</TD>
    <TD>指向對話框標題的字符串。</TD></TR>
  <TR>
    <TD>Flags</TD>
    <TD>該標志決定決定了對話框的風格和特點。</TD></TR>
  <TR>
    <TD>nFileOffset</TD>
    <TD>在用戶打開了一個文件后該值是全路徑名稱中指向文件名第一個字符的索引。譬如:若全路徑名為"c:\windows\system\lz32.dll", 
      則該值為18。</TD></TR>
  <TR>
    <TD>nFileExtension</TD>
    <TD>在用戶打開了一個文件后該值是全路徑名稱中指向個文件擴展名第一個字符的索引。</TD></TR></TBODY></TABLE></CENTER>
<H3>&nbsp;</H3>
<H3><FONT 
color=#ff0000>例子:</FONT></H3>
下例中,我們演示了當用戶選擇"File-&gt;Open"時,將彈出一個打開文件對話框,當用戶選擇了某個文件打開時,會彈出一個對話框,告知要打開的文件的全路徑名,文件名和文件擴展名。 

<P><B>.386</B> <BR><B>.model flat,stdcall</B> <BR><B>option casemap:none</B> 
<BR><B>WinMain proto :DWORD,:DWORD,:DWORD,:DWORD</B> <BR><B>include 
\masm32\include\windows.inc</B> <BR><B>include \masm32\include\user32.inc</B> 
<BR><B>include \masm32\include\kernel32.inc</B> <BR><B>include 
\masm32\include\comdlg32.inc</B> <BR><B>includelib \masm32\lib\user32.lib</B> 
<BR><B>includelib \masm32\lib\kernel32.lib</B> <BR><B>includelib 
\masm32\lib\comdlg32.lib</B> 
<P><B>.const</B> <BR><B>IDM_OPEN equ 1</B> <BR><B>IDM_EXIT equ 2</B> 
<BR><B>MAXSIZE equ 260</B> <BR><B>OUTPUTSIZE equ 512</B> 
<P><B>.data</B> <BR><B>ClassName db "SimpleWinClass",0</B> <BR><B>AppName&nbsp; 
db "Our Main Window",0</B> <BR><B>MenuName db "FirstMenu",0</B> 
<BR><B>ofn&nbsp;&nbsp; OPENFILENAME &lt;&gt;</B> <BR><B>FilterString db "All 
Files",0,"*.*",0</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
db "Text Files",0,"*.txt",0,0</B> <BR><B>buffer db MAXSIZE dup(0)</B> 
<BR><B>OurTitle db "-=Our First Open File Dialog Box=-: Choose the file to 
open",0</B> <BR><B>FullPathName db "The Full Filename with Path is: ",0</B> 
<BR><B>FullName&nbsp; db "The Filename is: ",0</B> <BR><B>ExtensionName db "The 
Extension is: ",0</B> <BR><B>OutputString db OUTPUTSIZE dup(0)</B> <BR><B>CrLf 
db 0Dh,0Ah,0</B> 
<P><B>.data?</B> <BR><B>hInstance HINSTANCE ?</B> <BR><B>CommandLine LPSTR ?</B> 

<P><B>.code</B> <BR><B>start:</B> <BR><B>&nbsp;&nbsp;&nbsp; invoke 
GetModuleHandle, NULL</B> <BR><B>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp; 
hInstance,eax</B> <BR><B>&nbsp;&nbsp;&nbsp; invoke 
GetCommandLine<BR>&nbsp;&nbsp;&nbsp;&nbsp;mov CommandLine,eax</B> 
<BR><B>&nbsp;&nbsp;&nbsp; invoke WinMain, hInstance,NULL,CommandLine, 
SW_SHOWDEFAULT</B> <BR><B>&nbsp;&nbsp;&nbsp; invoke ExitProcess,eax</B> 
<P><B>WinMain proc 
hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD</B> 
<BR><B>&nbsp;&nbsp;&nbsp; LOCAL wc:WNDCLASSEX</B> <BR><B>&nbsp;&nbsp;&nbsp; 
LOCAL msg:MSG</B> <BR><B>&nbsp;&nbsp;&nbsp; LOCAL hwnd:HWND</B> 
<BR><B>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp; wc.cbSize,SIZEOF WNDCLASSEX</B> 
<BR><B>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp; wc.style, CS_HREDRAW or CS_VREDRAW</B> 
<BR><B>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp; wc.lpfnWndProc, OFFSET WndProc</B> 
<BR><B>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp; wc.cbClsExtra,NULL</B> 
<BR><B>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp; wc.cbWndExtra,NULL</B> 
<BR><B>&nbsp;&nbsp;&nbsp; push&nbsp; hInst</B> <BR><B>&nbsp;&nbsp;&nbsp; 
pop&nbsp;&nbsp; wc.hInstance</B> <BR><B>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp; 
wc.hbrBackground,COLOR_WINDOW+1</B> <BR><B>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp; 
wc.lpszMenuName,OFFSET MenuName</B> <BR><B>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp; 
wc.lpszClassName,OFFSET ClassName</B> <BR><B>&nbsp;&nbsp;&nbsp; invoke 
LoadIcon,NULL,IDI_APPLICATION</B> <BR><B>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp; 
wc.hIcon,eax</B> <BR><B>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp; wc.hIconSm,eax</B> 
<BR><B>&nbsp;&nbsp;&nbsp; invoke LoadCursor,NULL,IDC_ARROW</B> 
<BR><B>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp; wc.hCursor,eax</B> 
<BR><B>&nbsp;&nbsp;&nbsp; invoke RegisterClassEx, addr wc</B> 
<BR><B>&nbsp;&nbsp;&nbsp; invoke CreateWindowEx,WS_EX_CLIENTEDGE,ADDR 
ClassName,ADDR AppName,\</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
CW_USEDEFAULT,300,200,NULL,NULL,\</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
hInst,NULL</B> <BR><B>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp; hwnd,eax</B> 
<BR><B>&nbsp;&nbsp;&nbsp; invoke ShowWindow, hwnd,SW_SHOWNORMAL</B> 
<BR><B>&nbsp;&nbsp;&nbsp; invoke UpdateWindow, hwnd</B> 
<BR><B>&nbsp;&nbsp;&nbsp; .WHILE TRUE</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke GetMessage, ADDR 
msg,NULL,0,0</B> <BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .BREAK .IF 
(!eax)</B> <BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke 
TranslateMessage, ADDR msg</B> <BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
invoke DispatchMessage, ADDR msg</B> <BR><B>&nbsp;&nbsp;&nbsp; .ENDW</B> 
<BR><B>&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; eax,msg.wParam</B> 
<BR><B>&nbsp;&nbsp;&nbsp; ret</B> <BR><B>WinMain endp</B> 
<P><B>WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM</B> 
<BR><B>&nbsp;&nbsp;&nbsp; .IF uMsg==WM_DESTROY</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke 
PostQuitMessage,NULL</B> <BR><B>&nbsp;&nbsp;&nbsp; .ELSEIF uMsg==WM_COMMAND</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov eax,wParam</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .if ax==IDM_OPEN</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov 
ofn.lStructSize,SIZEOF ofn</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push 
hWnd</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
pop&nbsp; ofn.hwndOwner</B> 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91国模大尺度私拍在线视频| 亚洲成av人片在www色猫咪| 国产一区久久久| 精品三级av在线| 国产一区欧美一区| 久久久久久久久一| 成人av网在线| 亚洲综合图片区| 欧美日韩第一区日日骚| 日本少妇一区二区| 国产午夜亚洲精品不卡| 99久久精品国产一区| 一二三四区精品视频| 欧美精品久久99久久在免费线| 日韩高清一区二区| 精品国产污污免费网站入口| 国产乱码字幕精品高清av| 亚洲欧洲精品一区二区三区| 色婷婷av久久久久久久| 日韩电影免费一区| 亚洲国产电影在线观看| 欧美主播一区二区三区| 美女视频黄久久| 中文字幕视频一区二区三区久| 色综合久久久久久久久| 毛片av一区二区| 日韩一区日韩二区| 欧美一区二区视频在线观看2020 | 国产一区三区三区| 亚洲欧美日韩中文字幕一区二区三区 | 欧美亚洲国产一区二区三区 | 欧美老女人第四色| 国产一区二区视频在线| 亚洲综合成人网| 久久夜色精品一区| 欧美中文字幕一区二区三区亚洲| 精彩视频一区二区| 一区二区三区精品| 久久亚洲影视婷婷| 在线观看国产日韩| 国产一区二区三区香蕉| 中文字幕一区视频| 777xxx欧美| 丁香桃色午夜亚洲一区二区三区| 国产精品久久久久久久蜜臀| 在线亚洲一区观看| 国产在线不卡一区| 亚洲综合免费观看高清完整版 | 日韩丝袜情趣美女图片| 国产传媒一区在线| 亚洲成人精品一区二区| 国产精品网曝门| 欧美日韩视频专区在线播放| 国产美女一区二区三区| 亚洲国产精品自拍| 欧美韩日一区二区三区| 欧美精品久久一区二区三区| 麻豆精品一区二区av白丝在线| 国产日韩影视精品| 日韩欧美国产高清| 91蜜桃在线观看| 久久精品72免费观看| 亚洲精品中文在线观看| 欧美一级日韩不卡播放免费| 99视频精品在线| 国模无码大尺度一区二区三区| 国产精品不卡在线| 日韩精品最新网址| 欧美丝袜自拍制服另类| www.在线成人| 国产成人精品影视| 精品综合久久久久久8888| 亚洲一区二区三区激情| 亚洲欧美中日韩| 精品粉嫩aⅴ一区二区三区四区| 精品视频资源站| jizz一区二区| 国产精品伊人色| 毛片基地黄久久久久久天堂| 亚洲综合激情网| 亚洲人成电影网站色mp4| 久久美女艺术照精彩视频福利播放| 精品视频1区2区| 一本色道久久加勒比精品| 国产成人综合自拍| 国产激情一区二区三区| 黄色日韩网站视频| 久久超碰97中文字幕| 午夜精品久久久久久久蜜桃app| 久久九九久久九九| 91精品福利在线一区二区三区| 88在线观看91蜜桃国自产| 欧美性猛交xxxx乱大交退制版| 91在线国产观看| av在线综合网| 日本韩国精品一区二区在线观看| 丰满白嫩尤物一区二区| 粉嫩av一区二区三区在线播放 | 91精品国产免费久久综合| 欧美日韩在线亚洲一区蜜芽| 欧美在线不卡视频| 欧美性猛交xxxx乱大交退制版| 欧美在线一二三四区| 在线观看成人免费视频| 欧美剧情电影在线观看完整版免费励志电影 | 亚洲一二三四在线| 亚洲小说欧美激情另类| 亚洲高清一区二区三区| 婷婷久久综合九色国产成人| 天天色综合成人网| 免费看欧美美女黄的网站| 久久超碰97人人做人人爱| 国内不卡的二区三区中文字幕| 国产一区不卡在线| aaa欧美色吧激情视频| 国产成人免费av在线| 在线观看视频91| 日韩欧美区一区二| 国产婷婷一区二区| 亚洲欧美一区二区三区极速播放| 一个色综合av| 免费成人性网站| 成人免费观看av| 欧美午夜精品电影| 日韩精品一区二区三区四区视频| 久久久久久影视| 欧美激情在线免费观看| 天天影视色香欲综合网老头| 麻豆精品久久精品色综合| 国产91丝袜在线播放0| 91高清在线观看| 日韩精品在线网站| 国产精品久久久久久亚洲毛片| 亚洲午夜久久久久久久久电影院| 免费欧美高清视频| 99久久er热在这里只有精品15 | 欧美美女喷水视频| 精品精品国产高清a毛片牛牛| 国产精品免费久久久久| 亚洲成av人综合在线观看| 激情六月婷婷久久| 色综合久久中文字幕综合网| 日韩精品一区二区三区在线观看| 欧美激情一区二区三区蜜桃视频| 亚洲国产精品久久一线不卡| 国产剧情在线观看一区二区| 色综合视频在线观看| 91精品国产美女浴室洗澡无遮挡| 日本一区二区三区电影| 青青草97国产精品免费观看| 97se亚洲国产综合自在线不卡| 日韩欧美中文一区二区| 一区二区国产视频| 国产成人亚洲精品青草天美| 欧美精品日韩精品| 国产精品国产自产拍高清av王其| 国产精品国产精品国产专区不片| 国产欧美日韩精品一区| 亚洲黄色性网站| 亚洲中国最大av网站| 蜜臀av一区二区在线免费观看| 99久久久久免费精品国产| 日韩欧美你懂的| 亚洲国产中文字幕在线视频综合 | 精品久久99ma| 亚洲精品一二三区| 成人性生交大片| 欧美刺激午夜性久久久久久久| 悠悠色在线精品| 成人免费的视频| 欧美精品一区二区久久久| 日韩高清一级片| 欧美影院一区二区| 久久久亚洲精品一区二区三区| 青青草国产成人99久久| 精品视频一区三区九区| 一区二区三区日韩| 91亚洲永久精品| 亚洲欧洲精品一区二区三区 | 欧美理论电影在线| 亚洲欧美日韩国产一区二区三区| 国产91精品一区二区麻豆亚洲| 精品国产乱码久久久久久夜甘婷婷 | 激情深爱一区二区| 日韩欧美高清一区| 日产国产高清一区二区三区| 欧美伊人久久久久久午夜久久久久| ...中文天堂在线一区| 成av人片一区二区| 最新日韩av在线| av亚洲精华国产精华精华| 欧美激情一区不卡| 99久久久无码国产精品| 亚洲视频一二三| 在线免费观看成人短视频| 亚洲一级电影视频| 欧美一区二区在线播放| 国产一区二区三区免费看| 久久精品在线观看| 成人精品小蝌蚪|