Your code is working fine here with some minor changes. In your RC you were not using 5000 neither 5001,
eddie.prg
#include "FiveWin.ch"
FUNCTION GETPASSWORD()
LOCAL oUSER, oGET, oDlg, lGo := .T.
LOCAL cPASSWORD :=SPAC(10)
LOCAL cUSER :=SPAC(10)
LOCAL NTRIES :=0
DEFINE DIALOG oDLG RESOURCE "INIT_PASS" // of oWND1
REDEFINE GET oUSER VAR cUSER ID 4003 OF ODLG
REDEFINE GET oGET VAR cPASSWORD ID 4004 OF ODLG
REDEFINE BUTTON ID 5000 OF ODLG ;
ACTION NTRIES++,CHKP(cUSER,cPASSWORD,oDLG,@LGO),;
IIF(NTRIES>=3,(MsgStop("PASSWORD INCORRECT") /* ,oWND1:End() */ ),)
oDLG:SETFOCUS()
REDEFINE BUTTON ID 5001 OF ODLG ACTION( Msginfo("Cancel") /*, oWND1:End() */ )
ACTIVATE DIALOG oDLG;
CENTERED
return nil
function Chkp()
return .T.eddie.rc
#include <windows.h>
INIT_PASS DIALOGEX DISCARDABLE 6, 18, 210, 142
STYLE DS_SHELLFONT|WS_POPUP|DS_MODALFRAME|DS_CONTEXTHELP|DS_3DLOOK|WS_CAPTION|WS_SYSMENU|WS_VISIBLE
CAPTION "Dialog"
FONT 8, "Tahoma"
{
CONTROL "OK", 5000, "Button", WS_TABSTOP, 156, 100, 45, 15
CONTROL "Cancel", 5001, "Button", WS_TABSTOP, 156, 116, 45, 15
CONTROL "User Name", 4001, "Static", WS_GROUP, 8, 16, 40, 8
CONTROL "Password", 4002, "Static", WS_GROUP, 8, 44, 40, 8
CONTROL "", 4003, "Edit", ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 68, 12, 88, 12
CONTROL "", 4004, "Edit", ES_AUTOHSCROLL|ES_PASSWORD|WS_BORDER|WS_TABSTOP, 68, 44, 88, 12
}