The following code must put the window on top always and never loose focus.
Windows is always on top but it looses focus, it seems to me that bLostFocus is not working, I prove with GotFocus and Set Focus and is the same thing.
Could somebody helpme please, becouse I cant find a solution.
Here is the code:
#define SWP_NOSIZE 0x0001
#define SWP_NOMOVE 0x0002
#define SWP_NOACTIVATE 0x0010
#define SWP_SHOWWINDOW 0x0040
#define HWND_TOPMOST -1
//
#include "FiveWin.ch"
FUNCTION MAIN
LOCAL oDlg, oGet, oGet2, oBtn, Capt:=Space(10), Capt2:=" "
DEFINE DIALOG oDlg RESOURCE "Dialogo" Title "Captura"
REDEFINE GET oGet VAR Capt ID 101 OF oDlg;
PICTURE "!!!!!!!!!!" VALID MsgInfo(Capt)
oGet:bLostFocus:={||(oGet:SetText:="", oGet:SetFocus() )}
ACTIVATE DIALOG oDlg CENTER ON INIT ( WindowTopMost( oDlg ), ;
oDlg:bLostFocus := { || oDlg:SetFocus() } ) //esta linea
RETURN NIL
FUNCTION WindowTopMost( oWnd )
SetWindowPos( oWnd:hWnd, HWND_TOPMOST,;
0, 0, 0, 0, ;
SWP_NOMOVE |;
SWP_NOSIZE |;
SWP_SHOWWINDOW |;
SWP_NOACTIVATE )
RETURN NIL
bLostFocus in a Dialog
- jose_murugosa
- Posts: 943
- Joined: Mon Feb 06, 2006 4:28 pm
- Location: Uruguay
- Contact:
bLostFocus in a Dialog
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
José Murugosa
FWH + Harbour + Bcc7. Una seda!
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- jose_murugosa
- Posts: 943
- Joined: Mon Feb 06, 2006 4:28 pm
- Location: Uruguay
- Contact:
Thanks Antonio
http://hyperupload.com/download/0143136 ... A.rar.html
Here you will find the prg and the rc files, you will see that the windows looses focus and the program fails.
http://hyperupload.com/download/0143136 ... A.rar.html
Here you will find the prg and the rc files, you will see that the windows looses focus and the program fails.
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
José Murugosa
FWH + Harbour + Bcc7. Una seda!
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Jose,
This way works ok:
This way works ok:
Code: Select all
#define SWP_NOSIZE 0x0001
#define SWP_NOMOVE 0x0002
#define SWP_NOACTIVATE 0x0010
#define SWP_SHOWWINDOW 0x0040
#define HWND_TOPMOST -1
//
#include "FiveWin.ch"
FUNCTION MAIN
LOCAL oDlg, oGet, oGet2, oBtn, Capt:=Space(10), Capt2:=" "
DEFINE DIALOG oDlg RESOURCE "Dialogo" Title "Captura"
REDEFINE GET oGet VAR Capt ID 101 OF oDlg;
PICTURE "!!!!!!!!!!" VALID ( MsgInfo(Capt), .t. )
oGet:bLostFocus := { || oGet:SetText( "" ), oGet:SetFocus() }
ACTIVATE DIALOG oDlg CENTER ;
ON INIT WindowTopMost( oDlg )
RETURN NIL
FUNCTION WindowTopMost( oWnd )
SetWindowPos( oWnd:hWnd, HWND_TOPMOST,;
0, 0, 0, 0, nOr( SWP_NOMOVE, SWP_NOSIZE, SWP_SHOWWINDOW, SWP_NOACTIVATE ) )
RETURN NIL
- jose_murugosa
- Posts: 943
- Joined: Mon Feb 06, 2006 4:28 pm
- Location: Uruguay
- Contact: