Visual C++ Windows Programming

Slides:



Advertisements
Similar presentations
DOC 推廣活動 月餅星光大道. 中秋  農曆八月十五日,是中國傳統的中秋節。 古人將一年分成春夏秋冬四季,而一季又 分為孟、仲、季三月,八月是仲秋之月, 而十五又是這個月中間的一天,正處在秋 季的正中,所以把八月十五稱為「中秋」 或「仲秋」。  中秋夜,月亮最圓,月色最美,因此人們 把月圓看成是團圓的象徵,同時也稱八月.
Advertisements

软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
中 五 級中 五 級 戰後國共關係 與 中華人民共和國成立 中國歷史科 1 )認識國共政治協商的概況 2 )認識國共內戰的概略經過及結果 3 )中華人民共和國成立.
不吃早餐的影響: 體內的葡萄糖無法 足夠供應給大腦與 肌肉,會感覺疲勞, 注意力無法集中。。 營養的早餐:乳品 + 全榖類食品 + 蛋白質 + 水果 早餐你吃了嗎?
人文地理專題研究 王志明.
项目7 面向对象高级.
2014年爱婴医院复核方案解读 省卫生计生委妇幼处 邱灵.
人 工 智 慧 報 告 五子棋AI設計 報告者 : 潘輝銘.
题目回顾 泉水在地下蓄积,一旦有机会,它便骄傲地涌出地面,成为众人瞩目的喷泉,继而汇成溪流,奔向远方。但人们对地下的泉水鲜有关注,其实,正是因为有地下那些默默不语的泉水的不断聚集,才有地上那一股股清泉的不停喷涌。 请根据你对材料的理解和感悟,自选一个角度,写一篇不少于800字的文章,文体自定,标题自拟。要求:立意明确,不要套作,不得抄袭。
过程性保存文本格式的实现 计算概论小课题 王元康.
项目:贪吃蛇游戏设计 工作任务一:系统设计(system design) 工作任务二:豆类(Bean)设计
第一章 面向对象程序设计.
计算机高级程序设计 第五章.
农机化项目管理培训会 柳州市农机局 郑崇宁
设计模式可以帮助我们改善系统的设计,增强 系统的健壮性、可扩展性,为以后铺平道路。
中小学教育科研课题的选择 王典伟.
● 四 (2)班 家 长 网络交 流 会 ● 快乐成长 与您 共享 家庭 学校 社会.
学科科研工作与科研 奖励政策解读讲座 朱文斌 博士 教授 2015年9月8日.
類別與物件 Class & Object.
第7单元 面向过程编程—— 继承与多态.
首都师范大学.
AOP实践 演讲人:陈思荣.
資料大樓 --談指標與陣列 綠園.
第5章 图形和文本输出.
第十一章 面向对象设计 第十二章 面向对象实现
Visual C++ Windows Programming
第4讲 Windows编程基础 此为封面页,需列出课程编码、课程名称和课程开发室名称。
VC 程式設計 Base I 報告者:Jerry Chen TEL:
程式設計實作.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
程序设计期末复习 黎金宁
第12章 從C到C++語言 12-1 C++語言的基礎 12-2 C++語言的輸出與輸入 12-3 C++語言的動態記憶體配置
第5章 文本与字体 2018/12/3 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2018/12/3 Huang Weitong.
一天學會MFC 滕薇鈞
简要回顾 了解课程体系、课程目的和主要内容 掌握Windows编程涉及的一些主要概念 DOS程序和Windows程序的主要区别 窗口和程序
第1章 Windows应用程序框架的 创建与消息处理
MFC WinSock类的编程 为简化套接字网络编程,更方便地利用Windows的消息驱动机制,微软的基础类库(Microsoft Foundation Class Libary,简称MFC),提供了两个套接字类,在不同的层次上对Windows Socket API函数进行了封装,为编写Windows.
第四章 小技巧.
視窗程式設計 (Windows Programming)
第4章 MFC编程 4.1 MFC概述 4.2 MFC和Win CObject类 4.4 消息映射的实现
第 10 章 Windows用户界面 10.1 Windows消息与命令 10.2 单文档与多文档程序 10.3 对话框与常用组件
Visual C++ Windows Programming
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
Animation(動畫) 靜宜大學資工系 蔡奇偉 副教授
第十五讲 MFC与消息处理 MFC简介 Windows编程机制 MFC应用程序框架原理 创建应用程序框架 消息及其分类 消息映射机制
版权所有 复制必究 第 6 章 MFC原理与方法.
VISUAL C++ 编程中的图形 图形设备接口(Graphic device interface)
劉崇汎 崑山科技大學 電腦與通訊系 DLL的建立與引用 劉崇汎 崑山科技大學 電腦與通訊系
常宝宝 北京大学计算机科学与技术系 数据结构(三) 常宝宝 北京大学计算机科学与技术系
《郑伯克段于鄢》 黎兰老师制作.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
第十二讲 菜单、工具栏和状态栏 严宣辉 数学与计算机科学学院
《面向对象程序设计与Visual C++6.0教程》
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
MFC及其应用.
第四章 栈和队列 栈 ( Stack ) 队列 ( Queue ) 优先队列 (Priority Queue) 小结.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第5章 文本与字体 2019/4/25 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2019/4/25 Huang Weitong.
功能表的建立 製作.
Visual C++ Windows Programming
本节内容 对象拷贝 视频提供:昆山爱达人信息技术有限公司.
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
第10章媒体控制接口 10.1 MCI设备类型 10.2 MCI编程步骤 10.3使用MCIWnd窗口类.
#include <iostream.h>
進階UI元件:ListView元件以及複選 靜宜大學資管系 楊子青
Java程序设计 第17章 异常和断言.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
本节内容 在堆中创建对象 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
手工编写第一个 MFC程序 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
Presentation transcript:

