I don't know whether many know of your ProStart, however, I used
it just now to make the following application to test the
cButton.dll. The whole exercise took less than a minute.
Here is the code (Header.inc is commented at the start):-
Code:
'HEADER.INC ' Comment out exclusion for required control ' %NOANIMATE = 1 ' %NOBUTTON = 1 ' %NOCOMBO = 1 ' %NODRAGLIST = 1 ' %NOHEADER = 1 ' %NOIMAGELIST = 1 ' %NOLISTVIEW = 1 ' %NOLIST = 1 ' ' %NOSTATUSBAR = 1 ' %NOTABCONTROL = 1 ' %NOTOOLBAR = 1 ' %NOTOOLTIPS = 1 ' %NOTRACKBAR = 1 ' %NOTREEVIEW = 1 ' %NOUPDOWN = 1 ' %NOREBAR = 1 ' %NOEDIT = 1 ' %NOCOMBOEX = 1 ' ' %NOPRINTDLG = 1 ' #INCLUDE "d:\pbdll60\winapi\WIN32API.INC" ' ' #INCLUDE "d:\pbdll60\winapi\Comdlg32.inc" ' #INCLUDE "d:\pbdll60\winapi\Commctrl.inc" ' ' #RESOURCE "tstctrl.pbr" ' GLOBAL hInstance AS LONG ' GLOBAL hWnd AS LONG ' GLOBAL Sw& ' GLOBAL Sh& ' GLOBAL DisplayName$ ' GLOBAL hMnu& ' GLOBAL hStatus AS LONG ' 'DECLARE SUB Paint_Proc(hWin AS LONG,hDC AS LONG) 'END OF HEADER.INC '########################################################################## $COMPILE EXE $INCLUDE "HEADER.INC" DECLARE FUNCTION cButton LIB "Cbutton.dll" ALIAS "cButton" _ (hParent AS LONG, txt$, _ tx AS LONG,ty AS LONG, _ wd AS LONG,ht AS LONG, _ align AS LONG,ID AS LONG) AS LONG '########################################################################## FUNCTION WINMAIN(BYVAL Instance AS LONG, _ BYVAL hPrevInstance AS LONG, _ lpszCmdLine AS ASCIIZ PTR, _ BYVAL nCmdShow AS LONG) AS LONG LOCAL Msg AS tagMsg LOCAL wndclass AS WNDCLASSEX LOCAL szClassName AS ASCIIZ * 32 LOCAL Wid& LOCAL Hgt& LOCAL x& hInstance=Instance DisplayName$= "New Project" InitCommonControls szClassName = "Project_Class" wndclass.cbSize = SIZEOF(wndclass) wndclass.style = %CS_HREDRAW OR %CS_VREDRAW OR _ %CS_BYTEALIGNCLIENT OR %CS_BYTEALIGNWINDOW wndclass.lpfnWndProc = CODEPTR(WndProc) wndclass.cbClsExtra = 0 wndclass.cbWndExtra = 0 wndclass.hInstance = hInstance wndclass.hIcon = LoadIcon(hInstance,BYVAL 1) wndclass.hCursor = LoadCursor(%NULL,BYVAL %IDC_ARROW) wndclass.hbrBackground = %COLOR_BTNFACE + 1 wndclass.lpszMenuName = %NULL wndclass.lpszClassName = VARPTR(szClassName) wndclass.hIconSm = LoadIcon(hInstance,BYVAL 1) RegisterClassEx wndclass Sw&=GetSystemMetrics(%SM_CXSCREEN) Sh&=GetSystemMetrics(%SM_CYSCREEN) Wid& = Sw& * .75 ' Set width & Height to percentage of screen size. Hgt& = Sh& * .70 ' Wid& = 300 ' For fixed width ' Hgt& = 300 ' For fixed height '------------------------- ' Window is self centering '------------------------- hWnd = CreateWindowEx(%WS_EX_OVERLAPPEDWINDOW, _ szClassName, _ ' window class name BYCOPY DisplayName$, _ ' window title %WS_OVERLAPPEDWINDOW, _ ' window style Sw&\2-(Wid&\2), _ ' initial x position Sh&\2-(Hgt&\2), _ ' initial y position Wid&, _ ' initial x size Hgt&, _ ' initial y size %NULL, _ ' parent window handle %NULL, _ ' window menu handle hInstance, _ ' program instance handle BYVAL %NULL) ' creation parameters '------------------------- hMnu&=LoadMenu( hInstance,BYVAL 10) SetMenu hWnd, hMnu& hStatus=CreateStatusWindow(%WS_CHILD OR %WS_VISIBLE OR _ %SBS_SIZEGRIP,"", hWnd, 200) ShowWindow hWnd, nCmdShow UpdateWindow hWnd MsgLoop: x&=GetMessage(Msg,%NULL,0,0) TranslateMessage Msg DispatchMessage Msg ! cmp x&, 0 ! je MsgOut ! jmp MsgLoop MsgOut: FUNCTION = Msg.wParam END FUNCTION '########################################################################## FUNCTION WndProc(BYVAL hWin AS LONG, _ BYVAL Msg AS LONG, _ BYVAL wParam AS LONG, _ BYVAL lParam AS LONG) EXPORT AS LONG LOCAL hDC AS LONG LOCAL Ps AS PaintStruct LOCAL Rct AS Rect SELECT CASE Msg CASE %WM_COMMAND SELECT CASE wParam CASE 1098 SendMessage hWin,%WM_SYSCOMMAND,%SC_CLOSE,BYVAL %NULL CASE 1099 x&=ShellAbout(hWin,BYCOPY " About "+DisplayName$+"#Windows Template",_ BYCOPY DisplayName$+" Copyright © 1999"+CHR$(13,10)+_ "Your Name Email Address etc...",_ LoadIcon(hInstance,BYVAL 1)) ' CASE %WM_COMMAND ' SELECT CASE wParam CASE 500 SELECT CASE lParam CASE 0 SetWindowText hWin,BYCOPY "Button Down" CASE 1 SetWindowText hWin,BYCOPY "Button Up" END SELECT END SELECT ' CASE %WM_CREATE ' hButn1& = cButton(hWin,"Test Button",10,10,100,25,2,500) ' END SELECT CASE %WM_CREATE hButn1& = cButton(hWin,"Test Button",10,10,100,25,2,500) CASE %WM_SIZE GetWindowRect hStatus,Rct sbh&=Rct.nBottom - Rct.nTop caW&=LOWRD(lParam) caH&=HIWRD(lParam) MoveWindow hStatus, 0,caH&-sbh&,caW&,caH&,%TRUE FUNCTION=0 EXIT FUNCTION CASE %WM_PAINT hDC = BeginPaint(hWin,Ps) GetClientRect hWin,Rct Paint_Proc hWin,hDC EndPaint hWin,Ps FUNCTION=0 EXIT FUNCTION CASE %WM_CLOSE CASE %WM_DESTROY PostQuitMessage 0 FUNCTION=0 EXIT FUNCTION END SELECT FUNCTION = DefWindowProc(hWin,Msg,wParam,lParam) END FUNCTION '########################################################################## SUB Paint_Proc(hWin AS LONG,hDC AS LONG) ' This SUB is for any screen graphics END SUB '########################################################################## [b]The Rc file is :-[/b] #include "d:\pbdll60\winapi\resource.h" 1 ICON MOVEABLE PURE LOADONCALL DISCARDABLE "tstctrl.ico" 10 MENUEX MOVEABLE IMPURE LOADONCALL DISCARDABLE BEGIN POPUP "&File", , , 0 BEGIN MENUITEM "&Exit", 1098 END POPUP "&Help", , , 0 BEGIN MENUITEM "&About", 1099 END END
Leave a comment: