2014-09-03 20:21 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/gtwin/gtwin.c
+ added support for disabling [x] button of console window in older
MS-Windows versions which do not have GetConsoleWindow() function,
i.e. Win9x/ME
This commit is contained in:
@@ -10,6 +10,12 @@
|
||||
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
|
||||
*/
|
||||
|
||||
2014-09-03 20:21 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
|
||||
* src/rtl/gtwin/gtwin.c
|
||||
+ added support for disabling [x] button of console window in older
|
||||
MS-Windows versions which do not have GetConsoleWindow() function,
|
||||
i.e. Win9x/ME
|
||||
|
||||
2014-08-27 18:19 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
|
||||
* include/hbserial.ch
|
||||
* src/rtl/itemseri.c
|
||||
|
||||
@@ -80,6 +80,7 @@
|
||||
#include "hbapiitm.h"
|
||||
#include "hbapierr.h"
|
||||
#include "hbwinuni.h"
|
||||
#include "hbdate.h"
|
||||
|
||||
#include "hbapicdp.h"
|
||||
|
||||
@@ -820,6 +821,45 @@ static HB_BOOL hb_gt_win_SetPalette( HB_BOOL bSet, COLORREF * colors )
|
||||
#endif
|
||||
}
|
||||
|
||||
HWND hb_getConsoleWindowHandle( void )
|
||||
{
|
||||
TCHAR oldTitle[ 256 ], tmpTitle[ 32 ];
|
||||
HWND hWnd = NULL;
|
||||
|
||||
if( GetConsoleTitle( oldTitle, HB_SIZEOFARRAY( oldTitle ) ) )
|
||||
{
|
||||
int iTmp = 0;
|
||||
DWORD dwVal;
|
||||
|
||||
tmpTitle[ iTmp++ ] = TEXT( '>' );
|
||||
tmpTitle[ iTmp++ ] = TEXT( '>' );
|
||||
dwVal = GetCurrentProcessId();
|
||||
do
|
||||
tmpTitle[ iTmp++ ] = TEXT( 'A' ) + dwVal % 26;
|
||||
while( ( dwVal /= 26 ) );
|
||||
tmpTitle[ iTmp++ ] = TEXT( ':' );
|
||||
dwVal = GetTickCount();
|
||||
do
|
||||
tmpTitle[ iTmp++ ] = TEXT( 'A' ) + dwVal % 26;
|
||||
while( ( dwVal /= 26 ) );
|
||||
tmpTitle[ iTmp++ ] = TEXT( '<' );
|
||||
tmpTitle[ iTmp++ ] = TEXT( '<' );
|
||||
tmpTitle[ iTmp ] = TEXT( '\0' );
|
||||
|
||||
if( SetConsoleTitle( tmpTitle ) )
|
||||
{
|
||||
HB_MAXUINT nTimeOut = hb_dateMilliSeconds() + 200;
|
||||
/* repeat in a loop to be sure title is changed */
|
||||
do
|
||||
hWnd = FindWindow( NULL, tmpTitle );
|
||||
while( hWnd == NULL && hb_dateMilliSeconds() < nTimeOut );
|
||||
SetConsoleTitle( oldTitle );
|
||||
}
|
||||
}
|
||||
|
||||
return hWnd;
|
||||
}
|
||||
|
||||
static HB_BOOL hb_gt_win_SetCloseButton( HB_BOOL bSet, HB_BOOL bClosable )
|
||||
{
|
||||
static HB_BOOL s_bChecked = HB_FALSE;
|
||||
@@ -833,6 +873,7 @@ static HB_BOOL hb_gt_win_SetCloseButton( HB_BOOL bSet, HB_BOOL bClosable )
|
||||
#endif
|
||||
|
||||
HB_BOOL bOldClosable = HB_TRUE;
|
||||
HWND hWnd;
|
||||
|
||||
if( ! s_bChecked )
|
||||
{
|
||||
@@ -848,8 +889,13 @@ static HB_BOOL hb_gt_win_SetCloseButton( HB_BOOL bSet, HB_BOOL bClosable )
|
||||
}
|
||||
|
||||
if( s_pGetConsoleWindow )
|
||||
hWnd = s_pGetConsoleWindow();
|
||||
else
|
||||
hWnd = hb_getConsoleWindowHandle();
|
||||
|
||||
if( hWnd )
|
||||
{
|
||||
HMENU hSysMenu = GetSystemMenu( s_pGetConsoleWindow(), FALSE );
|
||||
HMENU hSysMenu = GetSystemMenu( hWnd, FALSE );
|
||||
|
||||
if( hSysMenu )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user