MFC练习
来源:互联网 发布:james blunt知乎 编辑:程序博客网 时间:2024/06/05 06:32
::ZeroMemory(m_nGameGrid,9*sizeof(int)); //相应的函数API接口,进行ASPI函数的定义,::证明是全局函数 //游戏初始化就相当于将相应的内存模块清空,并进行相应初始化 Invalidate(); //作用是令整个窗口无效
在C++中经常简单在函数的内部调用相应的函数的时候带上::的符号,带有这样符号的函数说明是全局函数。
建立简单的MFC程序
编写代码:
HELLOMFC.c文件
#ifndef _WIN32_WINNT#define _WIN32_WINNT 0x0501#endif#ifndef _WIN32_IE#define _WIN32_IE 0x0500#endif//这样做的目的是为了可兼容vc++6.0的程序,由于程序参考的是VC++6.0的但是编译器是VS2008所以部分地方设置的有些不同#include <afxwin.h>#include "hellomfc.h"CMyApp myApp; //类的初始化,声明一个CMyApp的类对象并进行初始化BOOL CMyApp::InitInstance(){ m_pMainWnd = new CMyFrame; m_pMainWnd ->ShowWindow(m_nCmdShow); m_pMainWnd ->UpdateWindow(); return TRUE;}CMyFrame::CMyFrame(){ m_bMouseOver =FALSE; Create(NULL, TEXT("这是我的MFC测试窗口!")); //创建一个窗口}BEGIN_MESSAGE_MAP(CMyFrame, CFrameWnd) ON_WM_PAINT() // ON_WM_NCHITTEST() //为afx_msg UINT OnNcHitest();加上鼠标动作处理消息处理函数 ON_WM_MOUSEMOVE() ON_MESSAGE(WM_MOUSELEAVE,OnMouseLeave) //没有特定的消息映射宏的时候要使用消息映射关联在一起 ON_MESSAGE(WM_MOUSEHOVER,OnMouseHover)END_MESSAGE_MAP()//UINT CMyFrame::OnNcHitest(CPoint point) //参数point 是消息发生的时候鼠标点击位置的坐标//{// //UINT nHitTest = CFrameWnd::OnNcHitTest(point); // if (nHitTest == HTCLIENT) // nHitTest = HTCAPTION; // return nHitTest;//}void CMyFrame::OnPaint(){ CPaintDC dc(this); CRect rect; GetClientRect(&rect); dc.DrawText(TEXT("Hello MFC!"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);}void CMyFrame::OnMouseMove(UINT nflags,CPoint point){ if(!m_bMouseOver) { SetWindowText("MOUSE ENTER!"); m_bMouseOver = TRUE; TRACKMOUSEEVENT tme; tme.cbSize = sizeof(tme); tme.dwFlags = TME_HOVER | TME_LEAVE; tme.hwndTrack = m_hWnd; //窗口的句柄 tme.dwHoverTime = HOVER_DEFAULT; // 在窗口上放置多久才会产生消息 ::TrackMouseEvent(&tme); }}LRESULT CMyFrame::OnMouseLeave(WPARAM wParam,LPARAM lParam){ SetWindowText("MOUSE LEAVE"); m_bMouseOver = FALSE; return 0;}LRESULT CMyFrame ::OnMouseHover(WPARAM wParam,LPARAM lParam){ CString strmsg; strmsg.Format("Mouse hover(x= %d,y=%d)",LOWORD(lParam),HIWORD(lParam)); SetWindowText(strmsg); TRACKMOUSEEVENT tme; tme.cbSize = sizeof(tme); tme.dwFlags = TME_HOVER | TME_LEAVE; tme.hwndTrack = m_hWnd; //在CFrameWnd中已经定义的字段 tme.dwHoverTime = HOVER_DEFAULT; ::TrackMouseEvent(&tme); return 0;}
HELLOMFC.h文件
class CMyApp : public CWinApp{ virtual BOOL InitInstance();}; class CMyFrame : public CFrameWnd{public: CMyFrame(); //类的构造函数,析构函数通常不写出来protected: BOOL m_bMouseOver;protected: //afx_msg不是函数的类型只是说明函数是处理消息的函数 afx_msg void OnPaint(); // afx_msg UINT OnNcHitest(CPoint point); //声明一个函数原型 afx_msg void OnMouseMove(UINT nflags,CPoint point); afx_msg LRESULT OnMouseHover(WPARAM wParam,LPARAM lParam); afx_msg LRESULT OnMouseLeave(WPARAM wParam,LPARAM lParam); DECLARE_MESSAGE_MAP()};
阅读全文
0 0
- MFC练习
- MFC:练习使用CListCtrl类
- MFC:练习使用CToolBar类
- MFC练习小结:单文本文档
- MFC练习3:使用对话框与控件
- MFC练习4:使用模态对话框
- MFC练习5:使用非模态对话框
- MFC使用CDC的文字处理练习代码
- 我的MFC练习(1)
- 新手MFC学习之Socket练习
- MFC练习笔记之创建向导页
- VC----MFC对话框练习-随机数生成工具
- 【MFC小练习】弹窗节奏播放器(程序 + 源码)
- MFC练习2:利用文档类处理数据
- 练习8: 在windows MFC窗口中用gdi画图
- 练习10: 在windows MFC窗口中用CImage显示图片
- 通过小练习掌握MFC知识点之起步篇-MFC与数据库的交互
- 练习
- MyEclipse Spring开发教程:用Spring创建iPhone App(1/2)
- CodeIgniter框架源码学习之框架初始化文件--CodeIgniter.php
- Linux_简介
- Java HashMap的工作原理
- iOS开发——Swift快速上手(区别篇)
- MFC练习
- 性能测试学习
- HTML5中Access-Control-Allow-Origin解决跨域问题
- 【linux】crontab运行python脚本遇到的问题
- IDEA编写javaweb(1)
- Particle Playground介绍
- 图片放大功能的具体实现
- spring 的jdbc Template操作
- 【TCON板专用芯片】LVDS转miniLVDS NCS8807简介