IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Problème avec largeur de la fenêtre d'un nouveau document word créé [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    ergotherapeute
    Inscrit en
    Août 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ergotherapeute
    Secteur : Santé

    Informations forums :
    Inscription : Août 2012
    Messages : 86
    Points : 67
    Points
    67
    Par défaut Problème avec largeur de la fenêtre d'un nouveau document word créé
    Bonjour,

    J'ai une forme (Form1) qui se positionne en haut et à gauche de l'écran. Le clique sur un bouton (BT1) de la Form1 ouvre un nouveau document word. Je voudrais que la largeur de la fenêtre du nouveau document word occupe tout l'espace restant entre le bord droit de Form1 et le bord droit de l'écran.

    Pour obtenir la largeur j'ai essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objWord.Width = Screen.PrimaryScreen.Bounds.Width - Me.Width
    mais ça ne fonctionne pas : la fenêtre est plus grande que prévue...D'ailleurs lorsque je récupère la largeur d'origine de la fenêtre du nouveau document word elle ne fait pas 1600 (comme je l'attendais étant donné ma résolution) mais 1215...

    merci pour votre aide.

  2. #2
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Il y a t'il moyen d'avoir le code de création de

    En gros le code du bouton qui ouvre le document word pour pouvoir essayer de reproduire le problème
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  3. #3
    Membre du Club
    Homme Profil pro
    ergotherapeute
    Inscrit en
    Août 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ergotherapeute
    Secteur : Santé

    Informations forums :
    Inscription : Août 2012
    Messages : 86
    Points : 67
    Points
    67
    Par défaut
    Bonjour,

    En fait en faisant une conversion point <=> pixel, ça fonctionne donc le pb devait venir de la.. Après si vous connaissez un moyen plus simple je suis preneur.

    Cordialement.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            'ouverture d'un nouveau document word
            Dim objWord As New Word.Application
            Dim oDoc As New Word.Document
            With objWord 'définir taille et position de la fenêtre
                .Width = (Screen.PrimaryScreen.Bounds.Width - Me.Width) * 72 / 96
                .Height = Screen.PrimaryScreen.Bounds.Height * 72 / 96
                .Left = Me.Width * 72 / 96
                .Top = 0
            End With
            objWord.Visible = True
            oDoc = objWord.Documents.Add
        End Sub

  4. #4
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour veens777

    if faut voir avec l'objet application:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Example
     
     
    This example sets the width and height of the Microsoft Word application window.
     
    With Application
        .WindowState = wdWindowStateNormal
        .Width = 500
        .Height = 400
    End With
    bon code...........

  5. #5
    Membre du Club
    Homme Profil pro
    ergotherapeute
    Inscrit en
    Août 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ergotherapeute
    Secteur : Santé

    Informations forums :
    Inscription : Août 2012
    Messages : 86
    Points : 67
    Points
    67
    Par défaut
    Bonjour MABROUKI,

    Merci pour ta réponse, effectivement il faut utiliser l'objet application, mais comment expliques-tu que pour occuper toute la largeur de l'écran je sois obliger de mettre :
    .Width = 1215 alors que Screen.PrimaryScreen.Bounds.Width = 1600 ?
    du coup pour me repérer je dois convertir en faisant * 72 / 96...En fait j'aurai bien aimé comprendre pourquoi...

    Cordialement.

  6. #6
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour veens777

    Quand on examine l'api interop.word,ils l'ont prevu dans "nos bagages office word à emporter au cas ou" ,sapristi de sapritoche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Word.Application.PixelsToPoints
    Parce les unites dans Office Word sont toutes en Point :
    -72 Points = 1 inch....ou bien
    -1 Inch =1/72eme de Point...
    D'autre part ta formule width*72/96 fait 2 conversions :
    -widthPoint = widthPixel*72 => conversion des pixels en point
    -widthPoint = widthPoint/96 c.à.d ajustement du resultat WidthPoint en fonction du DPI monitor(resolution actuelle utilise : 96 PPP =>Point Par Pouce -inch)
    Elle ne marchera que si
    -le User DPI Settings vaut 96 (si jamais l'user le change patatrac....)
    Panneau de config->Tab General
    voici ce qui est ecrit:
    Affiche la liste des tailles PPP (points par pouce) pour le moniteur sélectionné. L'augmentation des PPP augmente la taille de tous les éléments à l'écran. La réduction des PPP réduit la taille de tous les éléments à l'écran.
    Pour utiliser une taille différente, cliquez sur un PPP dans la liste ou sélectionnez Autre pour personnaliser le paramètre PPP en fonction de votre moniteur.
    La fonction API Interop donne au debut tient compte de cet ajustement à l'interne et sauve les marrons.
    voici le code revu et corrige
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    Imports Microsoft.Office.Interop
    Public Class Form1
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
            Dim workingRect As Rectangle = _
             Screen.PrimaryScreen.WorkingArea
     
     
            'ouverture d'un nouveau document word
            Dim objWord As New Word.Application
            Dim oDoc As New Word.Document
            With objWord 'définir taille et position de la fenêtre
                .Width = objWord.PixelsToPoints(workingRect.Width - Me.Width)
                .Height = objWord.PixelsToPoints(Me.Height)
                .Left = objWord.PixelsToPoints(Me.Right)
                .Top = objWord.PixelsToPoints(Me.Top)
            End With
            objWord.Visible = True
            oDoc = objWord.Documents.Add
        End Sub
     
     
     
     
     
     
     
     
     
    End Class
    :

    bon code..........

  7. #7
    Membre du Club
    Homme Profil pro
    ergotherapeute
    Inscrit en
    Août 2012
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ergotherapeute
    Secteur : Santé

    Informations forums :
    Inscription : Août 2012
    Messages : 86
    Points : 67
    Points
    67
    Par défaut
    Bonjour MABROUKI,

    Merci pour votre petit tuto très intéressant, je comprends mieux maintenant !
    Je préférais creuser un peu que d'appliquer bêtement un regle qui fonctionne et qui comme vous le dite risque de ne pas fonctionner pour tous les moniteurs !

    En tout cas le problème est résolu et je vais me coucher moins bête ce soir !

    Encore merci.

    Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/04/2015, 12h29
  2. problème avec le gestionnaire de fenêtres du Bureau
    Par ShinobiX1 dans le forum Windows 7
    Réponses: 0
    Dernier message: 13/10/2013, 12h33
  3. Réponses: 1
    Dernier message: 31/07/2011, 09h02
  4. Réponses: 4
    Dernier message: 31/03/2010, 23h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo