begin process at 2012 02 13 08:02:39
  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.. Deplacer une forme [ par basicopathe ] Bonjours a tous, Je voudrai utiliser cet excellent programme vb6 en vb2008 Comment faire? Y a t'il un moyen pour déplacer form, boutons ou autre ave Les APIs [ par NSUADI ] Bonsoir à tous!! Alors je me suis lancé depuis peu dans l'utilisation des API windows...mais un grand problème se pose à moi,celui des paramètres des cherche de l'aide pour finir un programme de lecture de tram midi [ par petiflamand ] Bonjour je cherche de l' aide pour finir un programme , le plus gros est fait. Mais il me manque encore le sysex. je recois bien quelque chose de mon ouvrir plusieurs URL [ par marco62118 ] Bonjour à toutes et tousJe voudrais ouvrir plusieur page internet en même temps j'utilise l'api "Public Declare Function ShellExecute Lib "shell32.dll


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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,640 sec (3)

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