
Email me
| |
' Windows Menu Sample Code
$COMPILE EXE
$DIM ALL
DEFINT A-Z
$INCLUDE "C:\PBDLL20\WINAPI\WINAPI.INC"
FUNCTION WINMAIN(BYVAL hInstance%, BYVAL hPrevInstance%, lpCmdLine AS ASCIIZ, BYVAL nCmdShow%) AS INTEGER
DIM Msg AS tagMsg
DIM wClass AS WndClass
DIM szClassName AS ASCIIZ * 20
DIM szAppTitle AS ASCIIZ * 80
DIM hWnd AS WORD
szClassName = "DEMOMENU"
szAppTitle = "Menu Demonstration"
' Create Window Class
IF ISFALSE(hPrevInstance%) THEN
wClass.style = %CS_HREDRAW OR %CS_VREDRAW
wClass.lpfnWndProc = CODEPTR(WndProc)
wClass.cbClsExtra = 0
wClass.cbWndExtra = 0
wClass.hInstance = hInstance%
wClass.hIcon = LoadIcon(hInstance%, BYVAL %IDI_APPLICATION )
wClass.hCursor = LoadCursor(%NULL, BYVAL %IDC_ARROW)
wClass.hbrBackground = GetStockObject(%GRAY_BRUSH)
wClass.lpszMenuName = VARPTR(szClassName)
wClass.lpszClassName = VARPTR(szClassName)
RegisterClass wClass
END IF
' Create Window and display it
hWnd = CreateWindow(szClassName, szAppTitle, %WS_OVERLAPPEDWINDOW, %CW_UseDefault, %CW_UseDefault, _
%CW_UseDefault, %CW_UseDefault, %NULL, %NULL, hInstance%, 0)
ShowWindow hWnd, nCmdShow%
UpdateWindow hWnd
' Main message loop
WHILE GetMessage(Msg, %NULL, 0, 0)
TranslateMessage Msg
DispatchMessage Msg
WEND
FUNCTION = Msg.wParam
END FUNCTION
FUNCTION WndProc(BYVAL hWnd%, BYVAL wMsg%, BYVAL wParam%, BYVAL lParam???) EXPORT AS LONG
SELECT CASE wMsg%
CASE %WM_COMMAND
SELECT CASE wParam%
CASE 1 : MSGBOX "New Selected"
CASE 2 : MSGBOX "Open Selected"
CASE 3 : MSGBOX "Save Selected"
CASE 4 : MSGBOX "Save As Selected"
CASE 5
MSGBOX "Exit Selected"
SendMessage hWnd%, %WM_CLOSE, 0, 0&
FUNCTION = 0
EXIT FUNCTION
CASE 11 : MSGBOX "Undo Selected"
CASE 12 : MSGBOX "Redo Selected"
CASE 13 : MSGBOX "Cut Selected"
CASE 14 : MSGBOX "Copy Selected"
CASE 15 : MSGBOX "Paste Selected"
CASE 16 : MSGBOX "Delete Selected"
CASE 21 : MSGBOX "Process Selected"
CASE 22 : MSGBOX "Simulate Selected"
CASE 23 : MSGBOX "Error Check Selected"
CASE 31 : MSGBOX "Contents Selected"
CASE 32 : MSGBOX "Index Selected"
CASE 33 : MSGBOX "Search Help Selected"
CASE 34
MSGBOX "BASICally Speaking" + CHR$(13,10) + "Menu Demonstration"
END SELECT
CASE %WM_DESTROY
PostQuitMessage 0
FUNCTION = 0
EXIT FUNCTION
END SELECT
FUNCTION = DefWindowProc(hWnd%, wMsg%, wParam%, lParam???)
END FUNCTION
|