當(dāng)主窗口的客戶區(qū)部分大小改變時(shí),我們的應(yīng)用程序?qū)⒔邮盏?/span>
WM_SIZE
消息。當(dāng)然該窗口第一次顯示時(shí),我們也將接收到該消息。要接收到該消息,主窗口必須有
CS_VREDRAW
和
CS_HREDRAW
風(fēng)格。我們應(yīng)該把縮放編輯控件的動(dòng)作放到此處。我們要把編輯控件變成和我們的窗口客戶區(qū)一樣大,所以先得要得到父窗口客戶區(qū)的大小。這些值包含在參數(shù)
lParam
中,
lParam
的高字部分是客戶區(qū)的高,底字部分是客戶區(qū)的寬。然后我們調(diào)用
MoveWindow
函數(shù)來(lái)重新調(diào)整編輯控件的大小,該函數(shù)不僅能夠移動(dòng)窗口的位置,而且能夠改變窗口的大小。
.ELSEIF uMsg==WM_SIZE
??mov eax,lParam????????????? ;低16位寬,高16位高
??mov edx,eax
??shr edx,16????????????????? ;IParam邏輯右移16位,保留高16位,即高
??and eax,0ffffh????????????? ;高16位清0,保留低16位,即寬
??invoke MoveWindow,hwndEdit,0,0,eax,edx,TRUE
WM_SIZE
The WM_SIZE message is sent to a window after its size has changed.
A window receives this message through its WindowProc function.
LRESULT CALLBACK WindowProc( HWND hwnd, // handle to window UINT uMsg, // WM_SIZE WPARAMwParam, // resizing flag LPARAMlParam // client area );
Parameters
- wParam
- Specifies the type of resizing requested. This parameter can be one of the following values.
Value Meaning SIZE_MAXHIDE Message is sent to all pop-up windows when some other window is maximized. SIZE_MAXIMIZED The window has been maximized. SIZE_MAXSHOW Message is sent to all pop-up windows when some other window has been restored to its former size. SIZE_MINIMIZED The window has been minimized. SIZE_RESTORED The window has been resized, but neither the SIZE_MINIMIZED nor SIZE_MAXIMIZED value applies. - lParam
- The low-order word of lParam specifies the new width of the client area.
The high-order word of lParam specifies the new height of the client area.
Return Values
If an application processes this message, it should return zero.
該版本的編譯器發(fā)布時(shí)間是2007年10月6日星期六18:19:41.
推薦給 C語(yǔ)言 愛好者 本例是用LCC_Win32(版本為4.0)的一個(gè)真正的windows程序
能夠播放聲音文件,要包含頭文件<mmsystem.h>,在工程中加入多媒體庫(kù)文件winmm.lib
http://www.abab123.com/bbs/down.asp?html=1001248