Ver Mensaje Individual
  #8  
Antiguo 11-04-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
Empezado por aguml Ver Mensaje
Por cierto, esto que haces:
Código PHP:
 (LPARAM)(pt.65535 pt.x
Viene a ser lo mismo que hacer esto ¿no?:
Código PHP:
 (LPARAM)MAKELONG(pt.xpt.y
Si, es equivalente.


Cita:
Por cierto en tu ejemplo saldría para todos los combobox del form pero en mi caso tengo dos forms y solo quiero ese comportamiento en uno por lo que supongo que teniendo el hWnd puedo obtener el nombre o el número de instancia para saber cual es ¿no?
Se me ocurre que una forma sencilla de discriminarlo podría ser:
.h
Código PHP:
class TForm1 : public TForm
{
__published:
...
private:
  
bool FInCBox1;  
  
void __fastcall AppIdle(TObject *Senderbool &done);
... 
.cpp
Código PHP:
...
TStringsListaHints

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  
Application->OnIdle AppIdle;
  ...
  
FInCBox1 false;
  
ListaHints = new TStringList;
  
ListaHints->Assign(ComboBox1->Items);
}

void __fastcall TForm1::AppIdle(TObject *Senderbool &done)
{
  
TPoint pt;
  
HWND HWL;

  
GetCursorPos( &pt );
  
HWL WindowFromPointpt );

  if ( 
HWL != )
  {
    
StatusBar1->SimpleText "";
    
char buff[128];
    
GetClassNameHWLbuffsizeofbuff ) );
    if ( 
StrICompbuff"ComboLBox" ) == 0)
    {
      if ( 
FInCBox1)
      {
        ::
ScreenToClientHWL, &pt );
        
int inx LOWORDSendMessageHWLLB_ITEMFROMPOINT0,
          (
LPARAM)(pt.65535 pt.x) ) );

        if ( 
inx >= )
          
StatusBar1->SimpleText ListaHints->Strings[inx];
      }
    }
  }
}

void __fastcall TForm1::ComboBox1DropDown(TObject *Sender)
{
  
FInCBox1 true;
}

void __fastcall TForm1::ComboBox1CloseUp(TObject *Sender)
{
  
FInCBox1 false;
}

...

void __fastcall TForm1::FormDestroy(TObject *Sender)
{
  
delete ListaHints;



Cita:
La StatusBar la tengo de forma que muestra los hint de todos los componentes al ponerse encima así que creo que con cambiar el hint me valdría ¿no?
Si.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita