//头文件
#include "StdAfx.h"
#include "ATPC.h"
#include "TWinApp.h"
#include "MainWindow.h"
#include "SetMineWnd.h"
CMainWindow::CMainWindow()
{
m_pMineListBox = NULL;
}
CMainWindow::~CMainWindow(void)
{
if( m_pMineListBox )
{
delete m_pMineListBox;
m_pMineListBox = NULL;
}
}
//创建自己的消息映射表(放在类的实现进行定义拦截消息的)
BEGIN_MESSAGE_MAP(CMainWindow,CFrameWnd)
ON_WM_CREATE()
ON_WM_CLOSE()
ON_WM_CTLCOLOR()
ON_WM_ERASEBKGND()
//ON_COMMAND()
END_MESSAGE_MAP()
int CMainWindow::MyInit()
{
CSetMineWnd *c_pSetMineWindow = newCSetMineWnd();
c_pSetMineWindow->SetMineWindow();
if(!CMainWindow::Create(c_pSetMineWindow->m_RectWindow->lpszClass,c_pSetMineWindow->m_RectWindow->lpszName,\
c_pSetMineWindow->m_RectWindow->style,c_pSetMineWindow->m_RectWindow->rect,NULL,\
c_pSetMineWindow->m_RectWindow->hMenu,c_pSetMineWindow->m_RectWindow->dwExStyle,NULL))//构造函数直接进行窗口的创建
{
_tprintf(_T("CMainWindow::Createfalse\r\n"));
return false;
}
//m_brush.CreateSysColorBrush(COLOR_BACKGROUND);
return true;
}
voidCMainWindow::OnClose()
{
::DestroyWindow(this->m_hWnd);//销毁活动的窗口(参数是获得当前活动窗口的句柄)
//ExitProcess(1);//完成结束全部进程
//TerminateThread( GetCurrentThread(),0 );
ExitThread(-1);
}
intCMainWindow::OnCreate(LPCREATESTRUCTlpcreatestruct)
{
if( !m_pMineListBox )
{
m_pMineListBox = newCListBox();
m_pMineListBox->Create(WS_CHILD| WS_VISIBLE| WS_VSCROLL| WS_HSCROLL| WS_TABSTOP,CRect(10,10,(10+360),(10+235)), this, 1);
}
for(int i=0; i<50; ++i)
{
m_pMineListBox->AddString(_T("TESTTEST TEST TEST TEST TEST TEST TEST TEST"));
}
return false;
//returnCFrameWnd::OnCreate(lpcreatestruct);
}
BOOLCMainWindow::OnEraseBkgnd(CDC* pDC)
{
CBrush backBrush(RGB(255,0,0));//建立新的画刷
//保存旧的brush
CBrush* pOldBrush =pDC->SelectObject(&backBrush);
CRect rect;
pDC->GetClipBox(&rect);//取得矩形区域的边界
//画需要的区域
pDC->PatBlt(rect.left, rect.top,rect.Width(), rect.Height(), PATCOPY);
pDC->SelectObject(pOldBrush);//画刷恢复
return TRUE;
}
HBRUSHCMainWindow::OnCtlColor(CDC* pDC, CWnd* pWnd, UINTnCtlColor)
{
if( CTLCOLOR_LISTBOX == nCtlColor&& pWnd == m_pMineListBox )
{
pDC->SetTextColor(RGB(255,0,0));
pDC->SetBkColor(RGB(0,0,255));
//pDC->SetBkMode(OPAQUE);
HBRUSH B =::CreateSolidBrush(RGB(255,255,255));
return B;
}
return CFrameWnd::OnCtlColor(pDC, pWnd,nCtlColor);//其实不返回父类,也可以成功创建窗口控件
}