// 纸牌.cpp : 定义应用程序的入口点。
//
#include "stdafx.h"
#include "zhipai.h"
#include "huatu.h"
#include "pai.h"
#include <stdio.h>
#define MAX_LOADSTRING 100
// 全局变量:
HINSTANCE hInst; // 当前实例
TCHAR szTitle[MAX_LOADSTRING]; // 标题栏文本
TCHAR szWindowClass[MAX_LOADSTRING]; // 主窗口类名
/////////////////////////////////////////////////////////////////////////////////////////////
HWND hwnd,hwndXPM;
HDC hdc,hdc1;
huatu *pht;
zhipai *pzp;
bool LBD=false,LBD1=false;//LBUTTONDOWN
int x,y;//鼠标坐标与牌坐标的差
LIST *p,*p1,*p2;
int i;
bool CX=false;//是否能撤销
bool ZTL=true,SJL=true;//是否显示状态栏和时间
bool XS_PorK=false;
int fanpai1or3=1;
int fangkuai=0;
HDC memDC1,memDC2;
HBITMAP hcombmp1,hcombmp2,FKbmp,FK_MKbmp,BJ;
FILE *fn;
int save[5];
int load[5];
void UserInfo();//创建窗口
void Update();//时间,定时器函数
void DongHua();//动画,定时器函数
void ShengLi();//胜利,MessageBox
LRESULT CALLBACK XuanBeiJing(HWND,UINT,WPARAM,LPARAM);//窗体处理函数
INT_PTR CALLBACK XuanXiang(HWND,UINT,WPARAM,LPARAM);//窗体处理函数
///////////////////////////////////////////////////////////////////////////////////////////////
// 此代码模块中包含的函数的前向声明:
ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
// TODO: 在此放置代码。
MSG msg;
HACCEL hAccelTable;
////////////////////////////////////////////////////////////////////////////////////////////////
pzp=new zhipai;
pht=new huatu(pzp,fangkuai);
////////////////////////////////////////////////////////////////////////////////////////////////////
// 初始化全局字符串
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadString(hInstance, IDC_MY, szWindowClass, MAX_LOADSTRING);
MyRegisterClass(hInstance);
// 执行应用程序初始化:
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}
hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY));
////////////////////////////////////////////////////////////////////////////////////////
fn = fopen("SAVE.data","r");
if(fn!=NULL)
{
fread(load,sizeof(int),5,fn);
fangkuai = load[0];
fanpai1or3 = load[1];
ZTL = (bool)load[2];
SJL = (bool)load[3];
XS_PorK = (bool)load[4];
fclose(fn);
}
else
{
fangkuai = 0;
fanpai1or3 = 1;
ZTL = SJL = true;
XS_PorK=false;
}
pht->GaiXuanXiang(ZTL,SJL,XS_PorK,fangkuai,fanpai1or3);
//pht->GaiXuanXiang(ZTL,SJL,fangkuai,fanpai1or3);
hdc=GetDC(hwnd);
memDC1=CreateCompatibleDC(hdc);
hcombmp1=CreateCompatibleBitmap(hdc,600,520);
SelectObject(memDC1,hcombmp1);
memDC2=CreateCompatibleDC(hdc);
hcombmp2=CreateCompatibleBitmap(hdc,600,520);
SelectObject(memDC2,hcombmp2);
BJ=(HBITMAP)LoadImage(hInst,MAKEINTRESOURCE(XPM),IMAGE_BITMAP,267,140,0);
FKbmp=(HBITMAP)LoadImage(hInst,MAKEINTRESOURCE(FK),IMAGE_BITMAP,39,63,0);
FK_MKbmp=(HBITMAP)LoadImage(hInst,MAKEINTRESOURCE(FK_MK),IMAGE_BITMAP,39,63,0);
SetTimer(hwnd,1,1000,(TIMERPROC)Update);
pht->Init(hInstance,hdc);
pht->Show(NULL);
/////////////////////////////////////////////////////////////////////////////////////////
// 主消息循环:
while (GetMessage(&msg, NULL, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
fn = fopen("SAVE.data","w+");
save[0] = fangkuai;
save[1] = fanpai1or3;
save[2] = (int)ZTL;
save[3] = (int)SJL;
save[4] = (int)XS_PorK;
fwrite(save,sizeof(int),5,fn);
fclose(fn);
while(KillTimer(hwnd,2) != 0){}
while(KillTimer(hwnd,1) != 0){}
ReleaseDC(hwnd,hdc);
delete pht;
pht=NULL;
delete pzp;
pzp=NULL;
return (int) msg.wParam;
}
//
// 函数: MyRegisterClass()
//
// 目的: 注册窗口类。
//
// 注释:
//
// 仅当希望
// 此代码与添加到 Windows 95 中的“RegisterClassEx”
// 函数之前的 Win32 系统兼容时,才需要此函数及其用法。调用此函数十分重要,
// 这样应用程序就可以获得关联的
// “格式正确的”小图标。
//
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW |CS_DBLCLKS;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MY));
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = MAKEINTRESOURCE(IDC_MY);
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
return RegisterClassEx(&wcex);
}
//
// 函数: InitInstance(HINSTANCE, int)
//
// 目的: 保存实例句柄并创建主窗口
//
// 注释:
//
// 在此函数中,我们在全局变量中保存实例句柄并
// 创建和显示主程序窗口。
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
hInst = hInstance; // 将实例句柄存储在全局变量中
hwnd = CreateWindow(szWindowClass, szTitle, WS_SYSMENU,
CW_USEDEFAULT, 0, 606, 572, NULL, NULL, hInstance, NULL);
if (!hwnd)
{
return FALSE;
}
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
return TRUE;
}
//
// 函数: WndProc(HWND, UINT, WPARAM, LPARAM)
//
// 目的: 处理主窗口的消息。
//
// WM_COMMAND - 处理应用程序菜单
// WM_PAINT - 绘制主窗口
// WM_DESTROY - 发送退出消息并返回
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
static POINT pt;
HMENU hMenu;
switch (message)
{
case WM_CREATE:
hMenu = GetMenu(hWnd);
EnableMenuItem(hMenu,IDM_CHEXIAO,MF_GRAYED|MF_BYCOMMAND);
break;
case WM_KEYDOWN:
switch(wParam)
{
case 90://z
if(pht->ReturnDongHua())
{
pzp->~zhipai();
pzp->ShengLi();
pzp->PaiLie();
pht->Show(NULL);
}
break;
case VK_ESCAPE:
if(!pht->ReturnDongHua())
{
while(KillTimer(hwnd,2) != 0){}
ShengLi();
}
break;
}
break;
case WM_RBUTTONUP:
if(pht->ReturnDongHua())
{
if(LBD==false&&LBD1==false)
{
CX=pzp->ShouPai();
hMenu = GetMenu(hWnd);
if(CX)
EnableMenuItem(hMenu,IDM_CHEXIAO,MF_ENABLED|MF_BYCOMMAND);
else
EnableMenuItem(hMenu,IDM_CHEXIAO,MF_GRAYED|MF_BYCOMMAND);
pzp->PaiLie();
pht->Show(NULL);
}
else
{
CX=false;
hMenu = GetMenu(hWnd);
EnableMenuItem(hMenu,IDM_CHEXIAO,MF_GRAYED|MF_BYCOMMAND);
}
if((pzp->ReturnPai(17)->pback->paimian-1)%13==0&&pzp->ReturnPai(17)->pback!=pzp->ReturnPai(16)&&
(pzp->ReturnPai(19)->pback->paimian-1)%13==0&&pzp->ReturnPai(19)->pback!=pzp->ReturnPai(18)&&
(pzp->ReturnPai(21)->pback->paimian-1)%13==0&&pzp->ReturnPai(21)->pback!=pzp->ReturnPai(20)&&
(pzp->ReturnPai(23)->pback->paimian-1)%13==0&&pzp->ReturnPai(23)->pback!=pzp->ReturnPai(22))
{
SetTimer(hWnd,2,1,(TIMERPROC)DongHua);
while(KillTimer(hwnd,1) != 0){}
pht->KaiDongHua();
}
}
break;
case WM_LBUTTONDBLCLK:
if(pht->ReturnDongHua())
{
pt.x=LOWORD(lParam);
pt.y=HIWORD(lParam);
if(pt.y>120)
{
i=(pt.x-10)/85;
pzp->ShuangJi(pt.x,pt.y,i);
}
if(pt.x>95&&pt.x<186&&pt.y>10&&pt.y<106)
{
pzp->ShuangJi(pt.x,pt.y);
}
}
else
{
while(KillTimer(hwnd,2) != 0){}
ShengLi();
}
break;
case WM_LBUTTONDOWN:
SetCapture(hWnd);//一直捕获鼠标
if(pht->ReturnDongHua())
{
pt.x=LOWORD(lParam);
pt.y=HIWORD(lParam);
if(pt.y>120)//下面的牌
{
i=(pt.x-10)/85;
没有合适的资源?快使用搜索试试~ 我知道了~
C++纸牌,仿xp纸牌
共95个文件
bmp:68个
db:8个
h:6个
4星 · 超过85%的资源 需积分: 10 45 下载量 4 浏览量
2009-06-15
19:02:53
上传
评论 2
收藏 1.01MB RAR 举报
温馨提示
仿xp纸牌,与xp相似度很高,操作几乎都实现了,翻牌可一张可三张,可选背面图案,完成后有动画,按z后点鼠标左键可直接播放动画
资源推荐
资源详情
资源评论
收起资源包目录
C++纸牌.rar (95个子文件)
C++纸牌
项目
resource.h 6KB
stdafx.h 415B
纸牌.vcproj 10KB
纸牌
FangKuai_MK.bmp 7KB
XuanPaiMian.bmp 110KB
背景
PaiMian_57.bmp 20KB
PaiMian_59.bmp 20KB
PaiMian_54.bmp 20KB
PaiMian_56.bmp 20KB
PaiMian_63.bmp 20KB
PaiMian_62.bmp 20KB
PaiMian_64.bmp 20KB
PaiMian_60.bmp 20KB
Thumbs.db 97KB
PaiMian_58.bmp 20KB
PaiMian_55.bmp 20KB
PaiMian_61.bmp 20KB
红桃
HongK_53.bmp 20KB
HongJ_51.bmp 20KB
HongQ_52.bmp 20KB
Hong10_50.bmp 20KB
Hong7_47.bmp 20KB
Hong6_46.bmp 20KB
Hong9_49.bmp 20KB
Hong5_45.bmp 20KB
Hong2_42.bmp 20KB
Hong8_48.bmp 20KB
Hong4_44.bmp 20KB
Thumbs.db 144KB
HongA_41.bmp 20KB
Hong3_43.bmp 20KB
PaiMian_1.bmp 20KB
FangKuai.bmp 7KB
方块
Fang7_34.bmp 20KB
Fang9_36.bmp 20KB
Fang5_32.bmp 20KB
Fang8_35.bmp 20KB
FangK_40.bmp 20KB
Thumbs.db 139KB
Fang2_29.bmp 20KB
FangA_28.bmp 20KB
Fang3_30.bmp 20KB
FangQ_39.bmp 20KB
FangJ_38.bmp 20KB
Fang4_31.bmp 20KB
Fang6_33.bmp 20KB
Fang10_37.bmp 20KB
Thumbs.db 33KB
黑桃
Hei6_20.bmp 20KB
Hei2_16.bmp 20KB
HeiA_15.bmp 20KB
HeiK_27.bmp 20KB
Hei5_19.bmp 20KB
Hei4_18.bmp 20KB
Hei3_17.bmp 20KB
Hei8_22.bmp 20KB
Hei9_23.bmp 20KB
Hei10_24.bmp 20KB
Thumbs.db 132KB
HeiQ_26.bmp 20KB
HeiJ_25.bmp 20KB
Hei7_21.bmp 20KB
草花
CaoK_14.bmp 20KB
Cao2_3.bmp 20KB
CaoQ_13.bmp 20KB
Cao3_4.bmp 20KB
Cao5_6.bmp 20KB
Cao8_9.bmp 20KB
Cao10_11.bmp 20KB
Cao4_5.bmp 20KB
Cao9_10.bmp 20KB
Thumbs.db 169KB
Cao6_7.bmp 20KB
CaoJ_12.bmp 20KB
Cao7_8.bmp 20KB
CaoA_2.bmp 20KB
BeiJing_0.bmp 914KB
纸牌.rc 11KB
targetver.h 1KB
pai.cpp 11KB
small.ico 23KB
zhipai.h 39B
stdafx.cpp 209B
pai.h 1KB
zhipai.cpp 20KB
Thumbs.db 6KB
huatu.cpp 12KB
纸牌.ico 23KB
huatu.h 1KB
Thumbs.db 4KB
exe
msvcm90.dll 220KB
msvcr90.dll 641KB
zhipai.exe 2.36MB
Microsoft.VC90.CRT.manifest 524B
msvcp90.dll 556KB
共 95 条
- 1
资源评论
- xtb9269292012-03-27代码不错,而且也能运行!如果在代码上加点注释就更好了啊
- dlyouyou2011-12-19在VC下无法运行,只能事在TC环境下。
Smile_1025
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功