云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > C语言程序设计(郑莉)课后习题答案

C语言程序设计(郑莉)课后习题答案

  • 62 次阅读
  • 3 次下载
  • 2025/6/18 12:17:47

#define IDR_MAINFRAME 128 // 主框架的资源代号 class CMyApp : public CWinApp { public:

virtual BOOL InitInstance(); DECLARE_MESSAGE_MAP() };

BEGIN_MESSAGE_MAP(CMyApp, CWinApp)

ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup) END_MESSAGE_MAP()

// 初始化程序实例:建立并登记文档模板 BOOL CMyApp::InitInstance() {

CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME,

RUNTIME_CLASS(CMyDoc), RUNTIME_CLASS(CMainFrame), RUNTIME_CLASS(CMyView)); AddDocTemplate(pDocTemplate); CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo);

if (!ProcessShellCommand(cmdInfo)) return FALSE;

m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED); return TRUE; }

// 全局应用程序对象 CMyApp theApp;

7-23 为例9-3的吹泡泡程序添加一标识符为IDI_MAINICON的图标(该图标应已按11.8:“向项目中添加资源”中的方法建立并加入项目)。

说 明:建立项目的方法见9.8:“用Visual C++集成开发环境开发Win32应用程序”。 程 序:

在例9-3程序前面添加一文件包含命令: #include ”resource.h”

并将CMyApp::InitInstance()函数修改为: BOOL CMyApp::InitInstance() {

HICON hIcon;

hIcon = LoadIcon(IDI_MAINICON); // 载入图标 CMyWnd *pFrame = new CMyWnd; pFrame->Create(0,_T(\吹泡泡程序\

pFrame->SetIcon(hIcon, TRUE); // 设置大图标 pFrame->SetIcon(hIcon, FALSE); // 设置小图标 pFrame->ShowWindow(m_nCmdShow); this->m_pMainWnd = pFrame; return TRUE; }

7-24 显示一张位图文件(.BMP)。

说 明:首先建立Win32 Application空白项目和源代码文件(不要忘记设置项目使之可以使用MFC类库),然后按11.8:“向项目中添加资源”的方法为项目建立资源文件,并将待显示的位图文件作为资源装入项目。 程 序:

// Example 11-2:显示BMP图片 #include #include \// 框架窗口类

class CMyWnd: public CFrameWnd {

CBitmap m_Bitmap; int m_nHeight; int m_nWidth; public: CMyWnd(); protected:

afx_msg void OnPaint(); DECLARE_MESSAGE_MAP() };

// 消息映射

BEGIN_MESSAGE_MAP(CMyWnd, CFrameWnd) ON_WM_PAINT() END_MESSAGE_MAP() // 框架窗口类的成员函数 CMyWnd::CMyWnd() {

m_Bitmap.LoadBitmap(IDB_BITMAP1); BITMAP BM;

m_Bitmap.GetBitmap(&BM); m_nWidth = BM.bmWidth; m_nHeight = BM.bmHeight; }

49

// 响应绘制窗口客户区消息 void CMyWnd::OnPaint() {

CPaintDC dc(this); CDC MemDC;

MemDC.CreateCompatibleDC(NULL); MemDC.SelectObject(&m_Bitmap);

dc.BitBlt(0,0,m_nWidth,m_nHeight,&MemDC,0,0,SRCCOPY); }

// 应用程序类

class CMinMFCApp: public CWinApp { public:

BOOL InitInstance(); };

// 应用程序类的成员函数 // 初始化应用程序实例

BOOL CMinMFCApp::InitInstance() {

CMyWnd *pFrame = new CMyWnd;

pFrame->Create(0,_T(\ pFrame->ShowWindow(m_nCmdShow); this->m_pMainWnd = pFrame; return TRUE; }

// 全局应用程序对象 CMinMFCApp ThisApp;

7-25 修改11-2,使之可以不同比例放大或缩小图象。 说 明:使用StretchBlt()函数代替BitBlt()函数就可实现图象的缩放显示。在项目中加入一个弹出式菜单(将标识符改为IDR_MAINMENU),内含3个菜单选项:缩小1倍显示,按原尺寸显示和放大1倍显示,其标识符分别改为ID_SHRINK,ID_BESTFIT和ID_ZOOMOUT。 程 序:

// Example 11-3:以不同尺寸显示BMP图片 #include #include \// 框架窗口类

class CMyWnd: public CFrameWnd {

CBitmap m_Bitmap; float m_fTimes; int m_nHeight;

int m_nWidth; public: CMyWnd();

BOOL PreCreateWindow(CREATESTRUCT &cs); protected:

afx_msg void OnPaint(); afx_msg void OnShrink(); afx_msg void OnBestFit(); afx_msg void OnZoomOut(); DECLARE_MESSAGE_MAP() };

// 消息映射

BEGIN_MESSAGE_MAP(CMyWnd, CFrameWnd) ON_WM_PAINT()

ON_COMMAND(ID_SHRINK, OnShrink) ON_COMMAND(ID_BESTFIT, OnBestFit) ON_COMMAND(ID_ZOOMOUT, OnZoomOut) END_MESSAGE_MAP() // 主窗口类的成员函数 CMyWnd::CMyWnd() {

BITMAP BM;

m_Bitmap.LoadBitmap(IDB_BITMAP1); m_Bitmap.GetBitmap(&BM); m_nWidth = BM.bmWidth; m_nHeight = BM.bmHeight; m_fTimes = 1.0; }

// 装入菜单

BOOL CMyWnd::PreCreateWindow(CREATESTRUCT &cs) { cs.hMenu

=

LoadMenu(NULL,

MAKEINTRESOURCE(IDR_MAINMENU)); return CFrameWnd::PreCreateWindow(cs); }

// 缩小图象

void CMyWnd::OnShrink() {

m_fTimes = 0.5; Invalidate(); }

// 放大图象

void CMyWnd::OnZoomOut() {

m_fTimes = 2.0; Invalidate(); }

// 原样显示

50

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

#define IDR_MAINFRAME 128 // 主框架的资源代号 class CMyApp : public CWinApp { public: virtual BOOL InitInstance(); DECLARE_MESSAGE_MAP() }; BEGIN_MESSAGE_MAP(CMyApp, CWinApp) ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup) END_MESSAGE_MAP() // 初始化程序实例:建立并登记文档模板 BOOL CMyApp::I

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com