En fait je recouvre literalement ma Form avec des picturebox dans lesquelles sont loadées des .bmp.
les picturebox sont en autosize donc les .bmp occupent toute la place disponible.
elles sont aussi chargées dynamiquement (pas dans le design sauf la 'matrice' avec index renseigné à zero)
ceci ecran par ecran (on peut paginer).
le mousedown ne marche que si je laisse de l'espace entre les picturebox , donc ou il touche la Form.
N"est ce pas un pb de 'transparence' ?
si ca ne suffit pas je mettrai mon code mais il faut que je le nettoie un peu.
merci
free.fr
Dim page, h, l, offset As Integer Private Sub Form_KeyPress(KeyAscii As Integer) For i = 1 To h * l Unload Picture1(i) Next i If Chr$(KeyAscii) = "p" Then page = page + 1 If Chr$(KeyAscii) = "m" Then page = page - 1 offset = (page - 1) * h * l Call AFFICHAGE End Sub
Private Sub Form_Load() KeyPreview = True page = 1 Form1.Height = Screen.Height Form1.Width = Screen.Width h = Form1.Height Picture1(0).Height l = Form1.Width Picture1(0).Width Call AFFICHAGE End Sub
Sub AFFICHAGE() For i = 1 To h * l Load Picture1(i)
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Form1.Print X, Y End Sub
Dim page, h, l, offset As Integer
Private Sub Form_KeyPress(KeyAscii As Integer)
For i = 1 To h * l
Unload Picture1(i)
Next i
If Chr$(KeyAscii) = "p" Then page = page + 1
If Chr$(KeyAscii) = "m" Then page = page - 1
offset = (page - 1) * h * l
Call AFFICHAGE
End Sub
Private Sub Form_Load()
KeyPreview = True
page = 1
Form1.Height = Screen.Height
Form1.Width = Screen.Width
h = Form1.Height Picture1(0).Height
l = Form1.Width Picture1(0).Width
Call AFFICHAGE
End Sub
Sub AFFICHAGE()
For i = 1 To h * l
Load Picture1(i)
Dim page, h, l, offset As Integer Private Sub Form_KeyPress(KeyAscii As Integer) For i = 1 To h * l Unload Picture1(i) Next i If Chr$(KeyAscii) = "p" Then page = page + 1 If Chr$(KeyAscii) = "m" Then page = page - 1 offset = (page - 1) * h * l Call AFFICHAGE End Sub
Private Sub Form_Load() KeyPreview = True page = 1 Form1.Height = Screen.Height Form1.Width = Screen.Width h = Form1.Height Picture1(0).Height l = Form1.Width Picture1(0).Width Call AFFICHAGE End Sub
Sub AFFICHAGE() For i = 1 To h * l Load Picture1(i)
En fait je recouvre literalement ma Form avec des picturebox dans lesquelles sont loadées des .bmp.
les picturebox sont en autosize donc les .bmp occupent toute la place disponible.
elles sont aussi chargées dynamiquement (pas dans le design sauf la 'matrice' avec index renseigné à zero)
ceci ecran par ecran (on peut paginer).
le mousedown ne marche que si je laisse de l'espace entre les picturebox , donc ou il touche la Form.
N"est ce pas un pb de 'transparence' ?
si ca ne suffit pas je mettrai mon code mais il faut que je le nettoie un peu.
merci
Peut être une image écran de ta feuille (en cours d'exécution) pourrait donner une idée ?
--
Cordialement,
Jacques.
Jean-marc
>free.fr wrote:
Hello,
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Form1.Print X, Y End Sub
Tu ne peux pas faire un Form_mouseDown, si c'est ce que tu espères faire.
Tu peux faire des mouseDown sur les picture, mais évidemment pas sur Form, puisque la forme est recouverte!
Note: avec un picture qui recouvre la forme, il n'y a aucun moyen (ni API ni transparence ni autre) de pouvoir déclencher un évènement sur la forme, c'est simplement impossible (et heureusement sinon bonjour la panique!).
Il faut donc mettre ton code évènementiel sur les picture_MouseDown ce qui est tout simple si tu as pris soin de faire des pictureBox indicés.
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As
Single, Y As Single)
Form1.Print X, Y
End Sub
Tu ne peux pas faire un Form_mouseDown, si c'est ce que tu espères faire.
Tu peux faire des mouseDown sur les picture, mais évidemment pas
sur Form, puisque la forme est recouverte!
Note: avec un picture qui recouvre la forme, il n'y a aucun moyen
(ni API ni transparence ni autre) de pouvoir déclencher un évènement
sur la forme, c'est simplement impossible (et heureusement sinon
bonjour la panique!).
Il faut donc mettre ton code évènementiel sur les picture_MouseDown
ce qui est tout simple si tu as pris soin de faire des
pictureBox indicés.
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Form1.Print X, Y End Sub
Tu ne peux pas faire un Form_mouseDown, si c'est ce que tu espères faire.
Tu peux faire des mouseDown sur les picture, mais évidemment pas sur Form, puisque la forme est recouverte!
Note: avec un picture qui recouvre la forme, il n'y a aucun moyen (ni API ni transparence ni autre) de pouvoir déclencher un évènement sur la forme, c'est simplement impossible (et heureusement sinon bonjour la panique!).
Il faut donc mettre ton code évènementiel sur les picture_MouseDown ce qui est tout simple si tu as pris soin de faire des pictureBox indicés.