begin process at 2012 02 16 15:17:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Direct X

 > APPLIQUER UNE RESOLUTION GRÂCE À DIRECTDRAW

APPLIQUER UNE RESOLUTION GRÂCE À DIRECTDRAW


 Information sur la source

Note :
Aucune note
Catégorie :Direct X Source .NET ( DotNet ) Classé sous :Résolution, Ecran, DirectX, DirectDraw, API Niveau :Débutant Date de création :06/11/2007 Date de mise à jour :06/11/2007 15:01:24 Vu :8 213

Auteur : tinux

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
DirectDraw (API DirectX), qui permet de lancer des applis en 2D ou 3D va nous servir ici à récupérer les résolutions supportées par la carte graphique et d'appliquer une résolution à votre écran tant que la Form est lancée.

Nous utiliserons ici la version 7 de DirectX.

Cette source est une adaptation en VB.NET








------

Pré-requis :

1) Lancer un nouveau projet depuis VS 2005.
2) Importer la dll DirectX 7 pour VB :
      ¤ Menu Projet > "Ajouter une référence"
      ¤ Aller sur l'onglet "Référence" et rechercher "C:\WINDOWS\System32\dx7vb.dll"
      ¤ Cliquer OK
3) Insérer dans le projet une ListBox (LB_DispoResolutions)
4) Insérer un bouton (BTN_Valid)


              

Source

  • 'On importe la bibliothèque de Dx
  • Imports DxVBLib
  • Public Class Form1
  • Dim objDx As DirectX7 'DirectX 7
  • Dim objDraw7 As DirectDraw7 'API DirectDraw
  • Dim objEnumModes As DirectDrawEnumModes 'Résolutions Disponibles
  • Private Function SetNewDisplayMode()
  • 'Si aucune résolution n'est choisie
  • If LB_DispoResolutions.SelectedIndex = -1 Then Exit Function
  • Dim ddsd As DDSURFACEDESC2 'Propriétés de la Surface
  • Dim i As Integer
  • 'Récupère le mode d'affichage choisi dans la Listbox
  • i = LB_DispoResolutions.SelectedIndex
  • 'Récupère les propriétés de ce mode
  • objEnumModes.GetItem(i + 1, ddsd)
  • 'Applique la Résolution choisie
  • objDraw7.SetDisplayMode(ddsd.lWidth, ddsd.lHeight, ddsd.ddpfPixelFormat.lRGBBitCount, 0, CONST_DDSDMFLAGS.DDSDM_DEFAULT)
  • Me.Refresh()
  • End Function
  • Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  • Dim ddsd As DDSURFACEDESC2 'Propriétés de la Surface.. (dont la taille : Width & Height)
  • Dim i, R_Count As Integer
  • objDx = New DirectX7
  • 'Création d'un Objet DirecDraw
  • objDraw7 = objDx.DirectDrawCreate("")
  • 'Récupère les != résolutions disponibles
  • objEnumModes = objDraw7.GetDisplayModesEnum(DxVBLib.CONST_DDEDMFLAGS.DDEDM_DEFAULT, ddsd)
  • 'Nombre de Résolutions dispo
  • R_Count = objEnumModes.GetCount() '
  • For i = 1 To R_Count
  • objEnumModes.GetItem(i, ddsd)
  • 'Insertion de chaque Résolution (Width x Height x Couleurs) dans la Listbox
  • LB_DispoResolutions.Items.Add(CStr(ddsd.lWidth) & "x" & CStr(ddsd.lHeight) & "x" & CStr(ddsd.ddpfPixelFormat.lRGBBitCount))
  • Next i
  • End Sub
  • Private Sub BTN_Valid_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTN_Valid.Click
  • 'Appelle la Fonction
  • SetNewDisplayMode()
  • End Sub
  • End Class
'On importe la bibliothèque de Dx
Imports DxVBLib

Public Class Form1

    Dim objDx As DirectX7 'DirectX 7
    Dim objDraw7 As DirectDraw7 'API DirectDraw
    Dim objEnumModes As DirectDrawEnumModes 'Résolutions Disponibles

    Private Function SetNewDisplayMode()
        'Si aucune résolution n'est choisie
        If LB_DispoResolutions.SelectedIndex = -1 Then Exit Function

        Dim ddsd As DDSURFACEDESC2 'Propriétés de la Surface
        Dim i As Integer

        'Récupère le mode d'affichage choisi dans la Listbox
        i = LB_DispoResolutions.SelectedIndex

        'Récupère les propriétés de ce mode
        objEnumModes.GetItem(i + 1, ddsd)

        'Applique la Résolution choisie
        objDraw7.SetDisplayMode(ddsd.lWidth, ddsd.lHeight, ddsd.ddpfPixelFormat.lRGBBitCount, 0, CONST_DDSDMFLAGS.DDSDM_DEFAULT)
        Me.Refresh()

    End Function


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim ddsd As DDSURFACEDESC2 'Propriétés de la Surface.. (dont la taille : Width & Height)
        Dim i, R_Count As Integer

        objDx = New DirectX7
        'Création d'un Objet DirecDraw
        objDraw7 = objDx.DirectDrawCreate("")

        'Récupère les != résolutions disponibles
        objEnumModes = objDraw7.GetDisplayModesEnum(DxVBLib.CONST_DDEDMFLAGS.DDEDM_DEFAULT, ddsd)
        'Nombre de Résolutions dispo
        R_Count = objEnumModes.GetCount() '

        For i = 1 To R_Count
            objEnumModes.GetItem(i, ddsd)
            'Insertion de chaque Résolution (Width x Height x Couleurs) dans la Listbox
            LB_DispoResolutions.Items.Add(CStr(ddsd.lWidth) & "x" & CStr(ddsd.lHeight) & "x" & CStr(ddsd.ddpfPixelFormat.lRGBBitCount))
        Next i


    End Sub

    Private Sub BTN_Valid_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTN_Valid.Click
        'Appelle la Fonction
        SetNewDisplayMode()
    End Sub

