Guidance
指路人
g.yi.org
software / rapidq / Examples / Graphics & Animation / Shadow / MOD_DECL.inc

Register 
注册
Search 搜索
首页 
Home Home
Software
Upload

  
'Modificado para RapidQ por Jordi Ramos 26/05/2004

'*****************************************************************************************************
'TYPES
     TYPE POINTAPI
      x AS LONG
      y AS LONG
     END TYPE

     TYPE Rect
      Left AS LONG
      Top AS LONG
      Right AS LONG
      Bottom AS LONG
     END TYPE

'*****************************************************************************************************
'CONSTANTES

'Constantes pour appels API
     CONST SRCCOPY = &HCC0020

'Constantes pour fonctions locales
     CONST STD_INTENSITE = 100 'Intensité standard
     CONST STD_PROFONDEUR = 15 'Prodondeur standard
     CONST STD_FLOU = 30 'Flou standard

'****************************************************************************************************
'API WINDOWS UTILISEES

     DECLARE FUNCTION GetDC LIB "user32" ALIAS "GetDC" _
      (hwnd AS LONG) AS LONG
'Récupère le handle du contexte périphérique graphique de la fenêtre à ombrer.

     DECLARE FUNCTION GetDesktopWindow LIB "user32" ALIAS "GetDesktopWindow"() AS LONG
'Récupère le handle de la fenêtre écran (le bureau).

     DECLARE FUNCTION GetWindowDC LIB "user32" ALIAS "GetWindowDC" _
      (hwnd AS LONG) AS LONG
'Récupère le handle du contexte périphérique graphique de la fenêtre de handle "hwnd".

'Copie les pixels d'une zone d'un bitmap dans une zone d'un autre bitmap. Ici, on l'utilise
'pour transferer la portion de l'écran à ombrer en mémoire et la repeindre à l'écran une fois
'l'ombrage effectué.
     DECLARE FUNCTION BitBlt LIB "gdi32" ALIAS "BitBlt" _
      (hDestDC AS LONG, _
      x AS LONG, y AS LONG, _
      nWidth AS LONG, nHeight AS LONG, _
      hSrcDC AS LONG, _
      xSrc AS LONG, ySrc AS LONG, _
      dwRop AS LONG) AS LONG
'Description de "BitBlt" :
'   hDestDC :    le handle du contexte périphérique graphique cible (destinataire de l'image)
'   x, y, nWidth, nHeight : coordonnées du rectangle cible
'   hSrcDC : le handle du contexte périphérique graphique source
'   xSrc, ySrc : origine du bitmap source
'   dwRop : Type de copie. Spécifie l'opération de composition de l'image avec le fond.
'           Ici, ce sera toujours une copie simple avec la valeur SRCCOPY ci-dessous.

'Récupère la valeur RVB d'un pixel.
     DECLARE FUNCTION GetPixel LIB "gdi32" ALIAS "GetPixel" _
      (hdc AS LONG, x AS LONG, y AS LONG) AS LONG

'Définit la valeur RVB d'un pixel.
     DECLARE FUNCTION SetPixelV LIB "gdi32" ALIAS "SetPixelV" _
      (hdc AS LONG, x AS LONG, y AS LONG, crColor AS LONG) AS LONG

'Récupère le rectangle d'une fenêtre (structure "Rect")
     DECLARE FUNCTION GetWindowRect LIB "user32" ALIAS "GetWindowRect" _
      (hwnd AS LONG, lpRect AS Rect) AS LONG
'Récupère le rectangle de la zone client (hors menus, ascensseurs, barres de titre et d'outils)
'd'une fenêtre (structure "Rect")
'Public Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As Rect) As Long

'Définit l'objet graphique sur lequel vont être effectuées les opérations graphiques.
     DECLARE FUNCTION SelectObject LIB "gdi32" ALIAS "SelectObject" _
      (hdc AS LONG, hObject AS LONG) AS LONG

'Crée en mémoire un contexte périphérique compatible avec le contexte périphérique graphique spécifié.
     DECLARE FUNCTION CreateCompatibleDC LIB "gdi32" ALIAS "CreateCompatibleDC" _
      (hdc AS LONG) AS LONG

'Crée en mémoire un bitmap compatible avec le contexte périphérique graphique spécifié.
     DECLARE FUNCTION CreateCompatibleBitmap LIB "gdi32" ALIAS "CreateCompatibleBitmap" _
      (hdc AS LONG, nWidth AS LONG, nHeight AS LONG) AS LONG

'Supprime un objet graphique. Réalloue les ressources utilisées.
     DECLARE FUNCTION DeleteObject LIB "gdi32" ALIAS "DeleteObject" _
      (hObject AS LONG) AS LONG

'Supprime un contexte périphérique graphique. Réalloue les ressources utilisées.
     DECLARE FUNCTION DeleteDC LIB "gdi32" ALIAS "DeleteDC" _
      (hdc AS LONG) AS LONG

'Libère un contexte périphérique graphique. Le rend disponible pour d'autres utilisateurs éventuels.
'Pas sur que ce soit indispensable dans le cas présent. Mis par prudence.
     DECLARE FUNCTION ReleaseDC LIB "user32" ALIAS "ReleaseDC" _
      (hwnd AS LONG, hdc AS LONG) AS LONG

'Public Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
'Cette API est utile pour récupérer le handle de la fenêtre située sous la fenêtre à
'ombrer et gérer ainsi un éventuel étagement de l'ombre. Avis aux perfectionnistes...



'fonctions pour débuggage
'Public Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
'Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long


掌柜推荐
 
 
 
 
 
 
 
 
 
 
 
 
© Thu 2023-2-9  Guidance Laboratory Inc.
Email:webmaster1g.yi.org Hits:0 Last modified:2004-05-26 17:52:18