⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testdlgdlg.cpp

📁 一个WIN CE4.2下的对话框演示程序
💻 CPP
字号:
// TestDlgDlg.cpp : implementation file
//

#include "stdafx.h"
#include "TestDlg.h"
#include "TestDlgDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTestDlgDlg dialog

CTestDlgDlg::CTestDlgDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CTestDlgDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTestDlgDlg)
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
	m_bmpBG.LoadBitmap(IDB_BG);
}

void CTestDlgDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTestDlgDlg)
	DDX_Control(pDX, IDC_BTN_OPTION, m_btnOption);
	DDX_Control(pDX, IDC_BTN_TOOLS, m_btnTools);
	DDX_Control(pDX, IDC_BTN_RADAR, m_btnRadar);
	DDX_Control(pDX, IDC_BTN_NAVI, m_btnNavi);
	DDX_Control(pDX, IDC_BTN_MPLAY, m_btnMPlay);
	DDX_Control(pDX, IDC_BTN_IE, m_btnIE);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CTestDlgDlg, CDialog)
	//{{AFX_MSG_MAP(CTestDlgDlg)
	ON_WM_DESTROY()
	ON_BN_CLICKED(IDC_BTN_NAVI, OnBtnNavi)
	ON_BN_CLICKED(IDC_BTN_RADAR, OnBtnRadar)
	ON_BN_CLICKED(IDC_BTN_MPLAY, OnBtnMplay)
	ON_BN_CLICKED(IDC_BTN_IE, OnBtnIe)
	ON_BN_CLICKED(IDC_BTN_TOOLS, OnBtnTools)
	ON_BN_CLICKED(IDC_BTN_OPTION, OnBtnOption)
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTestDlgDlg message handlers

BOOL CTestDlgDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon

	m_dcMem.CreateCompatibleDC(NULL); 
	BITMAP bitMap;
	m_bmpBG.GetBitmap(&bitMap);
	m_dcMem.SelectObject(&m_bmpBG);

	HWND lpClassName;   
	lpClassName = ::FindWindow(TEXT("HHTaskBar"), NULL);   
	::ShowWindow(lpClassName, SW_HIDE);
	
	CRect rcWorkArea;   
	int screenx = GetSystemMetrics(SM_CXSCREEN);
	int screeny = GetSystemMetrics(SM_CYSCREEN);

	rcWorkArea.left = 0;   
	rcWorkArea.right = screenx;   
	rcWorkArea.top = 0;   
	rcWorkArea.bottom = screeny;   
	::SystemParametersInfo(SPI_SETWORKAREA, 0, &rcWorkArea, SPIF_SENDCHANGE);

	this->SetWindowPos(NULL, rcWorkArea.left, rcWorkArea.top,
		rcWorkArea.Width(), rcWorkArea.Height(), SWP_SHOWWINDOW);

	if (screenx != 800 || screeny != 480)
	{
		AfxMessageBox(TEXT("本软件只支持800×480液晶屏"), MB_OK);
		SendMessage(WM_CLOSE);
	}

	m_btnNavi.LoadBitmaps(IDB_NAVI1, IDB_NAVI2);
	m_btnRadar.LoadBitmaps(IDB_RADAR1, IDB_RADAR2);
	m_btnMPlay.LoadBitmaps(IDB_MPLAY1, IDB_MPLAY2);
	m_btnIE.LoadBitmaps(IDB_IE1, IDB_IE2);
	m_btnTools.LoadBitmaps(IDB_TOOLS1, IDB_TOOLS2);
	m_btnOption.LoadBitmaps(IDB_OPTION1, IDB_OPTION2);

	m_btnNavi.MoveWindow(60, 90, 160, 100);
	m_btnRadar.MoveWindow(320, 90, 160, 100);
	m_btnMPlay.MoveWindow(580, 90, 160, 100);
	m_btnIE.MoveWindow(60, 280, 160, 100);
	m_btnTools.MoveWindow(320, 280, 160, 100);
	m_btnOption.MoveWindow(580, 280, 160, 100);

	GetDlgItem(IDOK)->MoveWindow(700, 450, 80, 20);
	return TRUE;  // return TRUE  unless you set the focus to a control
}


void CTestDlgDlg::OnDestroy() 
{
	CDialog::OnDestroy();
	
	m_bmpBG.DeleteObject();

	HWND lpClassName;   
	lpClassName = ::FindWindow(TEXT("HHTaskBar"), NULL);   
	::ShowWindow(lpClassName, SW_RESTORE);
}

BOOL CTestDlgDlg::WinExec(LPCTSTR strPath)
{
	PROCESS_INFORMATION processInfo;
	if(!CreateProcess(strPath,NULL,NULL,NULL,NULL,
		CREATE_NEW_CONSOLE,NULL,NULL,NULL,
		&processInfo))
	{
		return FALSE;
	}
	CloseHandle(processInfo.hThread);
	CloseHandle(processInfo.hProcess);
	return TRUE;
}

void CTestDlgDlg::OnBtnNavi() 
{

}

void CTestDlgDlg::OnBtnRadar() 
{

}

void CTestDlgDlg::OnBtnMplay() 
{
	// TODO: Add your control notification handler code here
	
}

void CTestDlgDlg::OnBtnIe() 
{
	WinExec(L"windows/iexplore.exe");	
}

void CTestDlgDlg::OnBtnTools() 
{
	// TODO: Add your control notification handler code here
	
}

void CTestDlgDlg::OnBtnOption() 
{
	// TODO: Add your control notification handler code here
	
}

void CTestDlgDlg::OnPaint() 
{
	CPaintDC dc(this); // device context for painting

	CRect rect;
	GetClientRect(&rect);
	dc.StretchBlt(0,0,rect.Width(),rect.Height(),&m_dcMem,0,0, rect.Width(), rect.Height(),SRCCOPY);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -