资源简介

线程间通信方式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\Hyperlink.cpp
     文件        2258  2011-11-16 13:49  MultThreadComm3\Hyperlink.h
     文件      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

评论

共有 条评论