资源简介
线程间通信方式3:消息传递方式的演示。采用计算演示线程的执行,并采用用户界面线程来实时显示执行的进度,线程间的通信方式采用了3种方式相结合,对多线程间的通信有比较好的学习和研究价值。

代码片段和文件信息
// Hyperlink.cpp : implementation file
//
// Hyperlink static control.
//
// Copyright (C) 1997 1998 Giancarlo Iovino (giancarlo@saria.com)
// All rights reserved. May not be sold for profit.
//
// This code is based on CHyperlink by Chris Maunder.
// “GotoURL“ function by Stuart Patterson appeared in the Aug 1997
// Windows Developer‘s Journal.
// “Default hand cursor“ from Paul DiLascia‘s Jan 1998 MSJ article.
#include “stdafx.h“
#include “Hyperlink.h“
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CHyperlink
CHyperlink::CHyperlink()
{
m_bHot = FALSE; // Control doesn‘t own the focus yet
m_strURL.Empty(); // Set URL to an empty string
m_clrHot = RGB(00255);
m_clrNor = RGB(00255);
m_clrBG = RGB(240240240);
}
CHyperlink::~CHyperlink()
{
}
IMPLEMENT_DYNAMIC(CHyperlink CStatic)
BEGIN_MESSAGE_MAP(CHyperlink CStatic)
//{{AFX_MSG_MAP(CHyperlink)
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONUP()
ON_WM_PAINT()
ON_MESSAGE(WM_MOUSEHOVER&OnMouseHover)
ON_MESSAGE(WM_MOUSELEAVE&onmouseleave)
ON_WM_SETCURSOR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
void CHyperlink::PreSubclassWindow()
{
// TODO: Add your specialized code here and/or call the base class
DWORD dwstyle = Getstyle();
::SetWindowLong(GetSafeHwnd() GWL_style dwstyle | SS_NOTIFY);
// SetFont(GetParent()->GetFont());
CStatic::PreSubclassWindow();
}
void CHyperlink::onmousemove(UINT nFlags CPoint point)
{
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(tme);
tme.hwndTrack = m_hWnd;
tme.dwFlags = TME_LEAVE | TME_HOVER;
tme.dwHoverTime = 1;
_TrackMouseEvent(&tme);
// CStatic::onmousemove(nFlags point);
}
//鼠标在上面
LRESULT CHyperlink::OnMouseHover(WPARAM wParamLPARAM lParam)
{
if (!m_bHot)
{
m_bHot = TRUE;
Invalidate();
}
return TRUE;
}
//鼠标离开
LRESULT CHyperlink::onmouseleave(WPARAM wParamLPARAM lParam)
{
m_bHot = FALSE;
Invalidate();
return TRUE;
}
void CHyperlink::OnLButtonUp(UINT nFlags CPoint point)
{
if (m_strURL.IsEmpty())
{
GetWindowText(m_strURL);
}
GotoURL(m_strURL SW_SHOW);
}
/////////////////////////////////////////////////////////////////////////////
// CHyperlink operations
void CHyperlink::SetURL(CString strURL)
{
m_strURL = strURL;
}
CString CHyperlink::GetURL() const
{
return m_strURL;
}
int CHyperlink::GotoURL(LPCTSTR url int showcmd)
{
HINSTANCE result = ShellExecute(NULL _T(“open“) url NULLNULL showcmd);
return (int)result;
}
void CHyperlink::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
CFont* pFont = GetFont();
CFont m_Font;
if (pFont != NULL)
{
LOG
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-01-18 10:55 MultThreadComm3\
文件 4202 2012-07-19 00:01 MultThreadComm3\Hyperli
文件 2258 2011-11-16 13:49 MultThreadComm3\Hyperli
文件 106308 2013-01-18 10:52 MultThreadComm3\MultThreadComm3.aps
文件 1770 2013-01-11 11:39 MultThreadComm3\MultThreadComm3.cpp
文件 499 2013-01-11 11:39 MultThreadComm3\MultThreadComm3.h
文件 6154 2013-01-18 10:52 MultThreadComm3\MultThreadComm3.rc
文件 6052 2013-01-18 10:52 MultThreadComm3\MultThreadComm3.vcproj
文件 1409 2013-01-18 10:55 MultThreadComm3\MultThreadComm3.vcproj.new-PC.new.user
文件 5009 2013-01-18 10:53 MultThreadComm3\MultThreadComm3Dlg.cpp
文件 1025 2013-01-18 10:52 MultThreadComm3\MultThreadComm3Dlg.h
文件 1441 2013-01-18 10:41 MultThreadComm3\ProgressDlg.cpp
文件 630 2013-01-18 10:40 MultThreadComm3\ProgressDlg.h
文件 1604 2013-01-18 10:55 MultThreadComm3\ProgressThread.cpp
文件 712 2013-01-18 10:39 MultThreadComm3\ProgressThread.h
文件 2881 2013-01-11 11:39 MultThreadComm3\ReadMe.txt
目录 0 2013-01-11 11:39 MultThreadComm3\res\
文件 67777 2007-11-28 16:21 MultThreadComm3\res\MultThreadComm3.ico
文件 371 2013-01-11 11:39 MultThreadComm3\res\MultThreadComm3.rc2
文件 1007 2013-01-18 10:52 MultThreadComm3\resource.h
文件 148 2013-01-11 11:39 MultThreadComm3\stdafx.cpp
文件 1980 2013-01-17 15:55 MultThreadComm3\stdafx.h
文件 1030 2013-01-11 11:39 MultThreadComm3\targetver.h
相关资源
- 实验三 消息中间件应用开发:Active
- 易语言OTG串口通信
- STM32 2.4G通信例程
- Visio图标-最新最全的网络通信图标库
- 基于蓝牙4.0的设备通信方案设计与实
- WPF USB 网络 串口 通信软件
- 使用选择性重传协议实现UDP可靠通信
- DELPHI与西门子200PLC的串口通信实例
- Labview与CH372CH375的通信测试
- 通信软件的具体实例──基于Socket的
- 向SysListView32里的某一行发送双击消息
- 编写简单的RMI程序 多线程web 服务器
- 防火墙编程-Visual C 网络通信开发
- 通信原理各种调制与解调的C程序
- 课程设计蔬菜大棚自动控制系统,包
- MCGS与单片机通信
- 清华通信重要国际学术会议目录
- 多线程生产者消费者模式
- 通信类大公司华为中兴公司面试题目
- 8251 全双工异步通信
- 8051F040SMBUS多机通信
- USB 驱动 让电脑与arm进行通信
- 数据结构-最小通信网问题
- 51多机通信(内附Proteus及.hex文件)
- 光通信基本教程--详细描述光纤通
- USB助手(调试USB通信协议的工具) 源
- 进程的管道通信编制一段程序,实现
- 《Visual Basic 串口通信与测控应用技术
- 多线程实例:桌面智能弹球小游戏
- 采用WINSOCK2 编写的TCP/UDP通信程序
评论
共有 条评论