Hi,
I am asking for help with a seemingly simple problem. I'm trying to write a simple GUI window application based solely on the dialog box. Despite correct compilation, the window does not appear. Below is the code. I am using an external application (Resource Builder 4) to compile resource files. Will you help?
====================
{$APPTYPE GUI}
{$LONGSTRINGS OFF}
{$WRITEABLECONST ON}
{$DESCRIPTION 'Default DialogBox based App'}
Program DefBox; Uses Windows, Strings, Messages, CommDlg, DOS;
{$ifdef VER90} { Delphi 2.0 }
type
ptrint = longint;
ptruint = dword;
{$endif}
var
DialogWnd : hWND;
Msg : TMsg;
{$R Defbox.res}
const
MAIN_DIALOG = 200;
TIMER_ID = 9999;
EXIT_BUTTON = 1;
OK_BUTTON = 2;
CANCEL_BUTTON = 3;
function MainDialogProc( Dialog : hWnd; Msg : UINT; wParam, lParam : ptrint ) : ptrint; stdcall;
begin
case Msg of
WM_INITDIALOG : begin
Result:=0;
SetTimer( Dialog, TIMER_ID, 500, nil );
end;
WM_TIMER : begin
end;
WM_COMMAND : begin
case LoWord( wParam ) of
OK_BUTTON : begin
end;
CANCEL_BUTTON : begin
end;
EXIT_BUTTON : SendMessage( Dialog, WM_CLOSE, 0, 0 );
end
end;
WM_CLOSE : begin
KillTimer( Dialog, TIMER_ID );
DestroyWindow( Dialog );
end;
WM_DESTROY : begin
PostQuitMessage( 0 );
Result:=0;
end;
else Result:=0;
end
end;
BEGIN
DialogWnd:=CreateDialogParam( hInstance, MakeIntResource( MAIN_DIALOG ), 0, @MainDialogProc, 0 ); //-- main window
ShowWindow( DialogWnd, SW_SHOWNORMAL );
while GetMessage( @Msg, 0, 0, 0 ) do { wait for message }
begin
TranslateMessage( Msg ); { key conversions }
DispatchMessage( Msg ); { send to window procedure }
end;
END.
=================
Resource:
100 ICON "ruler_pencil.ico"
200 DIALOG MOVEABLE PURE LOADONCALL DISCARDABLE 0, 0, 403, 237
STYLE DS_FIXEDSYS |DS_SETFONT |WS_POPUP |WS_VISIBLE |WS_SYSMENU |WS_THICKFRAME |WS_MAXIMIZEBOX |WS_MINIMIZEBOX |WS_CAPTION
CAPTION "Dialog"
FONT 9, "Ms Shell Dlg"
LANGUAGE LANG_NEUTRAL, 0
BEGIN
CONTROL "Exit",1,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,339,200,50,25
CONTROL "OK",2,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,7,200,50,25
CONTROL "Cancel",3,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,177,200,50,25
END