消息机制的建立 MFC

原创 2013年12月02日 14:34:55

//头文件
#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);//其实不返回父类,也可以成功创建窗口控件                                            
}

相关文章推荐

MFC基础概述,消息机制

  • 2009年01月20日 00:08
  • 94KB
  • 下载

MFC消息机制

  • 2012年12月06日 18:42
  • 45KB
  • 下载

windows消息机制(MFC)

消息分类与消息队列 Windows中,消息使用统一的结构体(MSG)来存放信息,其中message表明消息的具体的类型, 而wParam,lParam是其最灵活的两个变量,为不同的消息类型时,存放...

MFC中的RTTI,动态创建,消息机制

  • 2009年01月21日 01:08
  • 141KB
  • 下载

MFC消息机制的介绍

Windows是基于事件(消息) 驱动机制的图形界面操作系统,基于Windows的应用系统的运行依靠消息来驱动。Windows程序设计主要经历了传统的SDK、MFC 两个重要的发展阶段。 MFC(M...

Visual C++6.0 程序设计从入门到精通(三) - MFC的消息机制

1. 引言MFC 系统,乃至Windows 系统,是一个以消息为核心的系统,它将系统中发生的事件看做一个消息,放置在消息队列中,待系统在合适的时机进行处理。因此,理解 MFC 系统的消息机制显得十分重...

MFC的消息机制

MFC的消息机制 MFC数据结构Windows 今天重新整理MFC的消息机制,最终的结果应该是利用win32程序模拟一个MFC的消息链。 1.标准消息 除WM_COMMAND之外,...
  • mwx1234
  • mwx1234
  • 2011年10月28日 11:55
  • 219

MFC框架剖析和消息机制

即便是基于MFC的应用程序,建立窗口类也是会遵循如下的过程: 设计窗口类->注册窗口类->生成窗口->显示窗口->更新窗口->消息循环->消息路由到窗口过程函数处理。下面就剖析一下在MFC中是如何完...

MFC消息机制---命令绕行

我们已经在上一节把整个消息流动网架设起来了。当消息进来,会有一个泵推动它前 进。消息如何进来,以及泵函数如何推动,都是属于Windows 程序设计的范畴,暂 时不管。我现在要解释消息的流动绕行路线...
  • rankun1
  • rankun1
  • 2016年02月27日 15:41
  • 245

MFC消息机制简析

山高月小,水落石出。 学VC是一段痛苦的经历。因为是自学,而且除了一点浅薄的C和C++基础,别无所有,开始的时候真是举步维艰。现在回想起来,走了很多的弯路,主要是开始时学习方法不对,不应该一开始就学...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:消息机制的建立 MFC
举报原因:
原因补充:

(最多只允许输入30个字)