begin process at 2010 03 12 08:35:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Windows

 > 

API

 > 

Problème API SendMessage


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème API SendMessage

mardi 6 novembre 2007 à 16:20:17 | Problème API SendMessage

J_il

Bonjour à tous, j'ai un problème avec l'api SendMessage de la Lib user32.

Au fait j'esaie de l'utiliser pour faire un déroulement automatique d'une comobox une fois que le focus se trouve dessus.

Voici ce que j'ai comme code :


'----------------------------------------------------------------------------------------
'Déclaration de l'API qui va permettre d'ouvrir une Combox quand il a le Focus
'=============================================================================
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
                                    (ByVal hMenu As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const CB_SHOWDROPDOWN = &H14F


Public Sub PROCEDURE_DEROULEMENT_COMBOBOX(handle As Long)

On Error GoTo erreur 'Gestion des erreurs

SendMessage handle, CB_SHOWDROPDOWN, True, ByVal 0

Exit Sub
erreur:
    Call fct_journal_erreurs(Err.Number, Err.description, "problème dans la Procédure PROCEDURE_DEROULEMENT_COMBOBOX du Module mod_gestionnaire")
   
End Sub

Voilà, donc mon problème c'est lorsque je fais appel à cette procédure, je ne sais pas ou je dois la mettre !!!

Ou alors c'est peut être mon code qui n'est pas bon !!!! Oui bien si vous avez une autre solution...

Merci énormément de votre aide

Gilles
mardi 6 novembre 2007 à 16:35:46 | Re : Problème API SendMessage

Exploreur

Membre Club
Salut,

Peut-être une réponse  ICI 

A+
Exploreur

 Linux a un noyau, Windows un pépin

 

mardi 6 novembre 2007 à 18:05:09 | Re : Problème API SendMessage

J_il

Réponse acceptée !
Merci Exploreur mais dans cette source j'ai pas trouvé ma solution mais par contre je viens de la trouver tout seul comme un grand lol

Au fait lorsque j'appel ma procédure je dois le faire dans l'évènement GotFocus de ma ComboBox et de cette façon-ci :

PROCEDURE_DEROULEMENT_COMBOBOX combo1.hwnd

Et cela fonctionne à merveille....

Merci encore et bonne soirée

Gilles
mardi 6 novembre 2007 à 23:30:35 | Re : Problème API SendMessage

chaibat05

Bonsoir,
s' il s' agit juste de dérouler la liste comme si tu cliquais sur le bouton-flèche du combo, il y' a plus simple et pas besoin de l' Api SendMessage :

Combo1.SetFocus
SendKeys "{f4}"




I LIKE TO BE HERE WHEN I CAN

mercredi 7 novembre 2007 à 07:01:07 | Re : Problème API SendMessage

Renfield

Administrateur CodeS-SourceS

pas joli, de piloter a base de SendKeys...
SetFocus doit toujours etre sous le coup d'une gestion d'erreurs, on ne sais jamais (plante si controle non pret)

pour conclure, F4 bascule l'etat (masqué ou non) de la liste... elle ne garantie pas de la montrer ou de la cacher...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
mercredi 7 novembre 2007 à 08:18:23 | Re : Problème API SendMessage

J_il

Bien vu RendField c'est pour ça que j'ai opté pour l'Api SendMessage et puis c'est super pratique et ne charge pas trop...
mercredi 7 novembre 2007 à 10:28:44 | Re : Problème API SendMessage

chaibat05

Bonjour,
cette "astuce" marche sans problème dans le cas
l' on veut juste voir la liste déroulante pour effectuer un choix.
Au départ le Combo est invisible .

Sub QuelconqueControl_Click()
  Combo1.Visible=True
  Combo1.SetFocus
  'ou SendKeys "{tab}" si l' index des deux controls se suivent
  'du coup le focus passe au combo

  SendKeys "{f4}" '==>le combo se déroule
  Combo1.ListIndex=0
EndSub

Sub Combo1_Click
  QuelconqueControl.Text=Combo1.Text
  Combo1.Visible=False
End Sub

Combo1.Visible=False peut être aussi mis dans Combo1_LostFocus

Exemples de QuelconqueControl : FlexGrid, DataGrid, DbGrid, ,.etc
Pour ces quelques exemples de control, le combo est en premier plan.
Pour un TextBox , le combo est en arrière plan.ainsi la partie Texte du combo est masquée.

Le coup du TextBox je l' utilise assez souvent en l' associant à une petite image sur le coté pour simuler la flèche.



I LIKE TO BE HERE WHEN I CAN



Cette discussion est classée dans : problème, long, sendmessage, api, byval


Répondre à ce message

Sujets en rapport avec ce message

Utilisation de SendMessage-constante API [ par Trappiste ] Bonjour.Pour mon application, j'aimerai changer la couleur de fond d'un HScroll lorsque l'utilisateur sélectionne une certaine plage.Comme la propriét Problème avec l'API GetMenuString [ par Squallou ] Hello tout le monde. Je viens tout juste de me mettre aux API et j'ai un petit problème. Ce que j'essaie et tout bête mais c'est pour apprendre. Je v probleme sendmessage [ par mrdumont ] Bonjours j'ai un probleme depuis quelque jours...Lorsque que j'execute se petit code : Public Const WM_CLOSE = &H10Public Declar pb appel API en VS2003 [ par baz187rem ] Bonjour à tous ! J'essaie tant bien que mal a utiliser les api win32 sur Visual studio 2003. J'ai beau les déclarer tout est ok, je les utilise correc Api dans Visual Studio 2008 ? [ par Solher ] Salut !J'ai un problème avec le Api dans Visual Studio 2008.En fait j'ai copié un code pour modifier mon form en rectangle avec les bords arrondis.Dan Ajout de fonts par API [ par Zayann ] Bonjour à tous... J'essaye à l'heure actuelle d'utiliser des polices de caractères sans les installer préalablement dans le dossier fonts de windows.. problème avec ftpgetfile [ par Germouse ] J'ai un petit souci: Ftpgetfile marche quand je suis connecté depuis mon bureau (succès = True) mais pas quand je me connecte depuis un autre (succès= Excel Activer un bouton d'internet Explorer avec sont Handle [ par jojo869 ] Bonjour à tous, j'aimerais cliquer automatiquement sur le bouton Ouvrir de la boite de telechargement d'internet explorer. Voici ce que j'ai déjà e Utiliser une DLL dans VBA sans VC++ sur la machine [ par runo ] Bonjour, je me suis compilé une petite DLL sous VC++ avec qq accès de base : Je l'appelle ensuite dans VB avec le code ci dessous (je précise que ma Impression ou sauvegarde fichier via vb excel [ par silverdark1984 ] Bonjour a tous Voila mon probleme...J'ai des fichiers dans un dossier, en .pdf ( 1 ou plusieurs pages ) et j'aimerai avoir chaques feuilles dans un f


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales