home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BUG 4
/
BUGCD1997_05.BIN
/
aplic
/
clip4win
/
clip4win.exe
/
C4W30E.HUF
/
SOURCE
/
OD.PRG
< prev
next >
Wrap
Text File
|
1993-09-22
|
1KB
|
76 lines
#define WIN_WANT_ALL
#include "windows.ch"
#define APPNAME "OWNERB"
#define IDC_BTN1 1
static hWnd
static aDbg
function main()
static nProc
local hBtn, nEvent
hWnd = WinSetup(APPNAME, "Clip-4-Win Owner Draw Button Demo")
nProc = SubClassWindow(hWnd, ;
{|hWnd, nMsg, nwParam, nlParam| ;
BtnWndProc(nProc, hWnd, nMsg, nwParam, nlParam)}, ;
WM_DRAWITEM)
hBtn = CreateWindow("button", ;
"Button", ;
WS_CHILD + WS_VISIBLE + BS_OWNERDRAW, ;
40, 20, ;
40, 20, ;
hWnd, ;
IDC_BTN1)
@ 10,10 say "...."
do while .t.
do while (nEvent := ChkEvent()) == EVENT_NONE
enddo
do case
case nEvent == EVENT_QUIT
exit
endcase
enddo
if IsWindow(hWnd)
DestroyWindow(hWnd)
endif
UnregisterClass(APPNAME)
return 0
#define ODT_BUTTON 4
static function BtnWndProc(nProc, hWnd, nMsg, nwParam, nlParam)
static cDIB
// nMsg == WM_DRAWITEM, so nlParam is LPDRAWITEMSTRUCT
local aDIS := bin2a(c4w_peek(nlParam, 26), "uint[7],int[4],dword")
local hDC
aDbg = aDIS
if cDIB == nil
cDIB = ReadDIB("play.bmp")
endif
if aDIS[1] == ODT_BUTTON
hDC = GetDC(hWnd)
ShowDIB(hDC, cDIB)
ReleaseDC(hWnd, hDC)
return 1
endif
return CallWindowProc(nProc, hWnd, nMsg, nwParam, nlParam)