65.9K
CodeProject 正在变化。 阅读更多。
Home

CMapPin - Map Pin 实现

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.09/5 (8投票s)

2000 年 3 月 4 日

viewsIcon

118338

downloadIcon

1964

免费的 MFC 类,用于实现地图图钉。

  • 下载源文件 - 286 KB
  • 引言

    欢迎使用 CMapPin,一款免费的 MFC 类,用于在 GIS 应用中提供有用的地图图钉。如果您安装了 Microsoft AutoRoute Express(我想在美国它被称为 AutoMap),您可能已经见过我所说的东西了。

    以下是地图图钉覆盖在位图地图上的一个小示例。

    Sample Image


    特点
    用法
    历史
    API 参考
    计划增强功能
    联系作者


    特点

    • 标准的 CWnd 派生类,可以像其他任何派生自 CWnd 的 MFC 控件类(例如 CStatic)一样使用。
    • 内置了对工具提示、拖放和上下文菜单的支持。
    • 为了进一步自定义,您可以派生一个类。
    • 该类完全兼容 Unicode,并在工作区文件中包含 Unicode 构建选项。


    用法

    • 要在您的代码中使用该类,只需将 mappin.cpp 包含在您的项目中,并在任何需要调用该类的方法的模块中 #include mappin.h
    • 使用 SetIcon() 为地图图钉附加一个图标,然后调用 Create() 来实际创建地图图钉。就是这样。您现在应该会在窗口上看到地图图钉了。
    • 您还应该查看演示程序,以了解使用地图图钉的具体细节。


    历史

    V1.0 (1998 年 5 月 13 日)
    • 首次公开发布。

    V1.01 (1998 年 9 月 12 日)

    • 修正了 SetIcon() 中一个小小的重绘小故障。


    API 参考

    API 由 CMapPin 类的公共成员函数组成。

    CMapPin
    ~CMapPin
    Create
    SetIcon
    GetIcon
    SetPopupMenu
    SetAllowDrag
    GetAllowDrag


    CMapPin::CMapPin

    CMapPin();

    备注
    标准的 C++ 构造函数。只是将内部变量初始化为默认值。


    CMapPin::~CMapPin

    ~CMapPin();

    备注
    标准的 C++ 析构函数。内部会释放此实例使用的任何资源。


    CMapPin::Create

    BOOL Create(LPCTSTR lpszTooltipText, DWORD dwStyle, const CPoint& p, CWnd* pParent, UINT nID);

    返回值
    成功则为非零,否则为 0。

    参数

    • lpszTooltipText -- 指定控件的工具提示文本。如果为 NULL,则不显示文本。
    • dwStyle -- 指定控件的窗口样式。通常这只是 WS_CHILD 和 WS_VISIBLE。
    • p -- 指定控件的位置。大小将从附加的图标中获取。
    • pParentWnd -- 指定控件的父窗口,通常是您的 CView 派生类。它不能为 NULL。
    • nID -- 指定控件的控件 ID。

    备注
    分三个步骤构造一个 CMapPin 对象。首先调用构造函数,然后调用 SetIcon(),最后调用 Create(),它会创建 Windows 控件并将其附加到 CMapPin 对象。

    将以下窗口样式应用于地图图钉控件:

    • WS_CHILD: 始终
    • WS_VISIBLE: 通常
    • WS_DISABLED: 很少


    CMapPin::SetIcon

    BOOL SetIcon(HINSTANCE hModule, LPCTSTR lpszResourceName, BOOL bSmallIcon);
    BOOL SetIcon(HINSTANCE hModule, UINT nIDResource, BOOL bSmallIcon);

    返回值
    成功则为非零,否则为 0。

    参数

    • hModule -- 包含要加载的图标的可执行文件的模块实例的句柄。
    • lpszResourceName -- 指向一个以 null 结尾的字符串,该字符串包含要加载的图标资源的名称。
    • nIDResource -- 要加载的图标资源的资源标识符。
    • bSmallIcon -- 指定加载的是小图标(16 * 16),FALSE 表示加载标准 32 * 32 图标。

    备注
    修改要在地图图钉上显示的图标。


    CMapPin::GetIcon

    HICON GetIcon() const;

    返回值
    返回此地图图钉实例当前使用的图标的句柄。


    CMapPin::SetPopupMenu

    void SetPopupMenu(LPCTSTR pszResourceName);
    void SetPopupMenu(UINT nIDResource);

    参数

    • pszResourceName -- 指向一个以 null 结尾的字符串,该字符串包含要使用的图标资源的名称。
    • nIDResource -- 要使用的图标资源的资源标识符。

    备注
    设置将在此地图图钉实例的上下文菜单中使用哪个菜单资源。


    CMapPin::SetAllowDrag

    void SetAllowDrag(BOOL bAllowDrag);

    参数

    • bAllowDrag -- 如果您希望允许地图图钉被拖动,则为 TRUE,FALSE 将禁用拖动。

    备注
    更改地图图钉是否可以被拖动。


    CMapPin::GetAllowDrag

    BOOL GetAllowDrag() const;

    返回值
    如果实例允许拖动,则为 TRUE,否则为 FALSE。



    计划增强功能

    • 如果您有任何其他改进建议,请告诉我,以便我将其纳入下一个版本。


    联系作者

    PJ Naughter
    电子邮件:pjn@indigo.ie
    网站:http://www.naughter.com
    1998 年 9 月 12 日


    © . All rights reserved.