VC自定义消息响应函数postmessage用法示例
本文实例讲述了VC自定义消息响应函数postmessage的用法。分享给大家供大家参考。具体实现步骤如下:
1. 在 resource.h文件添加如下代码 定一个自己的消息
#define WM_MY_MESSAGE WM_USER + 100 //---------------------by tyds
2.在...view.h的文件添加如下:
//{{AFX_MSG(CPostmessageView)
afx_msg void Ontydspostmessage();
afx_msg /*LRESULT*/ void OnMyMessage(/*WPARAM wParam, LPARAM lParam*/); //----- by tyds
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
3.在...view.cpp文件添加如下代码
BEGIN_MESSAGE_MAP(CPostmessageView, CView)
//{{AFX_MSG_MAP(CPostmessageView)
ON_COMMAND(ID_tyds_postmessage, Ontydspostmessage)
ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage) //添加消息映射---------------------by tyds
//}}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()
void CPostmessageView::Ontydspostmessage()
{
MessageBox("begin post message!");
//PostMessage(WM_MY_MESSAGE); //这里 PostMessage SendMessage 两则区别是
SendMessage(WM_MY_MESSAGE); //PostMessage 是发出去就返回 而SendMessage是发出去等到被执行了再返回
}
消息相应函数
/*LPESULT*/void CPostmessageView::OnMyMessage(/*WPARAM wParam, LPARAM lParam*/) //注意这里的参数可要可不要 根据自己来定 返回值也一样
{
MessageBox("post msg finished!");
// return 0;
}
希望本文所述对大家的VC程序设计有所帮助。
相关推荐
-
ajax跨域请求js拒绝访问的解决方法
求解决办法 复制代码 代码如下: ajax{ url :"http://xxxx/app", type:"POST"; dataType:"json", } 不能用jsonp 因为jsonp发送数据 type 为 get type 必须为post url 不能加参 (例:http://xxxx/app?callback=aaa) 返回数据位json格式.求方法
-
JQuery的Ajax跨域请求原理概述及实例
今天在项目中需要做远程数据加载并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发 JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式.分别是JQuery的 jquery.ajax jsonp格式和jquery.getScript方式. 什么是jsonp格式呢?API原文:如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型.
-
jquery跨域请求示例分享(jquery发送ajax请求)
jQuery中常用getJSON来调用并获取远程的JSON字符串,将其转换为JSON对象,如果成功,则执行回调函数.原型如下: jQuery.getJSON( url, [data], [callback] ) 跨域加载JSON数据. url: 发送请求的地址data : (可选) 待发送key/value参数callback: (可选) 载入成功时的回调函数主要用于客户端获取服务器JSON数据.简单示例: 服务器脚本,返回JSON数据: 复制代码 代码如下: // $.getJSON.php$
-
在Ajax中使用Flash实现跨域数据读取的实现方法
Ajax的跨域操作一直是一个难题,现目前主要的解决方法主要有: 1.JSONP(需要在服务器端支持) 2.IFrame(仅能在子域间操作) 3.页面代理(这个有点万能) 4.Access-Control-Allow-Origin(新版浏览器支持,需要在服务器端设置Header) 今天,小子再提供一种使用Flash进行跨域操作的方法.众所周之,其实Flash的跨域操作也是有限制的,不过,Flash的跨域配置比简单,只需要在站点根目录下放置crossdomain.xml即可.至于crossdomai
-
用iframe设置代理解决ajax跨域请求问题
今天在项目中需要做远程数据加载并渲染页面,直到开发阶段才意识到ajax跨域请求的问题.于是想用代理的方式来解决这个跨域问题. 什么是跨域? 简单的来说,出于安全方面的考虑,页面中的JavaScript无法访问其他服务器上的数据,即"同源策略".而跨域就是通过某些手段来绕过同源策略限制,实现不同服务器之间通信的效果. 方案:在服务器端创建一个静态的代理页面,在客户端用iframe调用这个代理,然后通过iframe的document.getElementById("proxy&q
-
JavaScript使用HTML5的window.postMessage实现跨域通信例子
JavaScript由于同源策略的限制,跨域通信一直是棘手的问题.当然解决方案也有很多: 1.document.domain+iframe的设置,应用于主域相同而子域不同: 2.利用iframe和location.hash,数据直接暴露在了url中,数据容量和类型都有限 3.Flash LocalConnection, 对象可在一个 SWF 文件中或多个 SWF 文件间进行通信, 只要 在同一客户端就行,跨应用程序, 可以跨域. window.name 保存数据以及跨域 iframe 静态代理动
-
VC中SendMessage和PostMessage的区别
本文实例讲述了VC中SendMessage和PostMessage的区别.分享给大家供大家参考.具体分析如下: 1.首先是返回值意义的区别,我们先看一下 MSDN 里的声明: 复制代码 代码如下: LRESULT SendMessage ( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ); 复制代码 代码如下: BOOL PostMessage( HWND hWnd, UI
-
跨域请求之jQuery的ajax jsonp的使用解惑
直接执行了error方法提示错误--ajax jsonp之前并没有用过,对其的理解为跟普通的ajax请求差不多,没有深入了解:出现了这种错误,几经调试(检查后台的代码和js部分的属性设置)还是不行,让我感觉很是意外和不解.于是,决定仔细研究下ajax jsonp的使用,并将最后测试成功的学习经验和大家分享下! 首先,贴出可以成功执行的代码: (页面部分) 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional
-
利用iframe实现ajax跨域通信的实现原理(图解)
在漫长的前端开发旅途上,无可避免的会接触到ajax,而且一般情况下都是用在同一域下的ajax请求:但是如果请求是发生在不同的域下,请求就无法执行,并且会抛出异常提示不允许跨域请求,目前我没有找到明确的资料说明这是为什么,我觉得应该是出于安全性的考虑吧.纵然如此,要实现跨域访问的话,方法还是有的,而且不只一种,在这里介绍其中一种解决方案:如何利用iframe完成ajax的跨域请求. 如下图所示:域a.com的页面request.html(即http://a.com/request.html)里面嵌
-
使用HTML5中postMessage知识点解决Ajax中POST跨域问题
由于同源策略的限制,Javascript存在跨域通信的问题,典型的跨域问题有iframe与父级的通信等.常规的几种解决方法: (1) document.domain+iframe: (2) 动态创建script: (3) iframe+location.hash: (4) flash. postMessage是HTML5为解决js跨域问题而引入的新的API,允许多个iframe/window跨域通信. HTML5中提供了在网页文档之间相互接收与发送信息的功能.使用这个功能,只要获取到网页所在窗口
-
JQuery Ajax 跨域访问的解决方案
具体情况有: 一.本域和子域的相互访问: http://www.aa.com/和book.aa.com 二.本域和其他域的相互访问: http://www.aa.com/和http://www.bb.com/ 用 iframe 三.本域和其他域的相互访问: http://www.aa.com/和http://www.bb.com/ 用 XMLHttpRequest访问代理 四.本域和其他域的相互访问: http://www.aa.com/和http://www.bb.com/ 用 JS创建动态脚
-
完美解决AJAX跨域问题
从AJAX诞生那天起,XMLHttprequest对象不能跨域请求的问题就一直存在.这似乎是一个很经典的问题了.是由于javascript的同源策略(这里不作深入探讨)所导致. 解决的办法,大概有如下几种: 1. 使用中间层过渡的方式(可以理解为"代理"): 中间过渡,很明显,就是在AJAX与不同域的服务器进行通讯的中间加一层过渡,这一层过渡可以是PHP.JSP.c++等任何具备网络通讯功能的语言,由中间层向不同域的服务器进行读取数据的操作.拿asp.net做一个例子,如果需要对不同域
-
IE9版本以下ajax 跨域问题可行解决方法
ajax跨域请求数据在谷歌火狐我本地IE11都是没问题的. 让测试就发现问题了,IE8下请求不到数据,然后我查看一下自己写的js看有没有不兼容问题,可是都没有啊,为什么就请求不到呢. 我把ajax的error打印出来提示no transport,网上找了资料在js中第一行加这个就可以了jQuery.support.cors = true; 好了这个问题没有了,可是又有另一个error没有权限.这个问题百度了好多都没有我想要的,最后看了一篇文章让我豁然开朗这是IE浏览器的安全性设置问题, 解决方法
-
jquery的ajax和getJson跨域获取json数据的实现方法
很多开发人员在使用jquery在前端和服务器端进行数据交互,所以很容易会认为在前端利用jquery就可以读取任何站点的数据了.近日在进行开 发时,因为要和第三方公司的一个项目进行数据的共享,因为考虑多不占用服务器的资源,遂决定直接在html进行数据的读取,不走服务器端进行中转了.然后 正好就遇到了浏览器端跨域访问的问题. 跨域的安全限制都是指浏览器端来说的,服务器端不存在跨域安全限制的问题. 目前浏览器端跨域访问常用的两种方法有两种: 1.通过jQuery的ajax进行跨域,这其实是采用的jso
随机推荐
- input type=file 选择图片并且实现预览效果的实例
- JS类中定义原型方法的两种实现的区别
- Vue中添加过渡效果的方法
- JS中的二叉树遍历详解
- ftp连接出现socket错误=#10054的解决方法
- Perl ASCII 字符判断
- Python使用pymysql小技巧
- JavaScript中错误正确处理方式小结你用对了吗
- Javascript封装DOMContentLoaded事件实例
- ASP.NET MVC阿里大于短信接口开发短信群发能
- 详解Android中解析XML的方法
- js使用html2canvas实现屏幕截取的示例代码
- yii实现model添加默认值的方法(2种方法)
- jquery过滤特殊字符',防sql注入的实现方法
- java实现的AES加密算法完整实例
- 根据一段代码浅谈Javascript闭包
- Jquery插件之多图片异步上传
- linux系统下hosts文件详解及配置
- 使用 atmadm 来显示 ATM 适配器上传入和传出呼叫的统计信息
- 使用UART与PC通信实现msp430g2553单片机超声波测距示例