MFC-2消息处理

 

#include <afxwin.h>
#include "resource.h"
 
class MyFrame:public CFrameWnd
{
private:
    CMenu *FMenu;
public:
    MyFrame()
    {
        Create(NULL,"Hello MFC");//建立窗口
        FMenu = new CMenu;//产生菜单
        FMenu->LoadMenu(IDR_MENU1);//加载菜单
        SetMenu(FMenu);//设置窗口使用的菜单
    }
    ~MyFrame()//析构函数
    {
        delete FMenu;
    }
    afx_msg void OnExit()
    {      
        MessageBox("TEST");
        MessageBox("Exit1");
        DestroyWindow();//关闭窗口
    }
    afx_msg void OnLButtonDown(UINT nFlags,CPoint point)
    {
        SetCapture();//取得鼠标消息接收权
    }
    afx_msg void OnMouseMove(UINT nFlags,CPoint point)
    {
        if(this == GetCapture())//鼠标光标在窗口上
        {
            CClientDC aDC(this);//建立画布
            aDC.SetPixel(point,RGB(255,0,0));//SetPixel画红点
        }
    }
    afx_msg void OnLButtonUp(UINT nFlags,CPoint point)
    {
        ReleaseCapture();//释放鼠标消息接收权
    }
    DECLARE_MESSAGE_MAP()//声明消息映射
};
 
BEGIN_MESSAGE_MAP(MyFrame,CFrameWnd)//建立MyFrame类的消息映射
    ON_COMMAND(ID_EXIT1,OnExit)
        ON_WM_LBUTTONDOWN()
        ON_WM_MOUSEMOVE()
        ON_WM_LBUTTONUP()
END_MESSAGE_MAP()
 
class MyApp:public CWinApp
{
public:
    BOOL InitInstance()
    {
        CFrameWnd *Frame = new MyFrame;//产生窗口对象
        m_pMainWnd = Frame;//将窗口对象设置给应用程序
        Frame->ShowWindow(SW_SHOW);//显示窗口
        return true;
    }
} a_app;

 

posted @   liulun  阅读(420)  评论(5编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示