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