www.pudn.com > gate.rar > SubClassControls.asm


	invoke CreateDialogParam,hInstance,104,hWnd,offset EQProc,NULL 
	mov hDlg,eax 
	invoke CreateDialogParam,hInstance,105,hWnd,offset SongEditProc,NULL 
	mov hSongEdit,eax 
	invoke ShowWindow,hSongEdit,FALSE 
	;滚动条 
	invoke GetDlgItem,hWnd,1005 
	mov hScroll,eax 
	invoke SendMessage,hScroll,TBM_SETPAGESIZE,0,9 
	invoke SetWindowLong,hScroll,GWL_WNDPROC,offset ScrollProc 
	invoke SetWindowLong,hScroll,GWL_USERDATA,eax 
	invoke InvalidateRect,hScroll,NULL,TRUE 
 
	invoke GetDlgItem,hWnd,5 ;获得列表框的句柄并保存 
	mov hList,eax 
	invoke SetWindowLong,eax,GWL_WNDPROC,offset ListProc 
	invoke SetWindowLong,hList,GWL_USERDATA,eax 
	invoke InvalidateRect,hList,NULL,TRUE 
 
	invoke GetDlgItem,hWnd,6 ;获得列表框1的句柄并保存 
	mov hList1,eax 
 
	;状态显示栏 
	invoke GetDlgItem,hWnd,1001 
	mov TempNum,eax 
	invoke SetWindowLong,eax,GWL_WNDPROC,offset StaticProc 
	invoke SetWindowLong,TempNum,GWL_USERDATA,eax 
	invoke InvalidateRect,TempNum,NULL,TRUE 
	;音量控制杆 
	invoke GetDlgItem,hWnd,1000 
	mov TempNum,eax 
	invoke SetWindowLong,eax,GWL_WNDPROC,offset SoundConProc 
	invoke SetWindowLong,TempNum,GWL_USERDATA,eax 
	invoke InvalidateRect,TempNum,NULL,TRUE 
	invoke SendMessage,TempNum,TBM_SETRANGEMAX,TRUE,255 
	invoke SendMessage,TempNum,TBM_SETPOS,TRUE,255 
 
	;声道控制杆 
	invoke GetDlgItem,hWnd,1002 
	 
	mov TempNum,eax 
	invoke SetWindowLong,eax,GWL_WNDPROC,offset SoundConProc 
	invoke SetWindowLong,TempNum,GWL_USERDATA,eax 
	invoke InvalidateRect,TempNum,NULL,TRUE 
	invoke SendMessage,TempNum,TBM_SETRANGEMAX,TRUE,255 
	invoke SendMessage,TempNum,TBM_SETPOS,TRUE,127 
 
	;歌词速度控制杆 
	invoke GetDlgItem,hWnd,1006 
	mov TempNum,eax 
	invoke SetWindowLong,eax,GWL_WNDPROC,offset SoundConProc 
	invoke SetWindowLong,TempNum,GWL_USERDATA,eax 
	invoke InvalidateRect,TempNum,NULL,TRUE 
	invoke SendMessage,TempNum,TBM_SETRANGEMIN,TRUE,5 
	invoke SendMessage,TempNum,TBM_SETPAGESIZE,0,5 
	invoke SendMessage,TempNum,TBM_SETRANGEMAX,TRUE,30 
 
	;播放预读控制杆 
	invoke GetDlgItem,hWnd,1007 
	mov TempNum,eax 
	invoke SetWindowLong,eax,GWL_WNDPROC,offset SoundConProc 
	invoke SetWindowLong,TempNum,GWL_USERDATA,eax 
	invoke InvalidateRect,TempNum,NULL,TRUE 
	invoke SendMessage,TempNum,TBM_SETRANGEMIN,TRUE,-5 
	invoke SendMessage,TempNum,TBM_SETPAGESIZE,0,1 
	invoke SendMessage,TempNum,TBM_SETRANGEMAX,TRUE,5 
 
	;进度条 
	invoke GetDlgItem,hWnd,1004 
	mov hTrack,eax 
	invoke SetWindowLong,eax,GWL_WNDPROC,offset TrackProc 
	invoke SetWindowLong,hTrack,GWL_USERDATA,eax 
	invoke SendMessage,hTrack,TBM_SETRANGEMAX,TRUE,0 
	invoke InvalidateRect,hTrack,NULL,TRUE 
 
	;歌词显示栏 
	invoke GetDlgItem,hWnd,1009 
	mov TempNum,eax 
	invoke SetWindowLong,eax,GWL_WNDPROC,offset SongWordProc 
	invoke SetWindowLong,TempNum,GWL_USERDATA,eax 
	invoke InvalidateRect,TempNum,NULL,TRUE 
 
	;时间显示栏 
	invoke GetDlgItem,hWnd,9 
	mov TempNum,eax 
	invoke SetWindowLong,eax,GWL_WNDPROC,offset TimeProc 
	invoke SetWindowLong,TempNum,GWL_USERDATA,eax 
	invoke InvalidateRect,TempNum,NULL,TRUE 
 
	;拖动条 
	invoke GetDlgItem,hWnd,8 
	mov TempNum,eax 
	invoke SetWindowLong,eax,GWL_WNDPROC,offset DragProc 
	invoke SetWindowLong,TempNum,GWL_USERDATA,eax 
	invoke InvalidateRect,TempNum,NULL,TRUE 
 
	;最小化、最大化、弹出点 
	mov TempNum,2 
	@@: 
	invoke GetDlgItem,hWnd,TempNum 
	push eax 
	invoke SetWindowLong,eax,GWL_WNDPROC,offset ControlProc 
	pop ecx 
	push ecx 
	invoke SetWindowLong,ecx,GWL_USERDATA,eax 
	pop eax 
	invoke InvalidateRect,eax,NULL,TRUE 
	inc TempNum 
	cmp TempNum,4 
	jbe @B 
 
	;=========================================================================================================== 
	;子类化所有按钮 
	;=========================================================================================================== 
	mov TempNum,10 
	@@: 
	invoke GetDlgItem,hWnd,TempNum 
	push eax 
	invoke SetWindowLong,eax,GWL_WNDPROC,offset ButtProc 
	pop ecx 
	invoke SetWindowLong,ecx,GWL_USERDATA,eax 
	inc TempNum 
	cmp TempNum,21 
	jbe @B