News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

text colour in edit box

Started by m-tek, October 17, 2007, 12:33:25 PM

Previous topic - Next topic

m-tek

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

evlncrn8

WM_CTLCOLOREDIT - handle that or if its a static WM_CTLCOLORSTATIC