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

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

?? tut20.html

?? WINDOWS程序員使用指南--匯編基礎
?? HTML
?? 第 1 頁 / 共 3 頁
字號:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="Author" content="Iczelion">
   <meta name="GENERATOR" content="Mozilla/4.51 [en] (Win95; I) [Netscape]">
   <title>Iczelion's Win32asm Tutorial 20: Window Subclassing</title>
</head>
<body text="#FFFFFF" bgcolor="#000080" link="#FFFF00" vlink="#8080FF" alink="#FF00FF">

<center>
<h1>
<font face="Arial,Helvetica"><font color="#FFFF99">Tutorial 20: Window
Subclassing</font></font></h1></center>
<font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>In this
tutorial, we will learn about window subclassing, what it is and how to
use it to your advantage.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>Download
the example <a href="files/tut20.zip">here</a>.</font></font></font>
<h3>
<font face="Arial,Helvetica"><font color="#009900"><font size=+0>Theory:</font></font></font></h3>
<font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>If you
program in Windows for some time, you will find some cases where a window
has <i>nearly</i> the attributes you need in your program but not quite.
Have you encountered a situation where you want some special kind of edit
control that can filter out some unwanted text? The straightforward thing
to do is to code your own window. But it's really hard work and time-consuming.
Window subclassing to the rescue.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>In
a nutshell, window subclassing allows you to "take over" the subclassed
window. You will have absolute control over it. Let's take an example to
make this clearer. Suppose you need a text box that accepts only hex numbers.
If you use a simple edit control, you have no say whatsoever when your
user types something other than hex numbers into your text box, ie. if
the user types "zb+q*" into your text box, you can't do anything with it
except rejecting the whole text string. This is <i>unprofessional</i> at
least. In essence, you need the ability to examine each character the user
typed into the text box right at the moment he typed it.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>We
will examine how to do that now. When the user types something into a text
box, Windows sends WM_CHAR message to the edit control's window procedure.
This window procedure resides inside Windows itself so we can't modify
it. <b>But we can redirect the message flow to our own window procedure</b>.
So that our window procedure will get first shot at any message Windows
sends to the edit control. If our window procedure chooses to act on the
message, it can do so. But if it doesn't want to handle the message, it
can pass it to the original window procedure. This way, our window procedure
inserts itself between Windows and the edit control. Look at the flow below:</font></font></font>
<ul>
<h4>
<font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>Before
Subclassing</font></font></font></h4>
<font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>Windows
==> edit control's window procedure</font></font></font>
<h4>
<font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>After
Subclassing</font></font></font></h4>
<font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>Windows
==> our window procedure -----> edit control's window procedure</font></font></font></ul>
<font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>Now we
put our attention on how to subclass a window. Note that subclassing is
not limited to controls, it can be used with any window.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>Let's
think about how Windows knows where the edit control's window procedure
resides. A guess?......lpfnWndProc member of WNDCLASSEX structure. If we
can replace this member with the address of our own window procedure, Windows
will send messages to our window proc instead.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>We
can do that by calling SetWindowLong.</font></font></font>
<ul><b><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>SetWindowLong
PROTO hWnd:DWORD, nIndex:DWORD, dwNewLong:DWORD</font></font></font></b></ul>
<font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>hWnd =
handle of the window to change the value in the WNDCLASSEX structure</font></font></font>
<br><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>nIndex
== value to change.</font></font></font>
<ul><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1><b>GWL_EXSTYLE</b>
Sets a new extended window style.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1><b>GWL_STYLE</b>
Sets a new window style.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1><b>GWL_WNDPROC</b>
Sets a new address for the window procedure.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1><b>GWL_HINSTANCE</b>
Sets a new application instance handle.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1><b>GWL_ID</b>
Sets a new identifier of the window.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1><b>GWL_USERDATA</b>
Sets the 32-bit value associated with the window. Each window has a corresponding
32-bit value intended for use by the application that created the window.</font></font></font></ul>
<font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>dwNewLong
= the replacement value.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>So
our job is easy: We code a window proc that will handle the messages for
the edit control and then call SetWindowLong with GWL_WNDPROC flag, passing
along the address of our window proc as the third parameter. If the function
succeeds, the return value is the previous value of the specified 32-bit
integer, in our case, the address of the original window procedure. We
need to store this value for use within our window procedure.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>Remember
that there will be some messages we don't want to handle, we will pass
them to the original window procedure. We can do that by calling CallWindowProc
function.</font></font></font>
<ul><b><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>CallWindowProc
PROTO lpPrevWndFunc:DWORD, \</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
hWnd:DWORD,\</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Msg:DWORD,\</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
wParam:DWORD,\</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
lParam:DWORD</font></font></font></b></ul>
<font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>lpPrevWndFunc
= the address of the original window procedure.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>The
remaining four parameters are the ones passed to our window procedure.
We just pass them along to CallWindowProc.</font></font></font>
<h4>
<font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>Code Sample:</font></font></font></h4>
<b><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>.386</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>.model
flat,stdcall</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>option
casemap:none</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>include
\masm32\include\windows.inc</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>include
\masm32\include\user32.inc</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>include
\masm32\include\kernel32.inc</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>include
\masm32\include\comctl32.inc</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>includelib
\masm32\lib\comctl32.lib</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>includelib
\masm32\lib\user32.lib</font></font></font></b>
<br><b><font face="Arial,Helvetica"><font color="#FFFFFF"><font size=-1>includelib

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图.com| 亚洲图片有声小说| 欧美老肥妇做.爰bbww视频| 韩国女主播一区| 一区二区高清免费观看影视大全 | 国产真实乱对白精彩久久| 亚洲精品久久久久久国产精华液 | 一区二区在线免费观看| 久久亚洲二区三区| 91精品国产黑色紧身裤美女| 91麻豆免费在线观看| 国产中文字幕一区| 蜜桃久久久久久| 五月婷婷激情综合| 一区二区三区四区高清精品免费观看 | 国产做a爰片久久毛片| 亚洲超碰精品一区二区| 亚洲女人的天堂| 中文字幕不卡在线| 国产丝袜美腿一区二区三区| 欧美一区二区三区四区视频| 欧美中文字幕一区| 91小视频在线免费看| 成人在线视频首页| 国产成人免费av在线| 国产成人超碰人人澡人人澡| 99精品国产热久久91蜜凸| 美腿丝袜亚洲一区| 免费一级欧美片在线观看| 图片区日韩欧美亚洲| 天天操天天干天天综合网| 亚洲国产乱码最新视频| 亚洲一区在线播放| 亚洲成人综合网站| 日韩中文字幕不卡| 肉色丝袜一区二区| 日韩经典中文字幕一区| 五月激情综合婷婷| 日本亚洲三级在线| 老司机免费视频一区二区三区| 日本不卡在线视频| 蜜桃久久久久久久| 国产一区美女在线| 国产精品一区在线观看乱码| 国产精品888| av亚洲精华国产精华精| 一本高清dvd不卡在线观看| 91在线视频播放地址| 色av成人天堂桃色av| 欧美综合在线视频| 欧美精品丝袜久久久中文字幕| 欧美一级爆毛片| 精品免费99久久| 欧美激情一区三区| 一区二区三区国产精品| 婷婷一区二区三区| 国产一区二区三区高清播放| 国产成人精品亚洲日本在线桃色 | 另类欧美日韩国产在线| 激情图片小说一区| 国产91清纯白嫩初高中在线观看 | 欧美经典一区二区| 亚洲精品乱码久久久久久日本蜜臀| 亚洲一本大道在线| 麻豆精品久久久| 欧美性生活影院| 91精品国产综合久久精品图片 | 亚洲欧美日韩一区二区| 亚洲午夜精品17c| 日韩高清欧美激情| 成人av网址在线观看| 欧美视频一区二区| www日韩大片| 亚洲美女在线一区| 久久99久久久久久久久久久| 成人午夜免费av| 欧美日韩国产三级| 国产日韩欧美不卡| 亚洲成人资源网| 国产激情精品久久久第一区二区| 色综合久久久久综合99| 日韩欧美综合一区| 亚洲伦理在线精品| 国产精品一区二区视频| 欧美无人高清视频在线观看| 精品国一区二区三区| 亚洲女同一区二区| 国产在线精品一区二区不卡了 | 欧美日韩你懂的| 久久精品视频网| 亚洲va中文字幕| eeuss鲁片一区二区三区在线看| 91精品国产欧美日韩| 亚洲欧洲综合另类| 国产九色精品成人porny| 欧美蜜桃一区二区三区| 国产精品日韩成人| 久久精品国产99国产精品| 色综合久久中文字幕综合网| 久久久亚洲国产美女国产盗摄 | av成人老司机| 精品sm捆绑视频| 秋霞电影一区二区| 日本丰满少妇一区二区三区| 国产午夜精品美女毛片视频| 免费成人你懂的| 欧美日韩国产乱码电影| 最新国产成人在线观看| 久久99精品国产| 欧美日本精品一区二区三区| 尤物视频一区二区| 色综合咪咪久久| 亚洲人成网站色在线观看| 成人小视频在线| 国产欧美精品一区| 国产一区二区看久久| 26uuu国产在线精品一区二区| 日韩黄色免费电影| 911精品产国品一二三产区| 又紧又大又爽精品一区二区| 99视频超级精品| 国产精品黄色在线观看| 91视频一区二区| 亚洲欧洲av在线| 不卡视频一二三| 亚洲欧洲99久久| 91一区二区三区在线观看| 中文字幕一区二区三区四区不卡| 国产伦精品一区二区三区免费 | 蜜桃一区二区三区在线| 欧美精选在线播放| 亚洲国产精品人人做人人爽| 一本一本久久a久久精品综合麻豆| 国产精品久久久久影院老司| 成人精品在线视频观看| 国产精品成人免费| 99久久伊人精品| 亚洲日本在线视频观看| 91免费观看在线| 亚洲一区影音先锋| 欧美一区三区二区| 精品亚洲成a人| 国产欧美日韩不卡| 色综合天天综合色综合av| 亚洲精品视频在线看| 欧美三级日韩在线| 欧美a一区二区| 久久人人爽爽爽人久久久| 国产成人在线免费| 中文字幕在线播放不卡一区| 97久久精品人人澡人人爽| 亚洲综合在线观看视频| 欧美精品aⅴ在线视频| 久久99热这里只有精品| 国产视频不卡一区| 97久久精品人人做人人爽50路| 亚洲一区在线观看视频| 欧美mv日韩mv亚洲| 国产mv日韩mv欧美| 一区二区三区欧美| 日韩欧美在线1卡| 国产精品一级在线| 亚洲男帅同性gay1069| 欧美一区二区在线免费观看| 久草在线在线精品观看| 国产精品看片你懂得| 欧美人狂配大交3d怪物一区| 韩国一区二区视频| 亚洲免费观看高清完整版在线观看 | www.视频一区| 亚洲成人一区二区| www激情久久| 色美美综合视频| 久久99久久99| 一区二区激情小说| 国产日韩精品视频一区| 欧美日韩一区久久| 国产福利一区二区三区视频 | 国产精品一二三四| 亚洲一区二区在线免费观看视频| 精品精品国产高清a毛片牛牛| 日韩欧美另类在线| 成人午夜激情视频| 日日夜夜精品免费视频| 欧美激情综合在线| 欧美一区二区三区免费视频| 99精品热视频| 国内精品国产成人| 亚洲一区二区偷拍精品| 精品国产伦理网| 在线免费亚洲电影| 不卡视频免费播放| 久久国产人妖系列| 亚洲国产精品一区二区久久 | 91精品久久久久久久91蜜桃| aaa欧美色吧激情视频| 国产在线精品一区二区夜色| 亚洲一区二区三区四区的| 国产精品嫩草影院av蜜臀| 精品va天堂亚洲国产|