WEB开发网
开发学院软件开发VC 椭圆窗体的实现 阅读

椭圆窗体的实现

 2010-05-12 20:35:14 来源:WEB开发网   
核心提示:3.生成鼠标的全局钩子,截获鼠标事件,椭圆窗体的实现(4),返回的值在VC集成开发环境中,选择“文件”、“新建”,如怎样除去颜色渐变过程中的闪烁问题,请发mail到jianming_zhang@163.com,选中“工程”选项卡中的“W

3.生成鼠标的全局钩子,截获鼠标事件,返回****的值

在VC集成开发环境中,选择“文件”、“新建”,选中“工程”选项卡中的“Win32 Dynamic-link Library”选项。工程的名称为“finder”,点击“下一步”按钮。 在“win32 Dynamic-Link Library step 1 of 1”中,选择创建“A simple Dll project”,然后单击“完成”按钮。

3.1 创建finder.h文件。

选择“文件”、“新建”,在“文件”选项卡中选中“c\c++ header file”选项,文件名为finder。

#ifndef __FINDER_H__
#define __FINDER_H__
#ifdef FINDER_EXPORTS
#define FINDER_API __declspec(dllexport)
#else
#define FINDER_API __declspec(dllimport)
#endif
HHOOK FINDER_API start();
#endif __FINDER_H__

3.2 在finder.cpp中加入鼠标处理代码,详见finder.cpp文件。

编译程序,生成finder.dll动态连接软件。将finder.h和编译生成的finder.dll,finder.lib程序拷贝到EllipseWindow文件夹。

3.3 在EllipseWindow的EllipseWindowDlg.cpp中加入开始和终止鼠标钩子的代码(使用想到,可简化操作),代码如下。

void CEllipseWindowDlg::OnStart()
{
  // TODO: Add your command handler code here
  m_hMouse=start();
  pMenu->EnableMenuItem(ID_START,MF_BYCOMMAND|MF_GRAYED);
  pMenu->EnableMenuItem(ID_STOP,MF_BYCOMMAND|MF_ENABLED);
}
void CEllipseWindowDlg::OnStop()
{
  // TODO: Add your command handler code here
  CloseHandle(m_hMouse);
  pMenu->EnableMenuItem(ID_STOP,MF_BYCOMMAND|MF_GRAYED);
  pMenu->EnableMenuItem(ID_START,MF_BYCOMMAND|MF_ENABLED);
}

编译程序,完成应用程序。

备注:如果出现问题,请仔细阅读源代码或参照MSDN。不当之处或改进的地方敬请指点,如怎样除去颜色渐变过程中的闪烁问题,请发mail到jianming_zhang@163.com,谢谢。

本文配套源码

上一页  1 2 3 4 

Tags:椭圆 窗体 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接