Visual C++ Windows Programming 第三章 MFC簡介

大綱 MFC 的基本架構 MFC 的使用方式 資源的設計與使用 訊息處理 Document / View 的觀念

MFC 的基本架構 CObject 應用程式類別 容器類別 繪圖類別 視窗類別 資料庫類別 網際網路服務類別

MFC 的使用方式 標頭檔 應用程式物件與視窗框架物件 #include <afxwin.h> CWinApp CFrameWnd

MFC 的使用方式 (續) #include <afxwin.h> class CFirstApp : public CWinApp { public: BOOL InitInstance() { CFrameWnd *Frame = new CFrameWnd(); m_pMainWnd = Frame; Frame->Create(NULL, "Hello, MFC!!"); Frame->ShowWindow(SW_SHOW); return true; } } ; CFirstApp a_app;

資源的設計與使用 Resource Script Accelerator Bitmap Cursor Dialog Icon Menu String Table Toolbar Version

資源的設計與使用 (續) Menu Item 屬性 ID: 按下 menu item 傳回的 command 代號 Caption: menu item 的文字 ("&" : 快速鍵) Seperator: 分隔線 Checked: menu item 是否被選取 Pop-up: menu "folder" or menu item Grayed: 是否為 enabled Inactive: 是否正為游標選取中

資源的設計與使用 (續) #include <afxwin.h> #include "resource.h" class CFirstFrame : public CFrameWnd { private: CMenu *FMenu; public: CFirstFrame() { Create(NULL, "Menu Resource Demo"); FMenu = new CMenu; FMenu->LoadMenu(IDR_MENU1); SetMenu(FMenu); } } ; class CFirstApp : public CWinApp { BOOL InitInstance() { CFrameWnd *Frame = new CFirstFrame; m_pMainWnd = Frame; Frame->ShowWindow(SW_SHOW); return true; CFirstApp a_app;

訊息處理 DECLARE_MESSAGE_MAP() BEGIN_MESSAGE_MAP(class, base) END_MESSAGE_MAP()

訊息處理 (續) class CFirstFrame : public CFreamWnd { ...; DECLARE_MESSAGE_MAP() } ; ... BEGIN_MESSAGE_MAP(CFirstFrame, CFrameWnd) ON_COMMAND(ID_EXIT, OnExit) ON_WM_LBUTTONDOWN() ON_WM_MOUSEMOVE() ON_WM_LBUTTONUP() END_MESSAGE_MAP()

