5/5 (5 avis)
Snippet vu 15 825 fois - Téléchargée 38 fois
'declaration de l'API: Private Declare Function BitBlt Lib "gdi32.dll" Alias "BitBlt" ( _ ByVal hdcDest As IntPtr, _ ByVal nXDest As Integer, _ ByVal nYDest As Integer, _ ByVal nWidth As Integer, _ ByVal nHeight As Integer, _ ByVal hdcSrc As IntPtr, _ ByVal nXSrc As Integer, _ ByVal nYSrc As Integer, _ ByVal dwRop As System.Int32) As Long 'declaration de la variable bitmap : Private image As Bitmap 'fonction de "capture" de l'image du graphique: 'là je l'avoue j'aurais du mal a expliquer ce qu'il fais exactement Private Sub captured() Dim mygraph As Graphics = OChart.CreateGraphics Dim s As Size = OChart.Size image = New Bitmap(s.Width, s.Height, mygraph) Dim memograph As Graphics = Graphics.FromImage(image) Dim dc1 As IntPtr = mygraph.GetHdc Dim dc2 As IntPtr = memograph.GetHdc BitBlt(dc2, 0, 0, OChart.Width, _ OChart.Height, dc1, 0, 0, &HCC0020) mygraph.ReleaseHdc(dc1) memograph.ReleaseHdc(dc2) End Sub 'procedure de creation du graphique : 'lst() et qos() sont deux tableaux unidirectionnels 'ochart est mon office chart Private Sub creegraph(ByVal lst(), ByVal qos()) Dim constants OChart.Clear() OChart.Charts.Add() OChart.Charts(0).Type = OWC11.ChartChartTypeEnum.chChartTypeColumnClustered 'graphique de type histogramme constants = OChart.Constants 'creation d'une serie de données : OChart.Charts(0).SeriesCollection.Add() OChart.Charts(0).SeriesCollection(0).Caption = "qos" 'données des etiquettes de l'axe X : OChart.Charts(0).SetData(constants.chDimCategories, constants.chDataLiteral, lst) 'données : OChart.Charts(0).SeriesCollection(0).SetData(constants.chDimValues, constants.chDataLiteral, qos) 'couleur de la serie de données : OChart.Charts(0).SeriesCollection(0).Interior.Color = RGB(0, 255, 0) 'arriere plan du graphique avec un degradé : OChart.Charts(0).PlotArea.Interior.SetPresetGradient(OWC11.ChartGradientStyleEnum.chGradientHorizontal, OWC11.ChartGradientVariantEnum.chGradientVariantStart, OWC11.ChartPresetGradientTypeEnum.chGradientDaybreak) 'tttre du graphique : OChart.Charts(0).HasTitle = True OChart.Charts(0).Title.Caption = "Joli graphique" OChart.Charts(0).Title.Font.Size = 14 End Sub 'recupération et redimensionnement de l'image pour le printdocument1 : Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage ' agrandit l'image de 1.1 fois en largeur et 1.3 fois en hauteur e.Graphics.ScaleTransform(1.1, 1.3) 'dessine l'image en partant de 30 a droite et 30 enbas du coin haut gauche e.Graphics.DrawImage(image, 30, 30) End Sub 'lancement de l'aperçu ou de l'impression : Private Sub Bt_imp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt_imp.Click Dim lste() Dim qose() 'procedure qui recupere les données pour mon graphique graph(lste, qose) 'appel des procedures de creation et recupération du graph creegraph(lste, qose) captured() 'mise du document en paysage : PrintDocument1.DefaultPageSettings.Landscape = True 'version pour faire un aperçu : PrintPreviewDialog1 = New PrintPreviewDialog PrintPreviewDialog1.Document = PrintDocument1 PrintPreviewDialog1.WindowState = FormWindowState.Maximized PrintPreviewDialog1.Show() PrintPreviewDialog1.BringToFront() 'pour impression directe : PrintDocument1.Print() 'liberation des ressources du printdocument : PrintDocument1.Dispose() End Sub
25 juin 2010 à 03:08
# 'procedure qui recupere les données pour mon graphique
# graph(lste, qose)
5 nov. 2009 à 11:31
11 déc. 2008 à 09:41
5 août 2008 à 19:16
c cool
1 nov. 2006 à 14:18
Merci
Votre version ne marche pas sur VB2005
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.