Is there a way to display a bitmap picture on the face of a menu using the following .bas & .rc files?
//ck001.rc
#include "resource.h"
#define IDM_Update 1000
#define IDM_Dbgrid 1002
#define IDM_Rename 1003
#define IDM_Reconsile 1011
#define IDM_Outstnd 1012
#define IDM_Scntls 1013
#define IDM_EXIT 1004
ck001 MENU
{
POPUP "&File"
{
MENUITEM "&Update...", IDM_Update
MENUITEM "&Dbgrid...", IDM_Dbgrid
MENUITEM "&Rename...", IDM_Rename
MENUITEM SEPARATOR
MENUITEM "E&xit", IDM_EXIT
}
POPUP "&Reports"
{
MENUITEM "&Reconsile...", IDM_Reconsile
MENUITEM "&Outstnd...", IDM_Outstnd
MENUITEM "&Scntls...", IDM_Scntls
}
}
'*******************************************************
'ck001.bas
#COMPILE EXE
#CONSOLE OFF
#INCLUDE "Win32api.inc"
#RESOURCE "ck001.pbr"
%IDM_Update = 1000
%IDM_Dbgrid = 1002
%IDM_Rename = 1003
%IDM_EXIT = 1004
%IDM_Reconsile = 1011
%IDM_Outstnd = 1012
%IDM_Scntls = 1013
$exename1 = "c:\accounts\cnbdt\ck001\ck002.exe" 'update records
$exename2 = "c:\accounts\cnbdt\ck001\ck004.exe" 'reconsiled report
$exename3 = "c:\accounts\cnbdt\ck001\ck005.exe" 'outstanding report
$exename4 = "c:\accounts\cnbdt\ck001\ck007.exe" 'totals to screen
$exename5 = "c:\accounts\cnbdt\ck001\dbgrid.exe" 'scroll file
$exename6 = "c:\accounts\cnbdt\ck001\ck013.exe" 'change name of file
$exename7 = "c:\accounts\cnbdt\ck001\ck006.exe" 'acctno totals
%cmdline = 1
FUNCTION WndProc(BYVAL hWnd AS LONG, BYVAL wMsg AS LONG, BYVAL wParam AS LONG, BYVAL lParam AS LONG) AS LONG
SELECT CASE AS LONG wMsg
CASE %WM_CREATE
DIM result AS INTEGER
LOCAL hInst AS DWORD
CASE %WM_COMMAND
SELECT CASE LOWRD(wParam)
CASE %IDM_Update
result = SHELL( $exename1, %cmdline )
IF result = -1 THEN
BEEP
END IF
CASE %IDM_Dbgrid
result = SHELL( $exename5, %cmdline )
IF result = -1 THEN
BEEP
END IF
CASE %IDM_Rename
result = SHELL( $exename6, %cmdline )
IF result = -1 THEN
BEEP
END IF
CASE %IDM_Reconsile
result = SHELL( $exename2, %cmdline )
IF result = -1 THEN
BEEP
END IF
CASE %IDM_Outstnd
result = SHELL( $exename3, %cmdline )
IF result = -1 THEN
BEEP
END IF
CASE %IDM_Scntls
result = SHELL( $exename4, %cmdline )
IF result = -1 THEN
BEEP
END IF
CASE %IDM_EXIT
PRINT "Send A Message To Windows To Close The Application."
CALL SendMessage(hWnd,%WM_CLOSE,0,0)
END SELECT
WndProc=0
EXIT FUNCTION
CASE %WM_CLOSE
CALL DestroyWindow(hWnd)
' END IF
WndProc=0
EXIT FUNCTION
CASE %WM_DESTROY
CALL PostQuitMessage(0)
WndProc=0
EXIT FUNCTION
END SELECT
WndProc=DefWindowProc(hWnd,wMsg,wParam,lParam)
END FUNCTION
FUNCTION WINMAIN(BYVAL hIns AS LONG, BYVAL hPrev AS LONG,BYVAL lpCL AS ASCIIZ PTR, BYVAL IS AS LONG) AS LONG
LOCAL winclass AS WndClassEx
LOCAL szAppName AS ASCIIZ*8
LOCAL hMainWnd AS DWORD
LOCAL Msg AS tagMsg
szAppName="ck001"
winclass.lpszClassName=VARPTR(szAppName) : winclass.lpfnWndProc=CODEPTR(WndProc)
winclass.cbSize=SIZEOF(winclass) : winclass.style=%CS_HREDRAW OR %CS_VREDRAW
winclass.cbClsExtra=0 : winclass.cbWndExtra=0
winclass.hInstance=hIns : winclass.hIcon=LoadIcon(%NULL,BYVAL %IDI_APPLICATION)
winclass.hCursor=LoadCursor(%NULL, BYVAL %IDC_ARROW) : winclass.hbrBackground=%COLOR_BTNFACE+1
winclass.lpszMenuName=VARPTR(szAppName) : winclass.hIconSm=LoadIcon(%NULL, BYVAL %IDI_APPLICATION)
CALL RegisterClassEx(winclass)
hMainWnd=CreateWindowEx(0,szAppName," Check Account ",%WS_OVERLAPPEDWINDOW,250,140,525,325,0,0,hIns,BYVAL 0)
ShowWindow hMainWnd,IS
UpdateWindow hMainWnd
WHILE GetMessage(Msg,%NULL,0,0)
CALL TranslateMessage(Msg)
CALL DispatchMessage(Msg)
WEND
FUNCTION=msg.wParam
END FUNCTION
//ck001.rc
#include "resource.h"
#define IDM_Update 1000
#define IDM_Dbgrid 1002
#define IDM_Rename 1003
#define IDM_Reconsile 1011
#define IDM_Outstnd 1012
#define IDM_Scntls 1013
#define IDM_EXIT 1004
ck001 MENU
{
POPUP "&File"
{
MENUITEM "&Update...", IDM_Update
MENUITEM "&Dbgrid...", IDM_Dbgrid
MENUITEM "&Rename...", IDM_Rename
MENUITEM SEPARATOR
MENUITEM "E&xit", IDM_EXIT
}
POPUP "&Reports"
{
MENUITEM "&Reconsile...", IDM_Reconsile
MENUITEM "&Outstnd...", IDM_Outstnd
MENUITEM "&Scntls...", IDM_Scntls
}
}
'*******************************************************
'ck001.bas
#COMPILE EXE
#CONSOLE OFF
#INCLUDE "Win32api.inc"
#RESOURCE "ck001.pbr"
%IDM_Update = 1000
%IDM_Dbgrid = 1002
%IDM_Rename = 1003
%IDM_EXIT = 1004
%IDM_Reconsile = 1011
%IDM_Outstnd = 1012
%IDM_Scntls = 1013
$exename1 = "c:\accounts\cnbdt\ck001\ck002.exe" 'update records
$exename2 = "c:\accounts\cnbdt\ck001\ck004.exe" 'reconsiled report
$exename3 = "c:\accounts\cnbdt\ck001\ck005.exe" 'outstanding report
$exename4 = "c:\accounts\cnbdt\ck001\ck007.exe" 'totals to screen
$exename5 = "c:\accounts\cnbdt\ck001\dbgrid.exe" 'scroll file
$exename6 = "c:\accounts\cnbdt\ck001\ck013.exe" 'change name of file
$exename7 = "c:\accounts\cnbdt\ck001\ck006.exe" 'acctno totals
%cmdline = 1
FUNCTION WndProc(BYVAL hWnd AS LONG, BYVAL wMsg AS LONG, BYVAL wParam AS LONG, BYVAL lParam AS LONG) AS LONG
SELECT CASE AS LONG wMsg
CASE %WM_CREATE
DIM result AS INTEGER
LOCAL hInst AS DWORD
CASE %WM_COMMAND
SELECT CASE LOWRD(wParam)
CASE %IDM_Update
result = SHELL( $exename1, %cmdline )
IF result = -1 THEN
BEEP
END IF
CASE %IDM_Dbgrid
result = SHELL( $exename5, %cmdline )
IF result = -1 THEN
BEEP
END IF
CASE %IDM_Rename
result = SHELL( $exename6, %cmdline )
IF result = -1 THEN
BEEP
END IF
CASE %IDM_Reconsile
result = SHELL( $exename2, %cmdline )
IF result = -1 THEN
BEEP
END IF
CASE %IDM_Outstnd
result = SHELL( $exename3, %cmdline )
IF result = -1 THEN
BEEP
END IF
CASE %IDM_Scntls
result = SHELL( $exename4, %cmdline )
IF result = -1 THEN
BEEP
END IF
CASE %IDM_EXIT
PRINT "Send A Message To Windows To Close The Application."
CALL SendMessage(hWnd,%WM_CLOSE,0,0)
END SELECT
WndProc=0
EXIT FUNCTION
CASE %WM_CLOSE
CALL DestroyWindow(hWnd)
' END IF
WndProc=0
EXIT FUNCTION
CASE %WM_DESTROY
CALL PostQuitMessage(0)
WndProc=0
EXIT FUNCTION
END SELECT
WndProc=DefWindowProc(hWnd,wMsg,wParam,lParam)
END FUNCTION
FUNCTION WINMAIN(BYVAL hIns AS LONG, BYVAL hPrev AS LONG,BYVAL lpCL AS ASCIIZ PTR, BYVAL IS AS LONG) AS LONG
LOCAL winclass AS WndClassEx
LOCAL szAppName AS ASCIIZ*8
LOCAL hMainWnd AS DWORD
LOCAL Msg AS tagMsg
szAppName="ck001"
winclass.lpszClassName=VARPTR(szAppName) : winclass.lpfnWndProc=CODEPTR(WndProc)
winclass.cbSize=SIZEOF(winclass) : winclass.style=%CS_HREDRAW OR %CS_VREDRAW
winclass.cbClsExtra=0 : winclass.cbWndExtra=0
winclass.hInstance=hIns : winclass.hIcon=LoadIcon(%NULL,BYVAL %IDI_APPLICATION)
winclass.hCursor=LoadCursor(%NULL, BYVAL %IDC_ARROW) : winclass.hbrBackground=%COLOR_BTNFACE+1
winclass.lpszMenuName=VARPTR(szAppName) : winclass.hIconSm=LoadIcon(%NULL, BYVAL %IDI_APPLICATION)
CALL RegisterClassEx(winclass)
hMainWnd=CreateWindowEx(0,szAppName," Check Account ",%WS_OVERLAPPEDWINDOW,250,140,525,325,0,0,hIns,BYVAL 0)
ShowWindow hMainWnd,IS
UpdateWindow hMainWnd
WHILE GetMessage(Msg,%NULL,0,0)
CALL TranslateMessage(Msg)
CALL DispatchMessage(Msg)
WEND
FUNCTION=msg.wParam
END FUNCTION
Comment