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

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

?? lion-tutorial33.htm

?? 內有一些代碼
?? HTM
?? 第 1 頁 / 共 5 頁
字號:
			.elseif ax==IDM_OPTION				invoke DialogBoxParam,hInstance,IDD_OPTIONDLG,hWnd,addr OptionProc,0			.elseif ax==IDM_SAVEAS				invoke RtlZeroMemory,addr ofn,sizeof ofn				mov ofn.lStructSize,sizeof ofn				push hWnd				pop ofn.hwndOwner				push hInstance				pop ofn.hInstance				mov ofn.lpstrFilter,offset ASMFilterString				mov ofn.lpstrFile,offset AlternateFileName				mov byte ptr [AlternateFileName],0				mov ofn.nMaxFile,sizeof AlternateFileName				mov ofn.Flags,OFN_FILEMUSTEXIST or OFN_HIDEREADONLY or OFN_PATHMUSTEXIST				invoke GetSaveFileName,addr ofn				.if eax!=0					invoke CreateFile,addr AlternateFileName,GENERIC_WRITE,FILE_SHARE_READ,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0					.if eax!=INVALID_HANDLE_VALUE						jmp @B					.endif				.endif			.elseif ax==IDM_EXIT				invoke SendMessage,hWnd,WM_CLOSE,0,0			.endif		.endif	.elseif uMsg==WM_CLOSE		invoke CheckModifyState,hWnd		.if eax==TRUE			invoke DestroyWindow,hWnd		.endif	.elseif uMsg==WM_SIZE		mov eax,lParam		mov edx,eax		and eax,0FFFFh		shr edx,16		invoke MoveWindow,hwndRichEdit,0,0,eax,edx,TRUE			.elseif uMsg==WM_DESTROY		invoke PostQuitMessage,NULL	.else		invoke DefWindowProc,hWnd,uMsg,wParam,lParam				ret	.endif	xor eax,eax	retWndProc endpend start;===================================================================; The resource file;===================================================================#include "resource.h"#define IDR_MAINMENU                    101#define IDD_OPTIONDLG                   101#define IDC_BACKCOLORBOX                1000#define IDC_TEXTCOLORBOX                1001#define IDM_OPEN                        40001#define IDM_SAVE                        40002#define IDM_CLOSE                       40003#define IDM_SAVEAS                      40004#define IDM_EXIT                        40005#define IDM_COPY                        40006#define IDM_CUT                         40007#define IDM_PASTE                       40008#define IDM_DELETE                      40009#define IDM_SELECTALL                   40010#define IDM_OPTION                      40011#define IDM_UNDO                        40012#define IDM_REDO                        40013IDR_MAINMENU MENU DISCARDABLE BEGIN    POPUP "&File"    BEGIN        MENUITEM "&Open",                       IDM_OPEN        MENUITEM "&Close",                      IDM_CLOSE        MENUITEM "&Save",                       IDM_SAVE        MENUITEM "Save &As",                    IDM_SAVEAS        MENUITEM SEPARATOR        MENUITEM "E&xit",                       IDM_EXIT    END    POPUP "&Edit"    BEGIN        MENUITEM "&Undo",                       IDM_UNDO        MENUITEM "&Redo",                       IDM_REDO        MENUITEM "&Copy",                       IDM_COPY        MENUITEM "C&ut",                        IDM_CUT        MENUITEM "&Paste",                      IDM_PASTE        MENUITEM SEPARATOR        MENUITEM "&Delete",                     IDM_DELETE        MENUITEM SEPARATOR        MENUITEM "Select &All",                 IDM_SELECTALL    END    MENUITEM "Options",                     IDM_OPTIONENDIDD_OPTIONDLG DIALOG DISCARDABLE  0, 0, 183, 54STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_CENTERCAPTION "Options"FONT 8, "MS Sans Serif"BEGIN    DEFPUSHBUTTON   "OK",IDOK,137,7,39,14    PUSHBUTTON      "Cancel",IDCANCEL,137,25,39,14    GROUPBOX        "",IDC_STATIC,5,0,124,49    LTEXT           "Background Color:",IDC_STATIC,20,14,60,8    LTEXT           "",IDC_BACKCOLORBOX,85,11,28,14,SS_NOTIFY | WS_BORDER    LTEXT           "Text Color:",IDC_STATIC,20,33,35,8    LTEXT           "",IDC_TEXTCOLORBOX,85,29,28,14,SS_NOTIFY | WS_BORDEREND</font></b></pre><hr noshade><h3 align="left"><font face="Times New Roman, Times, serif" color="#0000CC">Analysis:</font></h3><p align="left"><font face="Tahoma" size="-1">The program first loads the richedit   dll, which in this case is riched20.dll. If the dll cannot be loaded, it exits   to Windows.</font><br></p><pre align="left"><b><font face="Tahoma"><font color="#FF0033">invoke LoadLibrary,addr RichEditDLL</font> .if eax!=0 	mov hRichEdit,eax 	invoke WinMain,hInstance,0,0, SW_SHOWDEFAULT 	invoke FreeLibrary,hRichEdit .else 	invoke MessageBox,0,addr NoRichEdit,addr AppName,MB_OK or MB_ICONERROR .endif invoke ExitProcess,eax</font></b></pre><p align="left"><font face="Tahoma" size="-1">After the dll is loaded successfully,   we proceed to create a normal window which will be the parent of the richedit   control. Within the <font color="#006666"><b>WM_CREATE</b></font> handler, we   create the richedit control:</font></p><pre align="left"><b><font face="Tahoma">		invoke CreateWindowEx,WS_EX_CLIENTEDGE,addr RichEditClass,0,WS_CHILD or WS_VISIBLE or ES_MULTILINE or WS_VSCROLL or WS_HSCROLL or ES_NOHIDESEL,\				CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,hWnd,RichEditID,hInstance,0		mov hwndRichEdit,eax</font></b></pre><p align="left"><font face="Tahoma" size="-1">Note that we specify<font color="#006666"><b>   ES_MULTILINE</b></font> style else the control will be a single-lined one.</font><b><font face="Tahoma" size="-1">   <br>  </font></b></p><pre align="left"><b><font face="Tahoma">		invoke SendMessage,hwndRichEdit,EM_LIMITTEXT,-1,0</font></b></pre><p align="left"><font face="Tahoma" size="-1">After the richedit control is created,   we must set the new text limit on it. By default, the richedit control has 64K   text limit, the same as a simple multi-line edit control. We must extend this   limit to allow it to operate with larger files. In the above line, I specify   -1 which amounts to 0FFFFFFFFh, a very large value.</font></p><pre align="left"><font face="Tahoma">     </font><b><font face="Tahoma"> </font></b><b><font face="Tahoma"> invoke SetColor</font></b></pre><p align="left"><b><font face="Tahoma"><br>  </font></b><font face="Tahoma" size="-1">Next, we set the text/background </font><font face="Tahoma" size="-1">color.   Since this operation can be performed in other part of the program, I put the   code in a function named SetColor.</font><b><font face="Tahoma" size="-1"> <br>  </font></b></p><pre align="left"><b><font face="Tahoma"><font color="#003399">SetColor</font> proc	LOCAL cfm:CHARFORMAT	invoke SendMessage,hwndRichEdit,EM_SETBKGNDCOLOR,0,BackgroundColor</font></b></pre><p align="left"><font face="Tahoma" size="-1">Setting the background color of   the richedit control is a straightforward operation: just send <font color="#006666"><b>EM_SETBKGNDCOLOR</b></font>   message to the richedit control. (If you use a multi-line edit control, you   have to process <font color="#006666"><b>WM_CTLCOLOREDIT</b></font>). The default   background color is white. </font><b><font face="Tahoma" size="-1"> <br>  </font></b></p><pre align="left"><b><font face="Tahoma">	invoke RtlZeroMemory,addr cfm,sizeof cfm	mov cfm.cbSize,sizeof cfm	mov cfm.dwMask,CFM_COLOR	push TextColor	pop cfm.crTextColor</font></b></pre><p align="left"><font face="Tahoma" size="-1">After the background color is set,   we fill in the members of <font color="#006666"><b>CHARFORMAT</b></font> in   order to set the text color. Note that we fill <font color="#006666"><b>cbSize</b></font>   with the size of the structure so the richedit control knows we are sending   it <font color="#006666"><b>CHARFORMAT</b></font>, not <font color="#006666"><b>CHARFORMAT2</b></font>.   <font color="#006666"> <b>dwMask</b></font> has only one flag, <font color="#0000CC"><b>CFM_COLOR</b></font>,   because we only want to set the text color and <font color="#006666"><b>crTextColor</b></font>   is filled with the value of the desired text color. </font></p><pre align="left"><b><font face="Tahoma">	invoke SendMessage,hwndRichEdit,EM_SETCHARFORMAT,SCF_ALL,addr cfm	ret<font color="#003399">SetColor</font> endp</font></b></pre><p align="left"><font face="Tahoma" size="-1">After settting the color, you have   to empty undo buffer simply because the act of changing text/background color   is undo-able. We send <font color="#006666"><b>EM_EMPTYUNDOBUFFER</b></font>   message to achieve this.</font></p><pre align="left"><font face="Tahoma" size="-1"><b>	invoke SendMessage,hwndRichEdit,EM_EMPTYUNDOBUFFER,0,0</b></font><b><font face="Tahoma"> </font></b></pre><p align="left"><font face="Tahoma" size="-1">After filling the <font color="#006666"><b>CHARFORMAT</b></font>   structure, we send <font color="#006666"><b>EM_SETCHARFORMAT</b></font> to the   richedit control, specifying <font color="#0000CC"><b>SCF_ALL</b></font> flag   in <font color="#CC0033"><b>wParam</b></font> to indicate that we want the text   formatting to be applied to all text in the control.</font><b><font face="Tahoma" size="-1">   </font></b></p><p><font face="Tahoma" size="-1">Note that when we first created the richedit   control, we didn't specify its size/position at that time. That's because we   want it to cover the whole client area of the parent window. We resize it whenever   the size of the parent window changes.</font></p><pre><b><font face="Tahoma">	.elseif uMsg==WM_SIZE		mov eax,lParam		mov edx,eax		and eax,0FFFFh		shr edx,16		invoke MoveWindow,hwndRichEdit,0,0,eax,edx,TRUE</font></b></pre><p><font face="Tahoma" size="-1">In the above code snippet, we use the new dimension   of the client area passed in <font color="#0000CC"><b>lParam</b></font> to resize   the richedit control with <font color="#009999"><b><font color="#006666">MoveWindow</font></b></font>.</font></p><p><font face="Tahoma" size="-1">When the user clicks on the File/Edit menu bar,   we process <font color="#006666"><b>WM_INITPOPUPMENU</b></font> so that we can   prepare the states of the menuitems in the submenu before displaying it to the   user. For example, if a file is already opened in the richedit control, we want   to disable the open menuitem and enable all the remaining menuitems.</font></p><p><font face="Tahoma" size="-1">In the case of the File menu bar, we use the   variable <font color="#0000CC"><b>FileOpened</b></font> as the flag to determine   whether a file is already opened. If the value in this variable is TRUE, we   know that a file is already opened.</font></p><pre><b><font face="Tahoma">	.elseif uMsg==WM_INITMENUPOPUP		mov eax,lParam		.if ax==0		; file menu						.if FileOpened==TRUE	; a file is already opened				invoke EnableMenuItem,wParam,IDM_OPEN,MF_GRAYED				invoke EnableMenuItem,wParam,IDM_CLOSE,MF_ENABLED				invoke EnableMenuItem,wParam,IDM_SAVE,MF_ENABLED				invoke EnableMenuItem,wParam,IDM_SAVEAS,MF_ENABLED			.else				invoke EnableMenuItem,wParam,IDM_OPEN,MF_ENABLED				invoke EnableMenuItem,wParam,IDM_CLOSE,MF_GRAYED				invoke EnableMenuItem,wParam,IDM_SAVE,MF_GRAYED				invoke EnableMenuItem,wParam,IDM_SAVEAS,MF_GRAYED			.endif</font></b></pre><p><font face="Tahoma" size="-1">As you can see, if a file is already opened,   we gray out the open menuitem and enable the remaining menuitems. The reverse   is true of <font color="#0000CC"><b>FileOpened</b></font> is false.</font></p><p><font face="Tahoma" size="-1">In the case of the edit menu bar, we need to   check the state of the richedit control/clipboard first.</font></p><pre><b><font face="Tahoma">			invoke SendMessage,hwndRichEdit,EM_CANPASTE,CF_TEXT,0			.if eax==0		; no text in the clipboard				invoke EnableMenuItem,wParam,IDM_PASTE,MF_GRAYED			.else				invoke EnableMenuItem,wParam,IDM_PASTE,MF_ENABLED			.endif</font></b></pre><p><font face="Tahoma" size="-1">We first check whether some text is available   in the clipboard by sending <font color="#006666"><b>EM_CANPASTE</b></font>   message. If some text is available, <font color="#0000CC"><b>SendMessage</b></font>   returns TRUE and we enable the paste menuitem. If not, we gray out the menuitem.   </font></p><pre><b><font face="Tahoma">			invoke SendMessage,hwndRichEdit,EM_CANUNDO,0,0			.if eax==0				invoke EnableMenuItem,wParam,IDM_UNDO,MF_GRAYED			.else				invoke EnableMenuItem,wParam,IDM_UNDO,MF_ENABLED			.endif</font></b></pre><p><font face="Tahoma" size="-1">Next, we check whether the undo buffer is empty   by sending <font color="#006666"><b>EM_CANUNDO</b></font> message. If it's not   empty, <font color="#0000CC"><b>SendMessage</b></font> returns TRUE and we enable   the undo menuitem. </font></p><pre><b><font face="Tahoma">			invoke SendMessage,hwndRichEdit,EM_CANREDO,0,0			.if eax==0				invoke EnableMenuItem,wParam,IDM_REDO,MF_GRAYED			.else				invoke EnableMenuItem,wParam,IDM_REDO,MF_ENABLED			.endif</font></b></pre><p><font face="Tahoma" size="-1">We check the redo buffer by sending <font color="#006666"><b>EM_CANREDO</b></font>   message to the richedit control. If it's not empty, <font color="#0000CC"><b>SendMessage</b></font>   returns TRUE and we enable the redo menuitem. </font><b><font face="Tahoma" size="-1">   </font></b></p><pre><b><font face="Tahoma">			invoke SendMessage,hwndRichEdit,EM_EXGETSEL,0,addr chrg			mov eax,chrg.cpMin			.if eax==chrg.cpMax		; no current selection				invoke EnableMenuItem,wParam,IDM_COPY,MF_GRAYED				invoke EnableMenuItem,wParam,IDM_CUT,MF_GRAYED				invoke EnableMenuItem,wParam,IDM_DELETE,MF_GRAYED			.else				invoke EnableMenuItem,wParam,IDM_COPY,MF_ENABLED				invoke EnableMenuItem,wParam,IDM_CUT,MF_ENABLED				invoke EnableMenuItem,wParam,IDM_DELETE,MF_ENABLED			.endif</font></b></pre><p><font face="Tahoma" size="-1">Lastly, we check whether a current selection   exists by sending <font color="#006666"><b>EM_EX

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲中国最大av网站| 国产精选一区二区三区| 欧美精品一区二区在线观看| 成人avav影音| 蜜桃精品视频在线观看| 亚洲欧美色图小说| 欧美精品一区二区高清在线观看| 色视频欧美一区二区三区| 精品亚洲国产成人av制服丝袜| 亚洲黄色av一区| 国产日韩三级在线| 日韩三级中文字幕| 在线观看免费一区| 不卡电影免费在线播放一区| 久久精品免费观看| 午夜视频在线观看一区二区 | 精品日本一线二线三线不卡| 91久久一区二区| 91在线视频18| 国产91精品久久久久久久网曝门| 美腿丝袜亚洲三区| 午夜精品免费在线观看| 亚洲美女屁股眼交| 亚洲欧美日韩电影| 亚洲婷婷国产精品电影人久久| 国产欧美一区二区三区鸳鸯浴| 精品日韩成人av| 日韩一区二区电影网| 欧美精品v国产精品v日韩精品| 色噜噜偷拍精品综合在线| 不卡av免费在线观看| 成人免费看视频| 成人在线视频首页| 成人免费视频国产在线观看| 国产成人精品午夜视频免费| 国产激情偷乱视频一区二区三区| 国产在线不卡视频| 国产成人免费在线视频| 国产精品自产自拍| 国产成人免费xxxxxxxx| 国产精品69毛片高清亚洲| 国产.欧美.日韩| 成人午夜激情影院| 91一区二区在线观看| 91蜜桃免费观看视频| 日本精品一区二区三区四区的功能| 91免费视频网| 欧美日韩aaaaaa| 日韩欧美一二三区| 久久精品网站免费观看| 国产精品乱码久久久久久| 亚洲欧洲一区二区在线播放| 亚洲精品免费视频| 视频一区二区不卡| 看电影不卡的网站| 丰满白嫩尤物一区二区| 99精品视频免费在线观看| 91一区二区在线| 欧美制服丝袜第一页| 91精品国产黑色紧身裤美女| 欧美成人一区二区三区片免费| 国产色产综合色产在线视频| 中文字幕色av一区二区三区| 亚洲自拍偷拍av| 美女诱惑一区二区| 国产成人午夜99999| 色菇凉天天综合网| 日韩一区二区三区视频在线| 久久精品在这里| 亚洲精品乱码久久久久久| 五月天丁香久久| 国产在线视频不卡二| 91麻豆福利精品推荐| 欧美一区二区三区视频在线观看| 久久精品欧美一区二区三区麻豆 | 亚洲在线成人精品| 精品亚洲国内自在自线福利| caoporn国产精品| 欧美一区二区三区喷汁尤物| 国产亚洲短视频| 亚洲电影一区二区三区| 极品少妇xxxx偷拍精品少妇| 91小视频免费看| 91麻豆精品国产91久久久久久| 国产欧美日韩激情| 婷婷久久综合九色综合绿巨人 | 午夜在线电影亚洲一区| 国产成人av一区二区三区在线观看| 91猫先生在线| 久久综合久久综合九色| 亚洲图片欧美一区| 成人免费毛片app| 日韩欧美激情四射| 亚洲精品成人悠悠色影视| 国产麻豆9l精品三级站| 欧美亚男人的天堂| 国产精品色噜噜| 久久99久久精品| 欧美日韩国产影片| 国产精品成人网| 韩国三级中文字幕hd久久精品| 在线观看不卡视频| 中文字幕不卡的av| 久久99精品一区二区三区| 欧美色精品在线视频| 国产精品水嫩水嫩| 国产精品自拍在线| 欧美xfplay| 免费人成在线不卡| 欧美日韩成人综合天天影院 | 欧美日韩视频第一区| 亚洲国产精品99久久久久久久久| 日韩av网站免费在线| 在线免费一区三区| 成人欧美一区二区三区1314| 国产成人自拍在线| 精品电影一区二区| 蜜臀99久久精品久久久久久软件| 在线免费观看日本一区| 亚洲三级在线看| 国产99久久久国产精品| 精品国产网站在线观看| 麻豆国产精品视频| 666欧美在线视频| 视频一区视频二区中文| 欧美日韩一级大片网址| 亚洲国产欧美在线人成| 日本韩国一区二区| 亚洲精品国产无天堂网2021| 97精品视频在线观看自产线路二| 国产蜜臀av在线一区二区三区 | 精品1区2区3区| 一片黄亚洲嫩模| 91久久精品一区二区三| 亚洲码国产岛国毛片在线| 色天天综合色天天久久| 一区二区三区四区国产精品| 欧美在线免费视屏| 午夜精品久久久久久不卡8050| 欧美羞羞免费网站| 日韩av中文在线观看| 日韩久久久精品| 国产一区二区三区在线观看免费 | 亚洲国产一区视频| 欧美影视一区二区三区| 天天影视色香欲综合网老头| 欧美久久免费观看| 毛片av中文字幕一区二区| 欧美xxxx老人做受| 大桥未久av一区二区三区中文| 国产精品视频线看| 在线看国产一区| 日日摸夜夜添夜夜添精品视频| 欧美一区二区三区啪啪| 国产美女在线精品| 亚洲欧美在线另类| 欧美少妇bbb| 久久99精品久久久久久久久久久久| 久久这里只有精品视频网| 成人免费高清在线| 亚洲一区二区3| 精品少妇一区二区| 成人av网址在线| 亚洲成人手机在线| ww亚洲ww在线观看国产| 北条麻妃一区二区三区| 亚洲午夜久久久久中文字幕久| 91麻豆精品国产无毒不卡在线观看 | 亚洲一线二线三线久久久| 91精品久久久久久久91蜜桃| 国产一区二区三区视频在线播放| 亚洲视频图片小说| 91精品国产一区二区三区| 国产成人8x视频一区二区| 亚洲在线免费播放| 久久色在线视频| 欧美在线一区二区| 国产精品一卡二| 亚洲午夜久久久久| 国产精品污网站| 在线成人小视频| av中文字幕不卡| 美日韩黄色大片| 一区二区三区四区在线| 久久亚洲一区二区三区明星换脸| 在线区一区二视频| 国产69精品一区二区亚洲孕妇| 天天综合天天综合色| 中文字幕一区二区三区四区 | 91精品办公室少妇高潮对白| 精品一区二区三区影院在线午夜 | 国产大陆a不卡| 午夜精品久久久久久| 国产精品不卡一区| 日韩亚洲欧美一区二区三区| 91网站最新地址| 国产精品一区二区久久精品爱涩 | 久久亚洲捆绑美女| 欧美日韩免费一区二区三区| hitomi一区二区三区精品|