📄 storewnd.cpp
字号:
/******************************************************************************************************************
葛碘疙:
累己磊:
累己老:
[老磊][荐沥磊] : 荐沥 郴侩
*******************************************************************************************************************/
#include "StdAfx.h"
/////////////////////////////////////////////////////
#define MAX_KINDS_LINE 11
#define MAX_ITEMLIST_LINE 5
#define LINE_GAP 5
/////////////////////////////////////////////////////
#define POS_KINDS_X 44
#define POS_KINDS_Y 43
#define POS_KINDSTITLE_X POS_KINDS_X+12
#define POS_KINDSTITLE_Y 28
#define POS_ITEMSTITLE_X POS_ITEMLIST_LINE_X+15
#define POS_ITEMSTITLE_Y POS_ITEMLIST_LINE_Y
#define POS_ITEMLIST_LINE_X 159
#define POS_ITEMLIST_LINE_Y 90
#define POS_ITEMNAME_X 190
#define POS_ITEMNAME_Y 28
#define POS_ITEMIMAGE_X 188
#define POS_ITEMIMAGE_Y 56
#define LEFT_KIND_RECT 42
#define RIGHT_KIND_RECT 130
#define TOP_KIND_RECT 25
#define BOTTOM_KIND_RECT 228
#define LEFT_ITEM_RECT 157
#define RIGHT_ITEM_RECT 309
#define TOP_ITEM_RECT 103
#define BOTTOM_ITEM_RECT 199
#define POS_X 84 // ex (傈:POS_X,POS_Y)(GOLD:POS__X,POS_Y)
#define POS_Y 246 // ex (公霸:POS_X,POS__Y)(啊规公霸:POS__X,POS__Y)
#define POS__Y 270
#define POS__X 246
#define MAX_MSG_LENGTH 20480 // (20Kb)
CStoreWnd::CStoreWnd()
{
POINT Temp;
m_nIsReadyToDisplay = 0;
m_nCurrentItemTop = 0;
m_nCurrentKindTop = 0;
m_nMaxItemLine = 0;
m_nMaxKindLine = 0;
Temp.x = POS_KINDS_X;
Temp.y = POS_KINDS_Y;
m_xKindBtn.InitTxtBtn(MAX_KINDS_LINE,Temp,LINE_GAP);
Temp.x = POS_ITEMLIST_LINE_X;
Temp.y = POS_ITEMLIST_LINE_Y + 17;
// tRect.top+POS_ITEMLIST_LINE_Y + 17 + (xtBtn->nLinePos-m_nCurrentItemTop)*(tSize.cy+LINE_GAP);
m_xItemLstBtn.InitTxtBtn(MAX_ITEMLIST_LINE,Temp,LINE_GAP);
m_bSelectedKind=FALSE;
m_bSelectedItem=FALSE;
m_xKindRect.left = LEFT_KIND_RECT;
m_xKindRect.top = TOP_KIND_RECT;
m_xKindRect.right = RIGHT_KIND_RECT;
m_xKindRect.bottom = BOTTOM_KIND_RECT;
m_xItemRect.left = LEFT_ITEM_RECT;
m_xItemRect.top = TOP_ITEM_RECT;
m_xItemRect.right = RIGHT_ITEM_RECT;
m_xItemRect.bottom = BOTTOM_ITEM_RECT;
}
CStoreWnd::~CStoreWnd()
{
}
VOID CStoreWnd::CreateStoreWnd(INT nID, CWHWilImageData* pxWndImage, INT nFrameImgIdx, INT nStartX, INT nStartY, INT nWidth, INT nHeight, BOOL bCanMove)
{
CreateGameWnd(nID, pxWndImage, nFrameImgIdx, bCanMove, nStartX, nStartY, nWidth, nHeight);
}
VOID CStoreWnd::ShowStoreWnd()
{
RECT tRect;
CMTxtBtn* xtBtn;
ShowGameWnd();
OnUpdateQueue();
if(m_nIsReadyToDisplay>0)
{
tRect = GetGameWndRect();
g_xMainWnd.PutsHan(NULL,tRect.left + POS_KINDSTITLE_X,tRect.top + POS_KINDSTITLE_Y,RGB(255,255,255),RGB(0,0,0)," 惑 前 疙");
// if(stdMod=1)
g_xMainWnd.PutsHan(NULL,tRect.left + POS_ITEMSTITLE_X,tRect.top + POS_ITEMSTITLE_Y,RGB(255,255,255),RGB(0,0,0)," 备 盒 啊 拜");
if(m_bSelectedKind)
{// Kinds啊 急琶 登菌阑锭
g_xMainWnd.PutsHan(NULL,tRect.left + POS_ITEMNAME_X+20,tRect.top + POS_ITEMNAME_Y + 10 ,RGB(255,255,255),RGB(0,0,0),"蜡岿档");
g_xGameProc.m_xImage.m_xImageList[_IMAGE_ITEM_INVENTORY].NewSetIndex(1); // 秦寸 酒捞袍 Looks甫 持阑巴
g_xMainWnd.DrawWithImageForCompClipRgn(
tRect.left + POS_ITEMIMAGE_X - (g_xGameProc.m_xImage.m_xImageList[_IMAGE_ITEM_INVENTORY].m_lpstNewCurrWilImageInfo->shWidth / 2),tRect.top + POS_ITEMIMAGE_Y - (g_xGameProc.m_xImage.m_xImageList[_IMAGE_ITEM_INVENTORY].m_lpstNewCurrWilImageInfo->shHeight / 2)
,g_xGameProc.m_xImage.m_xImageList[_IMAGE_ITEM_INVENTORY].m_lpstNewCurrWilImageInfo->shWidth,g_xGameProc.m_xImage.m_xImageList[_IMAGE_ITEM_INVENTORY].m_lpstNewCurrWilImageInfo->shHeight,
(WORD*)g_xGameProc.m_xImage.m_xImageList[_IMAGE_ITEM_INVENTORY].m_pbCurrImage,800,600);
}
if(m_nIsReadyToDisplay&&1)
{ // Kinds List 免仿
m_xKindBtn.m_pTxtBtn.MoveCurrentToTop();
for(int i = 0 ; i <m_xKindBtn.GetButtonCount(); i++)
{
xtBtn = m_xKindBtn.m_pTxtBtn.GetCurrentData();
if((xtBtn->nLinePos>=m_nCurrentKindTop)&&(xtBtn->nLinePos<(m_nCurrentKindTop+MAX_KINDS_LINE)))
{
SIZE tSize;
tSize = g_xMainWnd.GetStrLength(NULL,NULL,xtBtn->Txt);
g_xMainWnd.PutsHan(NULL,tRect.left + xtBtn->xRect.left +POS_KINDS_X,tRect.top + (xtBtn->nLinePos-m_nCurrentKindTop)*(tSize.cy+LINE_GAP) +POS_KINDS_Y,(!xtBtn->bIsClicked?xtBtn->nColor:xtBtn->cColor),RGB(0,0,0),xtBtn->Txt);
}
m_xKindBtn.m_pTxtBtn.MoveNextNode();
}
}
if((m_nIsReadyToDisplay>>1)&&1)
{ // Item List 免仿
// g_xMainWnd.PutsHan(NULL,tRect.left+POS_ITEMLIST_LINE_X,tRect.top+POS_ITEMLIST_LINE_Y+17,RGB(255,255,0),RGB(0,0,0),"123456789012345678901234567890");
m_xItemLstBtn.m_pTxtBtn.MoveCurrentToTop();
for(int i = 0 ; i <m_xItemLstBtn.GetButtonCount(); i++)
{
xtBtn = m_xItemLstBtn.m_pTxtBtn.GetCurrentData();
if((xtBtn->nLinePos>=m_nCurrentItemTop)&&(xtBtn->nLinePos<(m_nCurrentItemTop+MAX_KINDS_LINE)))
{
SIZE tSize;
tSize = g_xMainWnd.GetStrLength(NULL,NULL,xtBtn->Txt);
g_xMainWnd.PutsHan(NULL,tRect.left+POS_ITEMLIST_LINE_X + xtBtn->xRect.left +80,tRect.top+POS_ITEMLIST_LINE_Y + 17 + (xtBtn->nLinePos-m_nCurrentItemTop)*(tSize.cy+LINE_GAP) ,(!xtBtn->bIsClicked?xtBtn->nColor:xtBtn->cColor),RGB(0,0,0),xtBtn->Txt);
g_xMainWnd.PutsHan(NULL,tRect.left+POS_ITEMLIST_LINE_X + xtBtn->xRect.left ,tRect.top+POS_ITEMLIST_LINE_Y + 17 + (xtBtn->nLinePos-m_nCurrentItemTop)*(tSize.cy+LINE_GAP) ,(!xtBtn->bIsClicked?xtBtn->nColor:xtBtn->cColor),RGB(0,0,0),xtBtn->sTxt);
}
m_xItemLstBtn.m_pTxtBtn.MoveNextNode();
}
}
}
}
BOOL CStoreWnd::OnLButtonUp(POINT ptMouse)
{
// BOOL bResult;
RECT tRect;
POINT tPos;
// CHAR* szTest;
CMTxtBtn* tBtn;
tRect = GetGameWndRect(); // Get Window Rect
tPos.x = tRect.left;
tPos.y = tRect.top;
//bResult = ClickCommandProcess(
if(IsInRect(ptMouse,m_xKindRect))
{ // 格废 List
tBtn = m_xKindBtn.ClickCheck(tPos,ptMouse,m_nCurrentKindTop);
if(tBtn!=NULL)
{
// 喘妨柳 滚瓢捞 皋春啊 乐蠢瘤甫 犬牢 窍绊.
// 皋春啊 绝栏搁 弊成 急咆俊辑 肛眠绊 皋春啊 乐阑版快
// 窍困 皋春甫 夸备茄促.
tBtn = m_xKindBtn.ClickCheck(tPos,ptMouse,m_nCurrentKindTop);
if(tBtn->nColor==RGB(255,255,0))
{
// 皋春啊 乐衬?
// 荤扁 阂啊瓷
SendDeTailGoodsList(0,tBtn->Param);
}
else
{
// 皋痹啊 绝衬?
// 弊烦 弊成 急咆. 荤扁 啊瓷.
}
}
else
{
m_nIsReadyToDisplay = 1;
m_bSelectedKind= FALSE;
}
}
if(IsInRect(ptMouse,m_xItemRect))
{ // 亲格 List
tBtn = NULL;
tBtn = m_xItemLstBtn.ClickCheck(tPos,ptMouse,m_nCurrentItemTop);
if(tBtn!=NULL)
{
// 荤扁 啊瓷
m_bSelectedItem = TRUE;
//烙矫
SendButThisITme(tBtn);
}
else
{
m_bSelectedItem = FALSE;
}
}
return FALSE;
}
VOID CStoreWnd::OnMouseMove(POINT ptMouse)
{
}
BOOL CStoreWnd::OnLButtonDown(POINT ptMouse)
{
RECT tRect;
POINT tPos;
tRect = GetGameWndRect(); // Get Window Rect
tPos.x = tRect.left;
tPos.y = tRect.top;
if(IsInRect(ptMouse,m_xKindRect))
{
m_xKindBtn.ClickFreeAllBtn();
m_xKindBtn.ClickCheck(tPos,ptMouse,m_nCurrentKindTop);
}
if(IsInRect(ptMouse,m_xItemRect))
{
m_xItemLstBtn.ClickFreeAllBtn();
}
return FALSE;
}
BOOL CStoreWnd::SetBuyKinds(CHAR* Msg,INT Count) // Eatch Button Divider '\n
{
CNPCTxtAnalysis tTxtAnalysis; // 窜瘤 GetValidStr窃荐甫 荤侩窍扁 困秦辑..
CHAR* szParam;
CHAR* pszStr = new CHAR [MAX_MSG_LENGTH];
if(m_nIsReadyToDisplay&&1)
{
m_xKindBtn.ReleaseButtons();
m_bSelectedKind = FALSE;
// 历厘等 虐 朝府扁
m_nIsReadyToDisplay= 0; // Kinds List 汲沥捞 钱啡澜阑 舅覆
}
ZeroMemory(pszStr,MAX_MSG_LENGTH);
strcpy(pszStr,Msg);
m_nMaxKindLine = Count;
for(int i = 0 ; i < Count ; i ++)
{
CHAR* szTemp;
CHAR* szGName = new CHAR[MAX_PATH];
CHAR* szGSubMenu = new CHAR[MAX_PATH];
CHAR* szGPrice = new CHAR[MAX_PATH];
CHAR* szGStock = new CHAR[MAX_PATH];
INT nSubMenuCount;
szTemp = tTxtAnalysis.GetValidStr(pszStr,szGName,'/');
strcpy(pszStr,szTemp);
szTemp = tTxtAnalysis.GetValidStr(pszStr,szGSubMenu,'/');
strcpy(pszStr,szTemp);
nSubMenuCount = atoi(szGSubMenu);
szTemp = tTxtAnalysis.GetValidStr(pszStr,szGPrice,'/');
strcpy(pszStr,szTemp);
szTemp = tTxtAnalysis.GetValidStr(pszStr,szGStock,'/');
strcpy(pszStr,szTemp);
szTemp = new CHAR[15];
szTemp[14]=NULL;
RECT tRect;
SIZE tSize;
ZeroMemory(&tRect,sizeof(RECT)); //
tSize = g_xMainWnd.GetStrLength(NULL,NULL,szGName);
tRect.top = 0;
tRect.left = 0; // List Button 狼 版快, Left = 0;
tRect.right = tSize.cx;
tRect.bottom = tSize.cy;
szParam = new CHAR[35];
ZeroMemory(szParam,35);
strcpy(szParam,szGName); // 烙矫 Parameter甫 酒捞袍捞抚苞 鞍捞 贸府窃.
// Parameter...
if(nSubMenuCount>0)
{ // Sub Menu 啊 粮犁 窍绰 版快
// 皋春啊 粮犁窍搁 灌篮 畴尔祸
sprintf(szTemp,"%-14s",szGName);
m_xKindBtn.AddButton(szTemp,tRect,i,szParam,RGB(255,255,0),RGB(255,0,0)); // Add Button to class
}
else
{ // Sub Menu 啊 粮犁 窍瘤 臼绰 版快
// 皋春啊 粮犁窍瘤 臼栏搁 绢滴款 畴尔祸
sprintf(szTemp,"%-14s",szGName);
m_xKindBtn.AddButton(szTemp,tRect,i,szParam,RGB(180,180,0),RGB(255,0,0)); // Add Button to class
}
// m_xKindBtn
delete[] szGName;
delete[] szGSubMenu;
delete[] szGPrice;
delete[] szGStock;
delete[] szParam;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -