猎豹MFC1 第一个窗口CWinApp CFrameWnd InitInstance 消息映射CPaint CRect Create

MFC使用C++语言把Windows SDK API函数包装成了几百个类

两个重要的MFC类:CWinApp和CFrameWnd

1.MFC项目  空项目  属性  静态库或共享MFC  Unicode 字符集

包含MFC头文件 afxwin.h.。 MyApp 继承CWinApp。重写InitInstance()函数。

头文件如下:

cpp文件只 创建对象即可:

或者全部写在一个文件中:

或者 方法三:

//===========================消息映射=================================

CPaintDC类和CRect类

DECLEAR_MESSAGE_MAP()为消息映射声明。

CMainWindow::函数中this->Creat()函数还可以再增加参数,WS_OVERLAPPEDWINDOW|WS_VSCROLL, CRect(100,100,380,300)//滚动条,窗口大小

两个消息映射的头文件:

BEGIN_MESSAGE_MAP()

ON_WM_PAINT();//该消息对应头文件中afx_msg void Onpaint()消息处理函数;

ON_WM_LBUTTONDOWN();//鼠标作假按下  该消息对应afx_msg void OnLButtonDown(UINT nFlags,CPoint point);  并需要早cpp文件中实现该函数

END_MESSAGE_MAP()

以上三四行为消息映射

两个消息映射对应两个消息处理函数:

来自为知笔记(Wiz)

时间: 2024-07-30 14:21:57

猎豹MFC1 第一个窗口CWinApp CFrameWnd InitInstance 消息映射CPaint CRect Create的相关文章

delphi程序向另一个可执行程序发消息(使用GetForegroundWindow; 找出当前操作系统中活动的第一个窗口)

function FindWindowThroughWindowText(WindowText: string): THandle;var  hCurrentWindow: THandle;  cnt: Integer;  WindowTitle: array [0 .. 254] of Char;begin  Result := INVALID_HANDLE_VALUE; // 返回值预设为无效的句柄  hCurrentWindow := GetForegroundWindow; // 找出当

C语言实现Win32第一个窗口

Windows顾名思义就是窗口,将窗口程序加入到操作系统中具有里程碑式的意义.掌握窗口程序的实现是学习Win32程序实现的重要环节. 一个Win32窗口程序的实现通常要经历下面3个步骤: 1.注册窗口(窗口的风格.图标.光标.大小等) 2.创建.显示窗口 3.消息循环. 同时需要一个入口函数WinMain和一个消息响应函数. WinMain()函数是应用程序开始执行时的入口点,通常也是应用程序结束任务退出时的出口点.它与DOS程序的main()函数起同样的作用,不同的是,WinMain()函数必

【DirectX11-Tutorial】编写第一个窗口程序creating a window

本系列主要参考此博客的文章l,同时会加上一点个人实践过程. ========================================== 分割线 ========================================== 这篇文章主要分为三个部分,首先是看一下创建窗口完整的代码,然后了解程序运作的主要细节,最后如何修改这些代码. 接下来开始第一个窗口程序,上一个程序中使用WinMain()函数开始整个程序,这一次将结合另一个函数WinProc(),这个函数将处理程序每一个系统运

窗口绘制有关的消息整理 WM_PAINT, WM_NCPAINT, WM_ERASEBKGND

WM_PAINTWM_PAINT是Windows窗口系统中一条重要的消息,应用程序通过处理该消息实现在窗口上的绘制工作. WM_NCPAINT当窗口客户区以外的部分(如窗口标题栏.菜单栏等)需要需要重画时,系统向程序发出该消息.因标准窗口的客户区以外部分为窗口必需部分,因而该消息将默认被发送到DefWindowProc函数进行默认处理.程序可通过截获该消息来实现窗口其他部分的自定义绘制. WM_ERASEBKGND The WM_ERASEBKGND message is sent when t

没有躲过的坑--捕获窗口之外的鼠标消息(钩子还是??)

做一个发送表情的对话框,类似微信和QQ一样的,点击表情按钮,弹出表情框,鼠标点击表情框外时,这个表情框被kill. 说白了 就是在这个窗口上获得窗口外面的鼠标消息. Google百度了一番,很多人说道使用钩子,才能获得窗口外面的click事件,这也未免太小题大做了吧. 还好发现了一个简简单单的函数: SetCapture(*this); 函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获.一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内.同一时刻只能有一个窗口捕获鼠标

MFC窗口创建、销毁消息流程

MFC应用程序创建窗口的顺序 1.PreCreateWindow()该函数是一个重载函数,在窗口被创建前,可以在该重载函数中改变创建参数,(可以设置窗口风格等等) 2.PreSubclassWindow()这也是一个重载函数,允许首先子分类一个窗口 3.OnGetMinMaxInfo()该函数为消息响应函数,响应的是WM_GETMINMAXINFO消息,允许设置窗口的最大或者最小尺寸 4.OnNcCreate()该函数也是一个消息响应函数,响应WM_NCCREATE消息,发送消息以告诉窗口的客户

Akka第一个案例动手实战开发消息实体类

学习了Akka第一个案例动手实战开发消息实体类,应用mapdata对单词级数,应用reduce对计数进行汇总,通过akka进行相互的消息通信. 代码案例如下: package akka.dt.app.messages; import java.util.List public class MapData{ privatie List<WordCount> dataList; public List<WordCount> getDataList()  {return dataList

模态窗口其实就是在当前窗口调用系统的消息循环,响应用户的操作,将相关的消息发送到对应的窗口(转)

上周准备在公司内部转岗,面了3个部门windows客户端相关的工作,最终拿到3个Offer,主要涉及C++和Windows两大块内容,C++的题目基本都答上了,Windows一直都是我的弱项,在这里记录一下Windows相关的题目.有些答不上的问题就没列出来,还有些问题忘了,下面的答案有些大部分是我自己的理解,有些是直接从网上copy的,有问题大家可以讨论. 1:GetMessage和PeekMessage的区别? GetMessage:获取消息队列中的一个消息,存入MSG中,并从消息队列中移除

第一个窗口应用程序

用VS2013学习写第一个桌面应用程序 选择WPF应用程序 点击OK按钮,创建项目后,会看到一个新的分成两个窗口的选项卡,上面是预览窗口MainWindow 在左侧工具箱中,选中Button拖进窗口 双击button,为button添加点击事件 运行程序后,点击button,结果如上