DragonNest/Client/DnLauncher/Country/THAI/DnLauncherDlgTHAI.cpp
2024-12-19 09:48:26 +08:00

124 lines
No EOL
3.3 KiB
C++

#include "stdafx.h"
#include "DnLauncherDlgTHAI.h"
#include "../../DnHtmlView.h"
#if defined(_THAI)
CDnLauncherDlgTHAI::CDnLauncherDlgTHAI( CWnd* pParent )
: CDnLauncherDlg( pParent )
{
m_nMaxCtrlNum = em_ExMaxNum;
m_pRectCtrl = new CRect[em_ExMaxNum];
}
void CDnLauncherDlgTHAI::DoDataExchange( CDataExchange* pDX )
{
CDnLauncherDlg::DoDataExchange( pDX );
// Static Text Ctrl
DDX_Control( pDX, IDC_HOMEPAGE_LINK, m_StaticHomepageLink );
}
BEGIN_MESSAGE_MAP( CDnLauncherDlgTHAI, CDnLauncherDlg )
ON_WM_DESTROY()
ON_WM_SETCURSOR()
ON_BN_CLICKED( IDC_HOMEPAGE_LINK, &CDnLauncherDlgTHAI::OnClickedHomepageLink )
END_MESSAGE_MAP()
void CDnLauncherDlgTHAI::OnDestroy()
{
SAFE_DELETE_ARRAY( m_pRectCtrl );
CDnLauncherDlg::OnDestroy();
m_FontStatic.DeleteObject();
}
BOOL CDnLauncherDlgTHAI::OnSetCursor( CWnd* pWnd, UINT nHitTest, UINT message )
{
CPoint pt;
CRect rc;
GetCursorPos( &pt );
GetDlgItem( IDC_HOMEPAGE_LINK )->GetWindowRect( rc );
if( rc.PtInRect( pt ) )
{
SetCursor(AfxGetApp()->LoadStandardCursor( MAKEINTRESOURCE( IDC_HAND ) ) );
return TRUE;
}
return CDialog::OnSetCursor( pWnd, nHitTest, message );
}
void CDnLauncherDlgTHAI::MakeFont()
{
m_Font.CreateFont( 14, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, 0, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY, DEFAULT_PITCH | FF_ROMAN, _T("tahoma") );
m_FontStatic.CreateFont( 14, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, 0, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY, DEFAULT_PITCH | FF_ROMAN, _T("tahoma") );
}
void CDnLauncherDlgTHAI::SetStaticText()
{
CDnLauncherDlg::SetStaticText();
m_StaticLauncherVersion.SetFont( &m_FontStatic );
m_StaticHomepageLink.SetTextColor( RGB( 25, 115, 255 ) );
m_StaticHomepageLink.SetFont( &m_Font );
m_StaticHomepageLink.MoveWindow( m_pRectCtrl[em_StaticText_HomepageLink] );
m_StaticHomepageLink.SetWindowText( _S( STR_HOMEPAGE_LINK ) );
}
BOOL CDnLauncherDlgTHAI::InitWebpage()
{
BOOL bRtn = CDnLauncherDlg::InitWebpage();
m_pDnHtmlView->ModifyStyleEx( WS_EX_CLIENTEDGE, 0, SWP_FRAMECHANGED );
return bRtn;
}
BOOL CDnLauncherDlgTHAI::InitBackground()
{
CxImage xImage;
if( !xImage.LoadResource( FindResource( NULL, MAKEINTRESOURCE( IDR_JPG_BACK_GROUND ), L"PNG" ), CXIMAGE_FORMAT_PNG ) )
return FALSE;
HBITMAP hBmp = xImage.MakeBitmap();
if( hBmp == NULL )
return FALSE;
// set window size
BITMAP bmp = { 0 };
GetObject( hBmp, sizeof(BITMAP), &bmp );
m_dwWidth = bmp.bmWidth; // bitmap width
m_dwHeight = bmp.bmHeight; // bitmap height
// alpha color
HRGN hRgn = CreateRgnFromFile( hBmp, RGB( 255, 0, 255 ) );
// build memory dc for background
CDC* dc = GetDC();
m_dcBkGrnd = CreateCompatibleDC( dc->m_hDC );
ReleaseDC( dc );
// select background image
SelectObject( m_dcBkGrnd, hBmp );
// set window size the same as image size
//SetWindowPos( NULL, 0, 0, m_dwWidth, m_dwHeight, SWP_NOZORDER | SWP_NOMOVE );
SetWindowPos( &wndTopMost, 0, 0, m_dwWidth, m_dwHeight, SWP_NOZORDER | SWP_NOMOVE | SWP_NOACTIVATE );
::SetForegroundWindow( this->GetSafeHwnd() );
::SetActiveWindow( this->GetSafeHwnd() );
// assign region to window
SetWindowRgn( hRgn, FALSE );
return TRUE;
}
void CDnLauncherDlgTHAI::OnClickedHomepageLink()
{
GetDlgItem( IDC_HOMEPAGE_LINK )->Invalidate();
ShellExecute( m_hWnd, L"open", DNPATCHINFO.GetHomepageUrl(), NULL, NULL, SW_SHOW );
}
#endif // _THAI