资源简介
线程间通信方式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
相关资源
- 通信网理论基础课后习题答案
- MAX485两单片机半双工通信含程序和电
- 通信电子电路调幅发射机的设计
- SDH 原理英文版
- 图片图片工具——TinyPng多线程压缩
- qt libusb U盘通信
- QUdpSocket 多线程编程 moveToThread
- qt udp多线程收发数据
- 超酷的Qt消息提示框,仿126邮箱登录提
- 清华大学现代通信原理课件 清华大学
- 串口通信的界面交互性的设计与实现
- htran.exe 多线程包转发工具
- Atmega128串口485通信
- 一对多 多字节的can总线通信
- SpringBoot WebSocket消息推送群发和指定到
- PIC单片机 IIC通信 proteus仿真文件图
- PIC单片机SPI通信 带proteus仿真
- nrf905无线双向通信
- CSharpModBusExample
- 无线通信系统仿真
- 串口通信解决数据乱码和数据丢失
- CC1101的51单片机收发程序
- 基于ti 的单片机msp430g2553的硬件spi控制
- 超级多线程百度baidu ping.rar
- socket通信 基于udp
- delphi多线程批量
- 华农网络编程socket通信
- 系统权限控制(用户/部门/角色)目前
- 通信系统中卷积码编解码器的VHDL实现
- 通信系统仿真
评论
共有 条评论