设为首页 加入收藏

TOP

C语言中PostMessage And SendMessage(二)
2014-11-23 22:37:13 来源: 作者: 【 】 浏览:5
Tags:言中 PostMessage And SendMessage
essage函数之前,应检查发送的消息是否被Windows CE所支持。

.使用环境:

Windows NT:3.1及以上版本;

Windows:95及以上版本;

Windows CE:1.0及以上版本;

头文件:winuser.h;

输入库:user32.lib;

Unicode:在WindowsNT(Windows2000)环境下以Unicode和ANSI方式实现。

.示例代码:

case WM_KEYDOWN:

switch (wParam)

{

case VK_HOME:

SendMessage (hwnd, WM_VSCROLL, SB_TOP, 0) ;

break ;

case VK_END:

SendMessage (hwnd, WM_VSCROLL, SB_BOTTOM, 0) ;

break ;

case VK_PRIOR:

SendMessage (hwnd, WM_VSCROLL, SB_PAGEUP, 0) ;

break ;

...

}

return 0 ;

...

.常见问题

1)使用SendMessage来实现剪切、复制和粘贴

SendMessage(hwnd, WM_COPY, 0, 0);

SendMessage(hwnd, WM_CUT, 0, 0);

SendMessage(hwnd, WM_PASTE, 0, 0);

2)SendMessage与PostMessage的区别

PostMessage将消息放入消息队列后马上返回,而SendMessage直到窗口过程处理完消息后才返回

3)SendMessage发送WM_COPYDATA消息在进程间传送数据

WM_COPYDATA消息主要目的是允许在进程间传递少量只读数据。SDK文档推荐用户使用SendMessage()函数,接收方在数据复制完成前不返回,这样发送方就不可能删除和修改数据。

例如:

std:string strData = "VC知识库VCKBASE.COM";

COPYDATASTRUCT cds;

cds.dwData = 0;

cds.cbData = strData.Length();

cds.lpData = strData.c_str();

::SendMessage(hwnd, WM_COPYDATA, NULL, (LPARAM)&cds);

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇自己动手写C语言编译器(5) 下一篇用数组实现线性表各种操作(C语言)..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: