- 浏览: 191002 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
在世界的中心呼喚愛:
思路很好
连连看全局消除算法 -
tianaozhu:
请问,我修改了词库和源文件怎么就不好用了, 我源文件是: My ...
自己动手开发翻译软件(Java版) -
Arlrn:
博主你好,最近在学习排序算法,看了你的博客,你的直接插入排序, ...
各种排序算法的实现及其比较 -
sharong:
有一个明显错误,很显然冒泡排序的时间复杂度是O(n^2)
各种排序算法的实现及其比较 -
julydave:
希尔排序不太对吧。。
各种排序算法的实现及其比较
早期的MFC应用程序框架结构由两个对象组成:应用程序类CWinApp 的派生类对象和窗口类CFrameWnd的派生类对象,后者作为一个成员对象嵌在前者之中
#include<windows.h> //定义全局变量和函数------------------------------------------------------------------------ HINSTANCE hInst; HINSTANCE hInstance; MSG msg; char lpszClassName[]="window_class"; char*ShowText; //声明函数原型-------------------------------------------------------------------------------------- LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);//窗口函数 void OnLButtonDown(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); void OnPaint(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); void OnDestroy(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); //窗体类----------------------------------------------------------------------------------------- class CFrameWnd { public: HWND hWnd; public: int RegisterWindow(); void Create(LPCTSTR lpClassName, LPCTSTR lpWindowName ); void ShowWindow(int nCmdShow); void UpdateWindow(); }; //窗体类的成员函数---------------------------------------------------------------- int CFrameWnd::RegisterWindow() { WNDCLASS wc; wc.style=0; wc.lpfnWndProc=WndProc; wc.cbClsExtra=0; wc.cbWndExtra=0; wc.hInstance=hInstance; wc.hIcon=LoadIcon(NULL,IDI_APPLICATION); wc.hCursor=LoadCursor(NULL,IDC_ARROW); wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); wc.lpszMenuName=NULL; wc.lpszClassName=lpszClassName; return RegisterClass(&wc); } void CFrameWnd::Create(LPCTSTR lpClassName, LPCTSTR lpWindowName) { RegisterWindow(); hInst = hInstance; hWnd = CreateWindow(lpszClassName, lpWindowName, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); } void CFrameWnd::ShowWindow(int nCmdShow) { ::ShowWindow(hWnd, nCmdShow); } void CFrameWnd::UpdateWindow() { ::UpdateWindow(hWnd); } //应用程序类---------------------------------------------------------------------------------- class CWinApp { public: CWinApp * m_pCurrentWinApp; public: CWinApp( ); ~ CWinApp( ); public: CFrameWnd * m_pMainWnd; public: virtual BOOL InitInstance (int nCmdShow); int Run( ); }; CWinApp::CWinApp( ) { m_pCurrentWinApp = this;} BOOL CWinApp::InitInstance(int nCmdShow) { m_pMainWnd=new CFrameWnd; m_pMainWnd->Create(NULL,"封装的Windows程序"); m_pMainWnd->ShowWindow(nCmdShow); m_pMainWnd->UpdateWindow(); return TRUE; } int CWinApp::Run() { while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } CWinApp::~ CWinApp( ) { delete m_pMainWnd; } //程序员派生的窗体类----------------------------------------------------------------------- class CMyWnd:public CFrameWnd { }; //程序员由CWinApp类派生的CMyApp类----------------------------------------------- class CMyApp:public CWinApp { public: BOOL InitInstance(int nCmdShow); }; //派生类CMyApp的成员函数--------------------------------------------------------------- CMyApp::InitInstance(int nCmdShow) { CMyWnd*pMainWnd=new CMyWnd;//应用窗体的派生类定义窗体对象 pMainWnd->Create(NULL,"应用窗体的派生类的程序"); pMainWnd->ShowWindow(nCmdShow); pMainWnd->UpdateWindow(); m_pMainWnd=pMainWnd;//把CMyWnd类的对象赋给m_pMainWnd return TRUE; } //程序员定义的CWinApp的对象MyApp-------------------------------------------------- CMyApp MyApp; //全局函数AfxGetApp()---------------------------------------------------------------------- CWinApp*AfxGetApp() { return MyApp.m_pCurrentWinApp; } //主函数------------------------------------------------------------------------------------------ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { int ResultCode=-1; CWinApp*pApp; pApp=AfxGetApp(); pApp->InitInstance(nCmdShow); return ResultCode=pApp->Run(); } //窗口函数的实现-------------------------------------------------------------------------------------- LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_LBUTTONDOWN: OnLButtonDown(hWnd, message, wParam, lParam); break; case WM_PAINT: OnPaint(hWnd, message,wParam, lParam); break; case WM_DESTROY: OnDestroy(hWnd, message, wParam, lParam); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } void OnLButtonDown(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { ShowText="Hello!"; InvalidateRect(hWnd,NULL,1); } void OnPaint(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; HDC hdc; hdc = BeginPaint(hWnd, &ps); TextOut(hdc,50,50,ShowText,6); EndPaint(hWnd, &ps); } void OnDestroy(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { PostQuitMessage(0); }
在应用程序主函数WinMain()中,CWinApp派生类的对象theApp通过调用自己的各个成员函数来完成程序的初始化及消息循环等一系列工作。在CWinApp成员函数InitInstance()中形成应用程序的主窗口对象pMainWnd(类CMyWnd的对象),在完成窗口的创建与显示后,主窗口对象pMainWnd将被给CWinApp的成员m_pMainWnd。
发表评论
-
连连看全局消除算法
2012-03-08 01:48 4284好久没写技术博客了。I ... -
object-c笔记一
2011-07-22 11:03 846(本笔记只是简单的记录,只给自己看) 接口的定义: ... -
VC2010中C++的右值引用新特性
2011-05-27 13:37 1466// RightValue.cpp : Defines ... -
linux下用命令编译/调试C++程序
2011-04-01 14:17 2991先安装gcc : sudo apt-get insta ... -
对Windows程序中设备上下文DC(device context)的理解(转)
2010-11-08 00:58 1590对Windows程序中设备上 ... -
MFC学习笔记(九)
2010-10-30 01:47 1341前面已经讲了够多的基础性的东西了,还有一些,但我想还是之后遇到 ... -
MFC学习笔记(八)
2010-10-30 00:55 1005MFC把早期的窗口类的功能分成三个部分:数据存储、管理部分,数 ... -
MFC学习笔记(七)
2010-10-28 01:29 936创建一个普通的Win32 Application,加上一个.c ... -
MFC学习笔记(六)
2010-10-28 01:16 1071先来了解几个类 1、CObject类 有相当一部分类的基 ... -
MFC学习笔记(四)
2010-10-27 00:28 1130前面写了那么多代码,但很多东西都是固定的,我们需要写的主要是消 ... -
MFC学习笔记(三)
2010-10-26 14:54 1117这一次修改事件的处理函数,当鼠标左键按下时,可在窗口的用户区显 ... -
MFC学习笔记(二)
2010-10-26 14:31 971上一篇写的是一个单窗口的程序,这一次写一个多窗口的程序,第一个 ... -
MFC学习笔记(一)
2010-10-26 14:21 1544之前也学过一点MFC的知识,但因很久没去碰就都忘 得差不多了。 ... -
高质量C++/C编程学习笔记(七)----- 其它
2010-10-24 10:29 7601、继承不要随便使用, ... -
高质量C++/C编程学习笔记(六)----- 构造 析构 赋值函数
2010-10-24 10:15 8091、当创建一个类时,C++ ... -
高质量C++/C编程学习笔记(五)----- 基础函数的高级特性
2010-10-24 02:13 10221、重载: 只能靠参数而不能靠返回值类型的不同来区分重载函 ... -
高质量C++/C编程学习笔记(四)----- 内存管理(2)
2010-10-22 00:46 10945、用指针参数传递内存 ... -
高质量C++/C编程学习笔记(三)----- 内存管理(1)
2010-10-22 00:17 11291、 三种内存分配方式 ... -
高质量C++/C编程学习笔记(二)----- 基础
2010-10-21 23:10 9091、在函数体的“入口处” ,用断言对参数的有效性进行检查。断言 ... -
高质量C++/C编程学习笔记(一)----- 入门
2010-10-21 01:05 1212学了这么久的C/C++,在 ...
相关推荐
MFC学习笔记
MFC学习笔记(onenote格式),一个朋友参加MFC培训,其教师在讲课过程中做的学习日记。图文并茂,是初学者很好的学习资料。
C++、MFC学习笔记!
MFC学习笔记.docx 自己的学习笔记。
这是一个关于 MFC菜单操作学习笔记 的资源,有需要的朋友下载阅读。
这是MFC的学习笔记,很好的。比较容易入门。
价值20000元达内win32加MFC学习笔记.
本人自学MFC期间的学习笔记,分类详细,适合初学者
Visual_C++MFC学习笔记,在你一边听视频一遍查找笔记中的内容,学习C++ MFC会更容易些。
本人从零开始学C++/MFC的时候,积累和整理的学习笔记,其中有大部分常见问题和处理办法,看过很过帖子,也查过很多资料,最终把他们记录下来。 Demo内容: ★ ::OnTimer OnTimer()函数用于实现定时控制功能,定时...
达内MFC课程完整笔记
C++ MFC 学习笔记 对初学者有很大提高
声明:所有代码和程序仅作为参考,各位可自由使用,出现一切后果自负。 博文地址:http://blog.csdn.net/shortcoder/article/details/16370697
MFC学习笔记--案例--销售系统,txt文件存储,格式固定,文件内容增加、删除、修改等,简单控件的使用,文本框,下拉框,表格,界面切换等,缓存,方便以后复习
7.16基于对话框编程对话框是一种特殊类型的窗口,绝大多数Windows程序都通过对话框与用户进行交互 2.1 创建基于对话框的 MFC 应用程序框架程序的创建
学习mfc入门参考,看看吧有点用
MFC的学习笔记,从windows API处理,消息响应机制,MFC框架,MFC内部机制,到MFC控件,MFC类库使用,多线程,DLL,数据库等
深入浅出MFC_简体中文版_侯捷 + 深入浅出MFC笔记(配合原书的好笔记)