On 26 Jan 1999 06:53:30 GMT, tail.bbs@cis.nctu.edu.tw (迷惘) wrote:
>請問各位高手 ....
>我要在VB5裡寫一個撲克牌的程式...
>需要用到windows的Cards.DLL...
>請問要如何宣告函式跟呼叫ㄋㄜ???
(1).Form1 放一個Command Button:
Option Explicit
Dim nWidth As Long, nHeight As Long
Sub Form_Load()
Dim x As Integer
x% = cdtInit(nWidth, nHeight)
End Sub
Private Sub Form_Paint()
Command1.Value = True
End Sub
Sub Form_Unload(Cancel As Integer)
Dim ret As Long
ret = cdtTerm()
End Sub
'a command button placed on form1
Sub Command1_Click()
Dim Xleft As Integer
Dim i As Integer
Dim ret As Integer
Dim xx As Integer
'clubs
Xleft% = 0
For i = 0 To 51 Step 4
ret% = cdtDraw(hDC, Xleft%, 0, i, C_FACES, &HFFFF&)
Xleft% = Xleft% + nWidth / 4
Next
'diamonds
Xleft% = 0
For i = 1 To 51 Step 4
ret% = cdtDraw(hDC, Xleft%, nHeight, i, C_FACES, &HFFFF&)
Xleft% = Xleft% + nWidth / 4
Next
'hearts
Xleft% = 0
For i = 2 To 51 Step 4
ret% = cdtDraw(hDC, Xleft%, nHeight * 2, i, C_FACES, &HFFFF&)
Xleft% = Xleft% + nWidth / 4
Next
'spades
Xleft% = 0
For i = 3 To 51 Step 4
ret% = cdtDraw(hDC, Xleft%, nHeight * 3, i, C_FACES, &HFFFF&)
Xleft% = Xleft% + nWidth / 4
Next
'draw card backs
For i = 53 To 68
xx% = (i - 53) * nWidth / 3.74
ret% = cdtDraw(hDC, 4.1 * nWidth, xx%, i, C_BACKS, &HFFFF&)
Next
End Sub
(2).Module 的內容:
Option Explicit
'Delarations and utilities for using CARDS.DLL
'Actions for CdtDraw/Ext
' use in the nDraw field
Global Const C_FACES = 0
Global Const C_BACKS = 1
Global Const C_INVERT = 2
'Card Numbers
' use in the nCard field
'from 0 to 51 [Ace (club,diamond,heart,spade), Deuce, ... , King]
'Card Backs
' use in the nCard field
' CAUTION: when nCard > 53 then nDraw must be = 1 (C_BACKS)
Global Const crosshatch = 53
Global Const weave1 = 54
Global Const weave2 = 55
Global Const robot = 56
Global Const flowers = 57
Global Const vine1 = 58
Global Const vine2 = 59
Global Const fish1 = 60
Global Const fish2 = 61
Global Const shells = 62
Global Const castle = 63
Global Const island = 64
Global Const cardhand = 65
Global Const UNUSED = 66
Global Const THE_X = 67
Global Const THE_O = 68
'Initialization
' call before anything else. Returns the default
' width and height for the cards, in pixels.
Declare Function cdtInit Lib "CARDS.DLL" (nWidth As Long, nHeight As
Long) As Long
'CdtDraw used to draw a card with the default size
'at a specified location in a form, picture box or whatever.
'It can draw any of the 52 faces an 13 different Back designs,
'as well as pile markers such as the X and O. Cards can also
'be drawn in the negative image, eg to show selection.
'xOrg = x origin in pixels
'yOrg = y origin in pixels
'nCard = one of the Card Back constants or a card number 0 to 51
'nDraw = one of the Action constants
'nColor = The highlight color
Declare Function cdtDraw Lib "CARDS.DLL" (ByVal hDC As Long, ByVal
xOrg As Long, ByVal yOrg As Long, ByVal nCard As Long, ByVal nDraw As
Long, ByVal nColor As Long) As Long
'CdtDrawExt used to draw a card in any size
'Much the same as CdtDraw, but you can specify the height & width
'of the card, as well as location.
'nWidth = Width of card in pixels
'nHeight = Height of card in pixels.
Declare Function CdtDrawExt Lib "CARDS.DLL" (ByVal hDC As Integer,
ByVal xOrg As Integer, ByVal yOrg As Integer, ByVal nWidth As Integer,
ByVal nHeight As Integer, ByVal nCard As Integer, ByVal nDraw As
Integer, ByVal nColor&) As Integer
'CdtTerm should be called when the program terminates.
' Primarily it releases memory back to Windows.
Declare Function cdtTerm Lib "CARDS.DLL" () As Long