Initial commit: ROW Client source code
Game client codebase including: - CharacterActionControl: Character and creature management - GlobalScript: Network, items, skills, quests, utilities - RYLClient: Main client application with GUI and event handlers - Engine: 3D rendering engine (RYLGL) - MemoryManager: Custom memory allocation - Library: Third-party dependencies (DirectX, boost, etc.) - Tools: Development utilities 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
174
Tools/LauncherMY/MSGDialog.cpp
Normal file
174
Tools/LauncherMY/MSGDialog.cpp
Normal file
@@ -0,0 +1,174 @@
|
||||
// MSGDialog.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "MSGDialog.h"
|
||||
|
||||
#include "InitValue.h"
|
||||
#include "../LoginRes/Resource.h"
|
||||
|
||||
#include "memdc.h"
|
||||
#include <mmsystem.h>
|
||||
#pragma comment(lib, "winmm")
|
||||
|
||||
// CMSGDialog <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
IMPLEMENT_DYNAMIC(CMSGDialog, CDialog)
|
||||
CMSGDialog::CMSGDialog(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CMSGDialog::IDD, pParent)
|
||||
{
|
||||
}
|
||||
|
||||
CMSGDialog::~CMSGDialog()
|
||||
{
|
||||
}
|
||||
|
||||
void CMSGDialog::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDOK, m_Ok);
|
||||
DDX_Control(pDX, IDCANCEL, m_Cancel);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CMSGDialog, CDialog)
|
||||
ON_WM_PAINT()
|
||||
ON_WM_LBUTTONDOWN()
|
||||
ON_WM_MOUSEMOVE()
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CMSGDialog <20><EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
BOOL CMSGDialog::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// TODO: Add extra initialization here
|
||||
InitClientFoloder();
|
||||
|
||||
InitWebBrowser();
|
||||
|
||||
SetWindowPos( NULL, 0,0, 600, 500, SWP_NOMOVE | SWP_NOZORDER );
|
||||
SetWindowText( "R.O.W Online" );
|
||||
|
||||
m_Ok.SetWindowPos(NULL, 182, 442, m_Ok.GetSizeX(), m_Ok.GetSizeY() , SWP_NOZORDER);
|
||||
m_Cancel.SetWindowPos(NULL, 319, 442, m_Cancel.GetSizeX(), m_Cancel.GetSizeY(), SWP_NOZORDER) ;
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
}
|
||||
|
||||
void CMSGDialog::InitClientFoloder(void)
|
||||
{
|
||||
HKEY hMPClientReg = 0;
|
||||
|
||||
char strPath[MAX_PATH]="";
|
||||
|
||||
if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, STR_CLIENT_REGISTRY_SUBKEY,
|
||||
0, KEY_READ, &hMPClientReg) == ERROR_SUCCESS)
|
||||
{
|
||||
DWORD dwReadType = 0;
|
||||
DWORD dwReadLens = MAX_PATH;
|
||||
|
||||
if (RegQueryValueEx(hMPClientReg, STR_CLIENT_REGISTRY_VALUE_NAME, 0,
|
||||
&dwReadType, reinterpret_cast<unsigned char*>(strPath), &dwReadLens) == ERROR_SUCCESS)
|
||||
{
|
||||
strPath[MAX_PATH - 1] = 0;
|
||||
m_strRYLFolder.SetString(strPath);
|
||||
}
|
||||
|
||||
RegCloseKey(hMPClientReg);
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox(RYLLoginGetMessage(LOGIN_MSG_CLIENT_NOT_INSTALLED));
|
||||
}
|
||||
}
|
||||
|
||||
void CMSGDialog::InitWebBrowser(void)
|
||||
{
|
||||
m_WebPage.Create(NULL, NULL, (WS_CHILD | WS_VISIBLE ),
|
||||
CRect(32, 111, 567, 418), this, IDR_WEBVIEW, NULL);
|
||||
|
||||
m_WebPage.Navigate(m_strRYLFolder + "/Notice/default1.html");
|
||||
}
|
||||
|
||||
void CMSGDialog::InitInterface(void)
|
||||
{
|
||||
#ifdef _NATION_GM_
|
||||
m_btmBase.LoadBitmap(IDB_BITMAP_MSG);
|
||||
|
||||
m_Ok.SetBitmap(IDB_BITMAP_MSGOK0, IDB_BITMAP_MSGOK1, IDB_BITMAP_MSGOK2);
|
||||
m_Cancel.SetBitmap(IDB_BITMAP_MSGNO0, IDB_BITMAP_MSGNO1, IDB_BITMAP_MSGNO2);
|
||||
#endif
|
||||
}
|
||||
|
||||
void CMSGDialog::OnPaint()
|
||||
{
|
||||
CPaintDC dc(this); // device context for painting
|
||||
|
||||
if (IsIconic())
|
||||
{
|
||||
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
|
||||
|
||||
// Center icon in client rectangle
|
||||
int cxIcon = GetSystemMetrics(SM_CXICON);
|
||||
int cyIcon = GetSystemMetrics(SM_CYICON);
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
int x = (rect.Width() - cxIcon + 1) / 2;
|
||||
int y = (rect.Height() - cyIcon + 1) / 2;
|
||||
|
||||
// Draw the icon
|
||||
// kidleon@kronet.net
|
||||
//dc.DrawIcon(x, y, m_hIcon);
|
||||
}
|
||||
else
|
||||
{
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
|
||||
CMemDC pDC( &dc, rect);
|
||||
|
||||
RenderBack( pDC, m_btmBase, 0, 0 );
|
||||
|
||||
CDialog::OnPaint();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void CMSGDialog::RenderBack( CDC &rDC, CBitmap &rBitmap, int Px, int Py , int SizeX, int SizeY )
|
||||
{
|
||||
CDC memDC;
|
||||
memDC.CreateCompatibleDC(&rDC);
|
||||
|
||||
CBitmap *pOldBitmap = memDC.SelectObject(&rBitmap);
|
||||
CSize sBitmap = rBitmap.GetBitmapDimension();
|
||||
|
||||
BITMAP bmInfo;
|
||||
rBitmap.GetBitmap(&bmInfo);
|
||||
|
||||
if( SizeX == -1 && SizeY == -1 )
|
||||
{
|
||||
rDC.BitBlt(Px,Py,bmInfo.bmWidth,bmInfo.bmHeight,&memDC,0,0,SRCCOPY);
|
||||
}
|
||||
else
|
||||
{
|
||||
rDC.BitBlt(Px,Py,SizeX,SizeY,&memDC,0,0,SRCCOPY);
|
||||
}
|
||||
|
||||
memDC.SelectObject(pOldBitmap);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void CMSGDialog::OnLButtonDown(UINT nFlags, CPoint point)
|
||||
{
|
||||
PostMessage( WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM( point.x, point.y) );
|
||||
CDialog::OnLButtonDown(nFlags, point);
|
||||
}
|
||||
|
||||
void CMSGDialog::OnMouseMove(UINT nFlags, CPoint point)
|
||||
{
|
||||
// TODO: Add your message handler code here and/or call default
|
||||
CDialog::OnMouseMove(nFlags, point);
|
||||
}
|
||||
Reference in New Issue
Block a user