End Class



 Historique

06 novembre 2007 15:01:24 :
Description

 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) YOUTUBE XPLORER (RECHERCHE / LECTURE / DOWNLOAD)
Source avec Zip Source avec une capture Source .NET (Dotnet) RÉCUPÉRER ELEMENTS D'UNE PAGE WEB (EXEMPLE : DAILY 2 FLV)
Source avec Zip Source avec une capture Source .NET (Dotnet) TRIANGLE DE PASCAL ET APPLICATION
Source avec Zip Source avec une capture Source .NET (Dotnet) YOUTUBE 2 AVI
Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET] PROJET DE CHIMIE (V3)

 Sources de la même categorie

Source avec une capture HAPPY LAND - 3D VB6 GAME - OPEN SOURCE CODE par ZaidMarkabi
Source avec une capture METAL GEAR SOLID - 3D VB6 GAME - OPEN SOURCE par ZaidMarkabi
Source avec une capture FIGHT COMBAT II - 3D VB GAME - OPEN SOURCE par ZaidMarkabi
Source avec Zip Source avec une capture UTILISER LA CAMERA POUR DIRECTX par zulrigh
Source avec une capture STREET FIGHTER - 3D VB GAME - OPEN-SOURCE par ZaidMarkabi

 Sources en rapport avec celle ci

COPIER UNE PARTIE DE L'ECRAN DANS LE PRESSE PAPIER PAR API par Flocreate
Source avec Zip Source avec une capture BREAKERBAWL par xranto
Source avec Zip USERFORM PLEIN ÉCRAN SOUS EXCEL VBA par mimiZanzan
Source avec Zip Source avec une capture SUPER MARIO BROS FORK! par le pro masterchief
Source avec Zip Source avec une capture TUTO TILE 7 : PASSAGE À L'ISOMÉTRIQUE par ciberrique

Commentaires et avis

Commentaire de Renfield le 07/11/2007 06:42:37 administrateur CS

necessite donc d'installer DX7 ... c'est dommage.

Commentaire de econs le 07/11/2007 21:02:39 administrateur CS

oui et c'est un peu désuet aujourd'hui.

En VB6, quand on tapait çà :

Dim i, R_Count As Integer

i n'était pas un Integer. Est-ce toujours le cas avec .NET ?

Commentaire de tinux le 08/11/2007 12:59:39

En VB6 il s'agit de Long effectivement.

Il est vrai que dx7 fait pâle mine.. je vais voir pour dx8/9.. :p

Commentaire de Renfield le 08/11/2007 13:19:13 administrateur CS

faisable via APIs et surement via le FrameWork .Net

Commentaire de tinux le 10/11/2007 18:51:02

Pas surement, c'est faisable en .NET, il y a d'ailleurs déjà des sources sur VBF, l'interêt ici était d'utiliser DirectDraw, qui je l'accorde a disparu aujourd'hui.

Commentaire de Bidou le 13/11/2007 17:07:42 administrateur CS

Dim i, R_Count As Integer

>> i et R_Count sont des Integers

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

DirectDraw DirectX [ par CiscoFun ] Bonjour,Voila je débute dans la programmation graphique et j'aimerais que quelqu'un me donne l'adresse d'un site (j'en ai deja testé plusieur mais rie Api de résolution d'écran [ par vedettecriim ] Est-ce que quelqu'un aurait le code et l'API Windows qui permettrait de changer la résolution de l'écran ainsi que la fréquence et la couleur.Vous pou Directdraw couleur transparente [ par dester ] Bon j'ai comme un bleme.Voila je me suis dis : "hopla je me met a developper en directX"Et tout a coup ont surgis quelque problemes (loleu)Alors prem API pour resolution d'ecran [ par greg13 ] Existe t'il une api qui permet de connaitre la resolution de l'ecranMerciGreg résolution de l'ecran [ par essendoubi ] svp je cherche un moyen pour pouvoir changer la résolution de l'affichage de l'écran.merci pour toute aide redimentionner [ par tchouck ] Bonjour j'ai crée une appli qui fonctionne trés bien avec ma résolution d'ecran (1280*1024) seulement sur un autre PC dont la résolution un de 800*600 Résolution d'ecran SANS VB6FR.dll ! (sos) [ par loskiller62 ] Je voudrais récuperer la résolution d'écran mais sans ke le prog ai besoin du fichier vb6fr.dllle coup du screen.width etcle coup du Private Declare F DirectX -> DirectDraw [ par ShadowMaster ] Bonjour je vous explique mon probleme: j'aimerai savoir si il est possible de "prendre" la couleur d'un pixel dans une surface directDraw un truc du g résolution ecran pr page web! très important [ par supernulle ] helloG réalisé un site en 1024*768 en fait j'aurais voulu savoir s'il y avait une solution pr tous ceux ki ont une résolution en 800/600 voit mon site résolution d ecran !! [ par supernulle ] helloG réalisé un site en 1024*768 en fait j'aurais voulu savoir s'il y avait une solution pr tous ceux ki ont une résolution en 800/600 voit mon site


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales