campo-sirio/al/cpp_ui.win/cxl_ewin.cpp
alex 714dd74636 Archive Library versione 2.00
git-svn-id: svn://10.65.10.50/trunk@5350 c028cbd2-c16b-5b4b-a496-9718f37d4682
1997-10-09 16:09:54 +00:00

144 lines
3.3 KiB
C++
Executable File

//
// CXL_EDIT.CPP
//
// Source file for ArchiveLib 2.0
//
// Copyright (c) Greenleaf Software, Inc. 1994-1996
// All Rights Reserved
//
// CONTENTS
//
// EditDisplay()
//
// DESCRIPTION
//
// C and VB programmers cant use the iostreams operators, so this
// function is used to give them the same capabilities.
//
// REVISION HISTORY
//
// May 21, 1994 1.0A : First release
//
// February 14, 1996 2.0A : New release
//
#include "arclib.h"
#if !defined( AL_IBM )
#pragma hdrstop
#endif
#include <stdarg.h>
#include <stdio.h>
//
// NAME
//
// EditDisplay()
//
// PLATFORMS/ENVIRONMENTS
//
// Windows
// C++ C
//
// SHORT DESCRIPTION
//
// printf() to an edit/text control.
//
// C++ SYNOPSIS
//
// #include "arclib.h"
// #include "winutil.h"
//
// extern "C" void EditDisplay( HWND hDlg,
// int control_id,
// char *fmt,
// ... );
//
// C SYNOPSIS
//
// #include "arclib.h"
// #include "winutil.h"
//
// void EditDisplay( HWND hDlg,
// int control_id,
// char *fmt,
// ... );
//
// VB SYNOPSIS
//
// None, this function just isn't going to work with Vb.
//
// DELPHI SYNOPSIS
//
// None, not a good fit for Delphi.
//
// ARGUMENTS
//
// hDlg : This argument is a window handle. If the next parameter,
// control_id, is set to -1, it means this is the handle of
// the window that will have some new text written to it.
// If control_id is some other value, it means this is the
// handle of a dialog box, and control_id refers to an edit
// control within the dialog box. That edit control is the
// destination for the text output.
//
// control_id : The id of the multiline edit control in a dialog box. If
// set to -1, it means the edit control is not in a dialog box,
// and the hDlg parameter is the handle of the edit control.
//
// fmt : The format parameter to be used in wsprintf.
//
// ... : Any additional arguments that are going to be used by
// vsprintf().
//
// DESCRIPTION
//
// This little function lets you use a printf() style command to print
// data to a multiline edit control. The internal buffer is only 128
// bytes, so please be careful.
//
// RETURNS
//
// Nothing.
//
// EXAMPLE
//
// SEE ALSO
//
// REVISION HISTORY
//
// February 14, 1996 2.0A : New release
//
extern "C" AL_LINKAGE void AL_CFUNCTION
EditDisplay( HWND hDlg, /* Tag public function */
int id,
char AL_DLL_FAR *fmt,
... )
{
char buffer[ 128 ];
HWND window;
va_list args;
va_start( args, fmt );
//
// Watcom does this differently than everyone else. It isn't really
// part of the ANSI spec, so we can't complain.
//
#if !defined( AL_WATCOM )
wvsprintf( buffer, fmt, args );
#else
wvsprintf( buffer, fmt, *args );
#endif
va_end( args );
if ( id == -1 )
window = hDlg;
else
window = GetDlgItem( hDlg, (short int) id );
SendMessage( window,
EM_REPLACESEL,
0,
(LPARAM) ( (LPSTR) buffer ) );
}