Home Listing 1 Listing 2 Creditcard

Omhoog
demomenu.bas

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

Bezoek het PB forum in het Nederlands en/of teken mijn gastenboek.

Datum laatste aanpassing:
29 december 2003 03:42:04

Email mij voor reacties,
aanvullingen en correcties