Heres my code
; #########################################################################
;
; This Is My Code
;
;
;
; #########################################################################
.386
.model flat, stdcall ; 32 bit memory model
option casemap :none ; case sensitive
include trainer.inc ; local includes for this file
; #########################################################################
.data
; ### Constants Below
editbox equ 3000
; ### Constants Above
; ### Bytes Below
BUTTON dd 1
SetTextButton0 db 'hello',0
SetTextButton1 db 'goodbye',0
; ### Bytes Above
; ### Button Messages Below
; ### Button Messages Above
WindCap db 'Not Set',0
szDisplayName db ' ',0
.code
start:
invoke GetModuleHandle, NULL
mov hInstance, eax
invoke GetCommandLine
mov CommandLine, eax
invoke WinMain,hInstance,NULL,CommandLine,SW_SHOWDEFAULT
invoke ExitProcess,eax
; #########################################################################
WinMain proc hInst :DWORD,
hPrevInst :DWORD,
CmdLine :DWORD,
CmdShow :DWORD
;====================
; Put LOCALs on stack
;====================
LOCAL wc :WNDCLASSEX
LOCAL msg :MSG
LOCAL Wwd :DWORD
LOCAL Wht :DWORD
LOCAL Wtx :DWORD
LOCAL Wty :DWORD
;==================================================
; Fill WNDCLASSEX structure with required variables
;==================================================
invoke LoadIcon,hInst,500 ; icon ID
mov hIcon, eax
szText szClassName,"Trainer_Class"
mov wc.cbSize, sizeof WNDCLASSEX
mov wc.style, CS_HREDRAW or CS_VREDRAW \
or CS_BYTEALIGNWINDOW
mov wc.lpfnWndProc, offset WndProc
mov wc.cbClsExtra, NULL
mov wc.cbWndExtra, NULL
m2m wc.hInstance, hInst
mov wc.hbrBackground, COLOR_BTNFACE+1
mov wc.lpszMenuName, NULL
mov wc.lpszClassName, offset szClassName
m2m wc.hIcon, hIcon
invoke LoadCursor,NULL,IDC_ARROW
mov wc.hCursor, eax
m2m wc.hIconSm, hIcon
invoke RegisterClassEx, ADDR wc
;================================
; Centre window at following size
;================================
mov Wwd, 155 ; Dialog Width
mov Wht, 105 ; Dialog Height
invoke GetSystemMetrics,SM_CXSCREEN
invoke TopXY,Wwd,eax
mov Wtx, eax
invoke GetSystemMetrics,SM_CYSCREEN
invoke TopXY,Wht,eax
mov Wty, eax
invoke CreateWindowEx,WS_EX_LEFT,
ADDR szClassName,
ADDR szDisplayName,
WS_MINIMIZEBOX or WS_OVERLAPPED or WS_SYSMENU,
Wtx,Wty,Wwd,Wht,
NULL,NULL,
hInst,NULL
mov hWnd,eax
invoke ShowWindow,hWnd,SW_SHOWNORMAL
invoke UpdateWindow,hWnd
;===================================
; Loop until PostQuitMessage is sent
;===================================
StartLoop:
invoke GetMessage,ADDR msg,NULL,0,0
cmp eax, 0
je ExitLoop
invoke TranslateMessage, ADDR msg
invoke DispatchMessage, ADDR msg
jmp StartLoop
ExitLoop:
return msg.wParam
WinMain endp
; #########################################################################
WndProc proc hWin :DWORD,
uMsg :DWORD,
wParam :DWORD,
lParam :DWORD
LOCAL var :DWORD
LOCAL caW :DWORD
LOCAL caH :DWORD
LOCAL color :DWORD
LOCAL hDC :DWORD
LOCAL Rct :RECT
LOCAL Ps :PAINTSTRUCT
LOCAL buffer1[128]:BYTE
LOCAL buffer2[128]:BYTE
LOCAL lfnt :LOGFONT
LOCAL psd :PAGESETUPDLG
LOCAL pd :PRINTDLG
.if uMsg == WM_COMMAND
MOV EAX, wParam
.if wParam == 499
.elseif wParam == 500
ButtonJump_Jump500:
.if BUTTON == 1
MOV BUTTON, 0
Invoke SetDlgItemText, hWin, editbox, ADDR SetTextButton0
.else
MOV BUTTON, 1
Invoke SetDlgItemText, hWin, editbox, ADDR SetTextButton1
.endif
.endif
.elseif uMsg == WM_CREATE
Invoke Protection
MOV HotKeyMiniToggle, TRUE
szText font1,'MS Sans Serif'
invoke CreateFont,8,5,0,0,500,0,0,0, \
DEFAULT_CHARSET,0,0,0,\
DEFAULT_PITCH,ADDR font1
mov hFont, eax
Invoke SetTimer, hWin, 1, 100, 0 ; HotKey Timer
Invoke SetTimer, hWin, 2, 300, 0 ; EditBox Timer 1
Invoke SetTimer, hWin, 3, 300, 0 ; EditBox Timer 2
szText ETxt1," "
invoke EditBox,ADDR ETxt1,hWin,10,13,110,19,3000
szText bTxt1,"SAY"
invoke PushButton,ADDR bTxt1,hWin,9,38,110,20,500
.elseif uMsg == WM_TIMER
Invoke Protection
.If wParam == 1 ; ### Timer Below ###
.Endif ; ### Timer Above ###
.If wParam == 2 ; ### Timer Below ###
.Endif ; ### Timer Above ###
.If wParam == 3 ; ### Timer Below ###
.Endif ; ### Timer Above ###
.elseif uMsg == WM_PAINT
invoke BeginPaint,hWin,ADDR Ps
mov hDC, eax
invoke Paint_Proc,hWin,hDC
invoke EndPaint,hWin,ADDR Ps
return 0
.elseif uMsg == WM_DESTROY
invoke PostQuitMessage,NULL
return 0
.endif
invoke DefWindowProc,hWin,uMsg,wParam,lParam
ret
WndProc endp
; ########################################################################
TopXY proc wDim:DWORD, sDim:DWORD
shr sDim, 1 ; divide screen dimension by 2
shr wDim, 1 ; divide window dimension by 2
mov eax, wDim ; copy window dimension into eax
sub sDim, eax ; sub half win dimension from half screen dimension
return sDim
TopXY endp
; #########################################################################
Paint_Proc proc hWin:DWORD, hDC:DWORD
LOCAL btn_hi :DWORD
LOCAL btn_lo :DWORD
LOCAL Rct :RECT
invoke GetSysColor,COLOR_BTNHIGHLIGHT
mov btn_hi, eax
invoke GetSysColor,COLOR_BTNSHADOW
mov btn_lo, eax
return 0
Paint_Proc endp
; ########################################################################
end start
This simply write hello/goodbye to an edit box , but for the life of me I can change the text color and background color..At default the text is black and the background of the edit box is white ...I need it to be inverted!! ANy help would be appreciated
Cheers
WM_CTLCOLOREDIT - handle that or if its a static WM_CTLCOLORSTATIC