1.看了网上的一些资料,打印的时候 使用 PrintMap 函数的,他的第一次参数是 HDC 的,这个dc怎么获取的啊,书上也是一带而过的,打印设备上下文的,不知道这个dc是怎么获取的啊?
2. vc+mapx 的鹰眼是怎么做的啊,有工程文件吗,网上找到的一些函数很多变量都不知道是那里申明的...
------解决方案--------------------
看来你的VC水平不怎么样..
找个VC用得多点的人指导一下吧
遗憾的是 我VC也不咋的且多年不练了
------解决方案--------------------
[code=C/C++][/code]// NavigationBar.cpp: implementation of the CNavigationBar class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "global.h"
#include "GStar.h"
#include "MainFrm.h"
#include "NavigationBar.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
//
BEGIN_MESSAGE_MAP(CNavigationBar, CBCGSizingControlBar)
//{{AFX_MSG_MAP(CNavigationBar)
ON_WM_CREATE()
ON_WM_SIZE()
ON_WM_CONTEXTMENU()
ON_WM_WINDOWPOSCHANGED()
ON_WM_KEYDOWN()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BEGIN_EVENTSINK_MAP(CNavigationBar, CBCGSizingControlBar)
//{{AFX_EVENTSINK_MAP(CMy01Dlg)
ON_EVENT(CNavigationBar, IDC_NAVIGATION, 4 /* AfterTrackingLayerDraw */, OnAfterTrackingLayerDrawMap2, VTS_I4)
ON_EVENT(CNavigationBar, IDC_NAVIGATION, -605 /* MouseDown */, OnMouseDownMap2, VTS_I2 VTS_I2 VTS_I4 VTS_I4)
ON_EVENT(CNavigationBar, IDC_NAVIGATION, -607 /* MouseUp */, OnMouseUpMap2, VTS_I2 VTS_I2 VTS_I4 VTS_I4)
ON_EVENT(CNavigationBar, IDC_NAVIGATION, -606 /* MouseMove */, OnMouseMoveMap2, VTS_I2 VTS_I2 VTS_I4 VTS_I4)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CNavigationBar::CNavigationBar()
{
m_pViewMap=NULL;
}
CNavigationBar::~CNavigationBar()
{
}
int CNavigationBar::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CBCGSizingControlBar::OnCreate(lpCreateStruct) == -1)
return -1;
CRect rectDummy;
rectDummy.SetRectEmpty ();
// Create tabs window:
if (!m_wndTab.Create (CBCGTabWnd::STYLE_3D, rectDummy, this, 1))
{
TRACE0("Failed to create workspace tab window\n");
return -1; // fail to create
}
m_wndTab.SetImageList (IDB_WORKSPACE, 16, RGB (255, 0, 0));
if(!m_map.Create("Navigator",WS_VISIBLE|WS_CHILD|WS_BORDER|WS_THICKFRAME,CRect(0,0,100,100),this,IDC_NAVIGATION))//&m_wndTab
return -1;
m_wndTab.AddTab(&m_map, _T("导航"), 2);
return 0;
}
void CNavigationBar::OnSize(UINT nType, int cx, int cy)
{
CBCGSizingControlBar::OnSize(nType, cx, cy);
// Resize(m_map,cx,cy,1);
// Tab control should cover a whole client area:
m_wndTab.SetWindowPos (NULL, -1, -1, cx, cy,
SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER);
}
void CNavigationBar::OnContextMenu(CWnd* pWnd, CPoint point)
{
}
BOOL CNavigationBar::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN &&
pMsg->wParam == VK_ESCAPE)
{
CMainFrame* pMainFrame = (CMainFrame*) AfxGetMainWnd ();
ASSERT_VALID (pMainFrame);
if (pMainFrame->GetActivePopup () == NULL)
{
pMainFrame->SetFocus ();
return TRUE;
}
}
return CBCGSizingControlBar::PreTranslateMessage(pMsg);
}
void CNavigationBar::OnWindowPosChanged(WINDOWPOS FAR* lpwndpos)
{
CBCGSizingControlBar::OnWindowPosChanged(lpwndpos);