Petit problème de résolution

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Sceyllia
Messages : 6
Inscription : lun. 16/mars/2009 23:39

Petit problème de résolution

Message par Sceyllia »

Bonjour à tous,
Je viens de me lancer il y a seulement quelques jours à essayer de faire un petit truc avec PB.
Étant un very méga débutant en langage informatique j'aurais aimé un petit coup de main sur le problème que j'ai actuellement :
J'ai fait un petit menu contextuel qui s'affiche a un endroit précis sur le bureau à savoir en bas dans le coin inférieur à droite.
Le problème est que si je veux faire fonctionner ce petit "Prog" sur mon autre PC et bien je ne vois plus mon menu ?
Je précise que la résolution de l'ordinateur sur lequel j'ai "programmé" mon petit menu est de 1680x1050
et l'autre sur lequel j'essaie de le faire fonctionner est de 1280X1024.
En espérant avoir été clair, je remercie à l'avance celui ou celle qui voudrait bien m'aider.
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

Salut Sceyllia,

ce code te renvoie la largeur et la hauteur de ton ecran. grace a L et H

Code : Tout sélectionner

If ExamineDesktops ()
  l = DesktopWidth (0)
  h = DesktopHeight (0)
EndIf
MessageRequester("information", "Vous avez un écran de : "+Str(l)+" de large par : "+Str(h)+" de haut.", 0)
a toi de jouer pour placer ta fenetre ou autre :

exemple une fenetre de 100x100
L-100
H-100
etc....

si non recherche a ExamineDesktops() tu a plein d'autre code
voilou :wink:





@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Sceyllia
Messages : 6
Inscription : lun. 16/mars/2009 23:39

Re

Message par Sceyllia »

Salut Venom,

Merci de m'avoir répondu.
J'ai bien lu avant d'écrire mon post l'aide sur (ExamineDesktops), mais a part me renseigné sur la résolution de mon écran au début de l'execution du prog je n'arrive pas a obtenir l'effet recherché, pourtant je sais qu'il est possible par ligne de codes (Correctement écrites, bien sûr) que ma barre
reste en bas avec le menu contextuel et ce même si j'exécute le programme
dans une autre résolution,.
Bon c'est pas grave, je dois probablement m'y prendre comme un pied, j'y retourne.
En tout cas, merci de m'avoir répondu.

A+

Et bonne continuation à toi.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

l'idéal c'est de montrer un code qui permet de reproduire le problème.
Parce que pour moi, ce n'est pas clair !
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
Sceyllia
Messages : 6
Inscription : lun. 16/mars/2009 23:39

Re...

Message par Sceyllia »

Salut comtois,
Je vais faire simple :
Imagine la barre des tâches de Windows; elle se trouve en bas, non ?
Si ta résolution d'écran change elle reste toujours en bas.
Et bien c'est cela mon problème.
Mon "Application" bouge de place si j'ai le malheur de l'exécuter dans une autre résolution.
Si la résolution est 1680X1050 elle se trouve bien a l'emplacement souhaité,
a savoir en bas, vers la barre des tâches, par contre si j'abaisse ma résolution en 800X600 hop! elle disparaît.
J'en déduit que mon "Application" n'apparaît pas avec une résolution différente de celle avec laquelle elle a été conçue.
Je suis ultra débutant et j'essaie de me débrouiller seul, mais j'aimerais connaître ce code qui laisserait cette fenêtre la ou je veux qu'elle soit.
C'est l'histoire de me faire gagner un peu de temps, car faut en avoir
quand on se lance dans la programmation.
Voiçi le code, il doit comporter pas mal d'erreurs j'imagine...

A + tous le monde, j'y retourne.

8)

