MFC自定义消息 笔者的尝试版本
来源:互联网 发布:淘宝分销需要授权吗 编辑:程序博客网 时间:2024/06/07 18:41
自定义消息处理:
在视类头文件中定义用户消息:
#if _MSC_VER > 1000
#pragma once
const int WM_USERMSG=WM_USER+100; //定义用户消息
#endif // _MSC_VER > 1000
在视类头文件中声名用户消息:
protected:
//{{AFX_MSG(CXiaoXiView)
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnDestroy();
afx_msg void OnTimer(UINT nIDEvent);
afx_msg LRESULT OnMyFunction(WPARAM wParam,LPARAM lParam);
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); //声名消息响应函数
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
在视类源文件中添加消息映射声明:
BEGIN_MESSAGE_MAP(CXiaoXiView, CView)
//{{AFX_MSG_MAP(CXiaoXiView)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
ON_WM_CHAR()
ON_WM_DESTROY()
ON_WM_TIMER()
ON_MESSAGE(WM_USERMSG,OnMyFunction) //添加消息映射声明
ON_WM_KEYDOWN()
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()
定义用户消息响应函数:
在源文件中直接输入以下代码:
LRESULT CXiaoXiView::OnMyFunction(WPARAM wParam,LPARAM lParam)
{
AfxMessageBox("恭喜你,消息发送成功!");
//如果前者参数有问题,改成MessageBox("恭喜你,消息发送成功!"); 另外,项目->属性->常规->字符集->多字节字符集解决乱码或者其他之类问题
return NULL;
MessageBox((LPCTSTR)"恭喜你,消息发送成功!");
if(nChar==VK_DOWN)
{
::PostMessage(hwnd,WM_USERMSG,0,0);
return;
}
void CDefMsaDlg::OnBnClickedButton1()
{
HWND hwnd=GetSafeHwnd();
// TODO: 在此添加控件通知处理程序代码
::PostMessage(hwnd,WM_USERMSG,0,0);
return;
}
在视类头文件中定义用户消息:
#if _MSC_VER > 1000
#pragma once
const int WM_USERMSG=WM_USER+100; //定义用户消息
#endif // _MSC_VER > 1000
在视类头文件中声名用户消息:
protected:
//{{AFX_MSG(CXiaoXiView)
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnDestroy();
afx_msg void OnTimer(UINT nIDEvent);
afx_msg LRESULT OnMyFunction(WPARAM wParam,LPARAM lParam);
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); //声名消息响应函数
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
在视类源文件中添加消息映射声明:
BEGIN_MESSAGE_MAP(CXiaoXiView, CView)
//{{AFX_MSG_MAP(CXiaoXiView)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
ON_WM_CHAR()
ON_WM_DESTROY()
ON_WM_TIMER()
ON_MESSAGE(WM_USERMSG,OnMyFunction) //添加消息映射声明
ON_WM_KEYDOWN()
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()
定义用户消息响应函数:
在源文件中直接输入以下代码:
LRESULT CXiaoXiView::OnMyFunction(WPARAM wParam,LPARAM lParam)
{
AfxMessageBox("恭喜你,消息发送成功!");
//如果前者参数有问题,改成MessageBox("恭喜你,消息发送成功!"); 另外,项目->属性->常规->字符集->多字节字符集解决乱码或者其他之类问题
return NULL;
}
编写程序代码处理消息,添加WM_KEYDOWN消息处理函数,写上程序
在
void CDefMsaDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
MessageBox((LPCTSTR)"恭喜你,消息发送成功!");
if(nChar==VK_DOWN)
{
::PostMessage(hwnd,WM_USERMSG,0,0);
return;
}
}
或用工具箱,添加一个按钮,右击添加事件响应程序。然后在响应程序里面添加
void CDefMsaDlg::OnBnClickedButton1()
{
HWND hwnd=GetSafeHwnd();
// TODO: 在此添加控件通知处理程序代码
::PostMessage(hwnd,WM_USERMSG,0,0);
return;
}
- MFC自定义消息 笔者的尝试版本
- MFC的消息玄机--关于自定义消息
- 初次尝试使用自定义消息
- 初次尝试使用自定义消息
- MFC 自定义消息的一般过程
- MFC自定义消息的简单实现
- 在MFC中使用自定义的消息
- MFC自定义消息的实现方法
- MFC 自定义消息的一般过程
- MFC用户自定义消息的使用
- c++MFC自定义消息的方法
- MFC中自定义消息的步骤
- MFC中用户自定义消息的实现
- MFC中自定义消息的实现
- MFC自定义消息的实现方法
- MFC 消息(缺自定义消息)
- MFC中自定义消息
- MFC自定义消息
- android异步任务详解 AsynTask
- 4.3 实验练习
- java泛型详解
- 异常备忘:java.lang.UnsupportedClassVersionError: Bad version number
- Git 常用命令
- MFC自定义消息 笔者的尝试版本
- 35个Jquery应用实例
- C++类的继承
- PHP 第三方调用 UC_Center用户登录认证
- Cannot find the tag library descriptor for http://jakarta.apache.org/struts/tags-tiles这个错误是?
- eclipse *.vm 文件,语法高亮
- Android JNI知识简介
- linux内核源码源码分析之zImage的出生实录
- virtualbox 虚拟机静态IP设置(用于Host Only和NAT共存的方式) .