訊息處理 (續) #include <afxwin.h> #include "resource.h" class CFirstFrame : public CFrameWnd { private: CMenu *FMenu; public: CFirstFrame() { Create(NULL, "Message Processing Demo"); FMenu = new CMenu; FMenu->LoadMenu(IDR_MENU1); SetMenu(FMenu); } ~CFirstFrame() { delete FMenu; } afx_msg void OnExit() { MessageBox("It's time to stop.", "Stop Window", MB_ICONSTOP); DestroyWindow(); afx_msg void OnLButtonDown(UINT nFlags, CPoint point) { SetCapture(); } afx_msg void OnMouseMove(UINT nFlags, CPoint point) { if(this == GetCapture()) { CClientDC aDC(this); aDC.Ellipse(point.x - 3, point.y - 3, point.x + 3, point.y + 3);

訊息處理 (續) afx_msg void OnLButtonUp(UINT nFlags, CPoint point) { ReleaseCapture(); } DECLARE_MESSAGE_MAP() } ; BEGIN_MESSAGE_MAP(CFirstFrame, CFrameWnd) ON_COMMAND(ID_Exit, OnExit) ON_WM_LBUTTONDOWN() ON_WM_MOUSEMOVE() ON_WM_LBUTTONUP() END_MESSAGE_MAP() class CFirstApp : public CWinApp { public: BOOL InitInstance() { CFrameWnd *Frame = new CFirstFrame; m_pMainWnd = Frame; Frame->ShowWindow(SW_SHOW); return true; } CFirstApp a_app;

Document / View #include <afxwin.h> #include "resource.h" #include <afxtempl.h> class MyDocument : public CDocument { public: CArray <CPoint, CPoint &> pArray; MyDocument() { SetTitle("Document / View Demo"); } void AddPoint(CPoint p) { pArray.Add(p); } CPoint GetPoint(int i) { return pArray[i]; } int GetSize() { return pArray.GetSize(); } DECLARE_DYNCREATE(MyDocument) DECLARE_MESSAGE_MAP() } ; IMPLEMENT_DYNCREATE(MyDocument, CDocument) BEGIN_MESSAGE_MAP(MyDocument, CDocument) END_MESSAGE_MAP()

class MyView : public CView { void OnDraw(CDC *aDC) { MyDocument *doc = (MyDocument *) GetDocument(); int num = doc->GetSize(); int i; for(i = 0; i < num; i++) { CPoint point = doc->GetPoint(i); aDC->Ellipse(point.x - 3, point.y - 3, point.x + 3, point.y + 3); } afx_msg void OnLButtonDown(UINT, CPoint point) { SetCapture(); } afx_msg void OnMouseMove(UINT, CPoint point) { if (this == GetCapture()) { CClientDC aDC(this); aDC.Ellipse(point.x - 3, point.y - 3, point.x + 3, point.y + 3); doc->AddPoint(point); afx_msg void OnLButtonUp(UINT, CPoint point) { ReleaseCapture(); } DECLARE_DYNCREATE(MyView) DECLARE_MESSAGE_MAP() } ;

IMPLEMENT_DYNCREATE(MyView, CView) BEGIN_MESSAGE_MAP(MyView, CView) ON_WM_LBUTTONDOWN() ON_WM_MOUSEMOVE() ON_WM_LBUTTONUP() END_MESSAGE_MAP() class MyFrame : public CFrameWnd { public: afx_msg void OnExit() { MessageBox("It's time to stop.", "Stop Window", MB_ICONSTOP); DestroyWindow(); } DECLARE_DYNCREATE(MyFrame) DECLARE_MESSAGE_MAP() } ; IMPLEMENT_DYNCREATE(MyFrame, CFrameWnd) BEGIN_MESSAGE_MAP(MyFrame, CFrameWnd) ON_COMMAND(ID_Exit, OnExit)

class MyApp : public CWinApp { BOOL InitInstance() { CDocument *doc; CSingleDocTemplate *DocTemplate; DocTemplate = new CSingleDocTemplate(IDR_MENU1, RUNTIME_CLASS(MyDocument), RUNTIME_CLASS(MyFrame), RUNTIME_CLASS(MyView)); AddDocTemplate(DocTemplate); doc = DocTemplate->CreateNewDocument(); m_pMainWnd = DocTemplate->CreateNewFrame(doc, NULL); DocTemplate->InitialUpdateFrame((CFrameWnd *)m_pMainWnd, doc); m_pMainWnd->ShowWindow(SW_SHOW); return true; } } ; MyApp a_app;