1
1
// UseResourceDllView.cpp : implementation of the CUseResourceDllView class
2
//
3
4
#include "stdafx.h"
5
#include "UseResourceDll.h"
6
7
#include "UseResourceDllDoc.h"
8
#include "UseResourceDllView.h"
9
10
#include "Dll_Resource.h"//资源dll(原名:resource.dll,属于工程resource_dll)
11
12
#ifdef _DEBUG
13
#define new DEBUG_NEW
14
#undef THIS_FILE
15
static char THIS_FILE[] = __FILE__;
16
#endif
17
18
/**////////////////////////////////////////////////////////////////////////////// 19
// CUseResourceDllView
20
21
IMPLEMENT_DYNCREATE(CUseResourceDllView, CView)
22
23
BEGIN_MESSAGE_MAP(CUseResourceDllView, CView)
24
//{{AFX_MSG_MAP(CUseResourceDllView)
25
ON_WM_LBUTTONDOWN()
26
//}}AFX_MSG_MAP
27
// Standard printing commands
28
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
29
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
30
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
31
END_MESSAGE_MAP()
32
33
/**////////////////////////////////////////////////////////////////////////////// 34
// CUseResourceDllView construction/destruction
35
36
CUseResourceDllView::CUseResourceDllView()
37
{
38
// TODO: add construction code here
39
40
}
41
42
CUseResourceDllView::~CUseResourceDllView()
43
{
44
}
45
46
BOOL CUseResourceDllView::PreCreateWindow(CREATESTRUCT& cs)
47
{
48
// TODO: Modify the Window class or styles here by modifying
49
// the CREATESTRUCT cs
50
51
return CView::PreCreateWindow(cs);
52
}
53
54
/**////////////////////////////////////////////////////////////////////////////// 55
// CUseResourceDllView drawing
56
57
void CUseResourceDllView::OnDraw(CDC* pDC)
58
{
59
CUseResourceDllDoc* pDoc = GetDocument();
60
ASSERT_VALID(pDoc);
61
pDC->TextOut (0,0,"请点击这里改变系统菜单");
62
// TODO: add draw code for native data here
63
}
64
65
/**////////////////////////////////////////////////////////////////////////////// 66
// CUseResourceDllView printing
67
68
BOOL CUseResourceDllView::OnPreparePrinting(CPrintInfo* pInfo)
69
{
70
// default preparation
71
return DoPreparePrinting(pInfo);
72
}
73
74
void CUseResourceDllView::OnBeginPrinting(CDC* /**//*pDC*/, CPrintInfo* /**//*pInfo*/)
75
{
76
// TODO: add extra initialization before printing
77
}
78
79
void CUseResourceDllView::OnEndPrinting(CDC* /**//*pDC*/, CPrintInfo* /**//*pInfo*/)
80
{
81
// TODO: add cleanup after printing
82
}
83
84
/**////////////////////////////////////////////////////////////////////////////// 85
// CUseResourceDllView diagnostics
86
87
#ifdef _DEBUG
88
void CUseResourceDllView::AssertValid() const
89
{
90
CView::AssertValid();
91
}
92
93
void CUseResourceDllView::Dump(CDumpContext& dc) const
94
{
95
CView::Dump(dc);
96
}
97
98
CUseResourceDllDoc* CUseResourceDllView::GetDocument() // non-debug version is inline
99
{
100
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CUseResourceDllDoc)));
101
return (CUseResourceDllDoc*)m_pDocument;
102
}
103
#endif //_DEBUG
104
105
/**////////////////////////////////////////////////////////////////////////////// 106
// CUseResourceDllView message handlers
107
108
void CUseResourceDllView::OnLButtonDown(UINT nFlags, CPoint point)
109
{
110
//下面的代码是显式调入资源dll,当然你也可以隐式调入
111
HINSTANCE m_app=::AfxGetInstanceHandle ();//获得句柄
112
HINSTANCE m_res_dll=::LoadLibrary ("resource_dll.dll");
113
114
AfxSetResourceHandle(m_res_dll);//把当前资源设置从resource_dll.dll中获取
115
//使用
116
CMenu m_menu;
117
m_menu.LoadMenu (IDR_MENU1);
118
AfxGetMainWnd()->SetMenu (&m_menu);
119
m_menu.Detach ();
120
121
AfxSetResourceHandle(m_app);//还原系统资源
122
FreeLibrary(m_res_dll);//释放库
123
//若要响应资源dll中的菜单,你得手工添加消息响应函数
124
CView::OnLButtonDown(nFlags, point);
125
}

posted on 2007-04-24 12:00
乔栋 阅读(590)
评论(0) 编辑 收藏 引用 所属分类:
C++的健身房