Code : Tout sélectionner

  If OpenWindow(0, 0, 994, 1280, 30, "Exemple de menu contextuel", #PB_Window_BorderLess)
  
   StickyWindow(0, 1)
   LoadImage(0, "D:\PureBasic\menu.bmp")
   ImageGadget(0, 0, 0, 0, 0, ImageID(0))
      
  If CreatePopupImageMenu(0, #PB_Menu_ModernLook)
     MenuItem(1,"Tous les programmes")
     MenuBar()
     MenuItem(2,"Invite de commandes")
     MenuItem(3,"Executer...")
     MenuBar()
     MenuItem(4,"Ouvrir")
     MenuBar()
     MenuItem(5,"Quitter")
   
        EndIf
    Repeat
      Select WaitWindowEvent()
        Case #WM_LBUTTONUP        
          DisplayPopupMenu(0,WindowID(0),0,991)
        Case #PB_Event_Menu
          Select EventMenu()
            Case 4 : RunProgram
            Case 5 : Quitter = 1 
          EndSelect
        Case #PB_Event_CloseWindow
          Quitter = 1
      EndSelect
    Until Quitter = 1
  EndIf
zaphod
Messages : 135
Inscription : dim. 07/déc./2008 9:32

Message par zaphod »

Je place la fenêtre en bas à droite de d'écran :

Code : Tout sélectionner

If ExamineDesktops () 
  l = DesktopWidth (0) 
  h = DesktopHeight (0) 
EndIf 

 
 If OpenWindow(0,l-100, h-80, 100, 50, "Exemple de menu contextuel", #PB_Window_BorderLess) 
  
   StickyWindow(0, 1) 
   ;LoadImage(0, "D:\PureBasic\menu.bmp") 
   ;ImageGadget(0, 0, 0, 0, 0, ImageID(0)) 
      
  If CreatePopupImageMenu(0, #PB_Menu_ModernLook) 
     MenuItem(1,"Tous les programmes") 
     MenuBar() 
     MenuItem(2,"Invite de commandes") 
     MenuItem(3,"Executer...") 
     MenuBar() 
     MenuItem(4,"Ouvrir") 
     MenuBar() 
     MenuItem(5,"Quitter") 
    
        EndIf 
    Repeat 
      Select WaitWindowEvent() 
        Case #WM_LBUTTONUP        
          DisplayPopupMenu(0,WindowID(0)) 
        Case #PB_Event_Menu 
          Select EventMenu() 
            ;Case 4 : RunProgram 
            Case 5 : Quitter = 1 
          EndSelect 
        Case #PB_Event_CloseWindow 
          Quitter = 1 
      EndSelect 
    Until Quitter = 1 
  EndIf
Z@ph0d//
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

Imagine la barre des tâches de Windows; elle se trouve en bas, non ?
pas forcement non :D


si non voici un code qui place une fenetre en bas a droite malgré le changement de résolution

Code : Tout sélectionner

;- Window Constants
Enumeration
  #Window_0
  #button_0
  #TextGadget_0
EndEnumeration

If ExamineDesktops ()
  l = DesktopWidth (0)
  h = DesktopHeight (0)
EndIf 

  If OpenWindow(#Window_0, l-600, h-300, 600, 300, "test",  #PB_Window_BorderLess)
   ButtonGadget(#button_0, 582, 0, 20, 20, "X")
    TextGadget(#TextGadget_0, 10, 10,350,20,"fenêtre qui se place automatiquement en bas a droite malgré la résolution")
  EndIf

  Repeat
   EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget 
      Select EventGadget()
      
       Case #button_0
        End 
      
      EndSelect
    EndIf
  Until EventID = #PB_Event_CloseWindow




@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

venom t'a parfaitement bien répondu !!


lorsque tu execute son code

Code : Tout sélectionner


If ExamineDesktops ()
    l = DesktopWidth (0)
    h = DesktopHeight (0)
EndIf
tu as dans l , et h la coordonée maximum de ton bureau
c'est a dire le point en bas a droite !!
en fonction de ceci tu peut disposer ta fenetre comme tu le veux ! :)

sachant que ce petit code te retourne la resolution de ton bureau !!
il ne te faut rien de plus ! :)
Avatar de l’utilisateur
Sceyllia
Messages : 6
Inscription : lun. 16/mars/2009 23:39

Merci à tous

Message par Sceyllia »

Re-coucou
Je n'ai jamais dit que la réponse de venom n'était pas pertinente.
C'est seulement moi qui ai du mal à comprendre (normal cela fait deux jours que j'ai commencé) jamais essayé auparavant, voilà.

En tout cas merci à Dobro et zaphod pour vos réponses c'est très sympa, et en particulier à toi venom qui a parfaitement répondu, j'ai pas capté le placement de ce code suffisamment vite, au temps pour moi.

Excellente continuation à tous :D
Répondre