Gestion Dynamique du click sur Menu Dynamique

cs_cricri95 Messages postés 34 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 6 avril 2012 - 11 avril 2006 à 16:19
cs_cricri95 Messages postés 34 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 6 avril 2012 - 13 avril 2006 à 08:39
Bonjour, Voila j'ai créé des menus dynamiquement à partir d'une base de données (en Visual Basic 6).
Je gère les clicks sur les menus deroulants avec setwindowlong mais le problème est en mode deboggage qui est pratiquement impossible si cette API "setwindowlong" est lancé.
(Point Arret VB fait planter tout !!!).

Y'a t il une autre solution ?? Merci d'avance ....

2 réponses

rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
12 avril 2006 à 23:27
Salut cricri95,

postes ici un bout de code sur ta creation dynamique (un petit bout, 2 ou 3 lignes, l'essentiel), ainsi que tes déclarations de variables servant de références à tes menus dynamiques (menus VB ou CommandBars d'Office?).

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais... mais jamais avant la page 4
</SUP>
0
cs_cricri95 Messages postés 34 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 6 avril 2012
13 avril 2006 à 08:39
Bonjour,
Alors quelques explications ....Dans mon MDIForm_Load, A partir d'une base de donnees j'insere mes menus principaux avec la commande "Rec InsertMenu(...)" et ensuite des menus popup (si je clique sur les menus principaux) grace a la commande "retval InsertMenuItem(...)".

Ensuite pour declencher les clicks sur ces menus nouvellement creés je lance apres la construction de tous les menus la commande suivante :
"trueWndProc = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf WindowProcMenu)"

Et WindowProcMenu est de la forme :
'*************************************************************
Public Function WindowProcMenu(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

On Error GoTo FinSub

If uMsg = WM_COMMAND Then
Select Case wParam
Gestion clic utilisateur
end select
end if

WindowProcMenu = CallWindowProc(trueWndProc, hwnd, uMsg, wParam, lParam)
'****************************************************************
Voila !!!!
Mais le probleme est que le deboggage est impossible (enfin le point d'arret fait planter toute l'appli!!!) et de plus dans certains cas l'acces au code est impossible sur un point d'arret.

Si vous avez une idée, merci de me la faire parvenir .....
Merci d'avance bonne journée
0
Rejoignez-nous