MFC 的生与死
来源:互联网 发布:e绅士漫画网络错误 编辑:程序博客网 时间:2024/05/01 05:43
MFC's
Live:
AfxWinMain()%1 //有My表示是自己的类
CWinApp * pApp=AfxGetApp();
AfxWinInit(...);
pApp->InitApplication();
pApp->InitInstance();★//CWinApp的虚函数,你可以在这里对应用程序启动(如打开文件等)修改,CMyWinApp里重载
| CMY_WinApp::InitInstance()
| | m_pMainWnd=new CMyFrameWnd[MainFrame]();
| | CMyFrameWnd::CMyFrameWnd() //construct
| | Create(NULL,..."MainMenu"...);
| | | CWnd::CreatEx(...)
| | | | CREATESTUCT cs;
| | | | cs初始化
| | | | CMyFrameWnd::PreCreateWindos(cs);//★CWnd的虚函数,你可以在这里对窗口类做修改,CMainFrame里重载
| | | | | CFrameWnd::PreCreateWindow(cs);//你可以用GetClassInfo(api func)获得副本进行修改
| | | | | | AfxDeferRegisterClass(AFX_WNDFRAMEORVIEW);//是个宏扩展如下
| | | | | | AfxRegisteredClasses(对系统已注册的窗口类)? TRUE : AfxDeferRegisterClass(对系统未注册的窗口类)
| | | | | | wndcls.lpfnWndProc=DefWindowProc();_______________________^
| | | | | | wndcls.hInstance=AfxGetInstanceHandle();
| | | | | | wndcls.hCursor=afxData.hcurArrow;
| | | | | | AFX_MODULE_STATE * pModuleState=AfxGetModuleState();
| | | | | | //根据不同窗口类进行处理 见《深入浅出mfc》P286
| | | | | | AfxRegisterClass()//真正注册窗口
| | | | AfxHookWindowCreate(this);//把窗口类的窗口函数DefWindowProc改换为AfxWndProc
| | | | | ::SetWindowsHookEx(WH_CBT,_AfxCbtFilterHook,.....);//过滤ACTIVE,CREATEWND,DESTROYWND,MINMAX...
| | | | | | _AfxStandardSubclass()
| | | | | | oldWdProc=(WNDPROC)SetWindowLong(hWnd,GWL_WNDPROC,(DWORD)AfxGetAfxWndProc();
| | | | | | return &AfxWndProc//!!!!!!!!!!!!!!!!!!!!!!!!____________^
| | | | ::CreatWindowEx(cs.dwExStyle.....)//触发WM_CREATE消息 ★重载OnCreat挂接toolbar statubar等
| m_pMainWnd->ShowWindow(m_nCmdShow); //将窗口显示出来
| m_pMainWnd->UpdateWindow(); //发送WM_PAINT消息
nReturnCode=pApp->Run(); //开始消息循环处理
| CWinApp::Run()
| | do{//以下包含在pumpmessage()中
| | ::GetMessage(&msg,...); //从系统消息对列获取消息
| | PreTranslateMessage(&msg);
| | ::TranslateMessage(&msg); //将虚拟键转换为字符消息并送到应用程序队列
| | ::DispatchMessage(&msg); //把&msg所指象的消息传送到指定窗口(CMainFrame)的窗口函数
| | (DefWnidowProc(wndcls.lpfnWndProc)----(use subclass-hook)---->AfxWndProc是全局的函数)
| }while(::PeekMessage(&msg)); //取消息不同与getmessage的是不等待就返回
AfxWinTerm();
Dided
- mfc的生与死
- MFC的生与死
- MFC 的生与死
- MFC程序生与死
- 关于Windows MFC程序生与死流程的总结
- MFC学习笔记--Window程序的生与死
- 深入浅出MFC:Windows程序的生与死
- 简述MFC程序生与死
- 简述MFC程序生与死
- 简述MFC程序生与死
- [转载]简述MFC程序生与死
- 简述MFC程序生与死
- 学习笔记之深入浅出MFC 第5章 Windows程序的生与死
- 生与死的神圣
- JavaScript的死与生
- 一个MFC程序的生因死果
- C#Windows程序的生与死
- C#Windows程序的生与死
- BDC详解
- 卡片上写日志代码
- scanf/sscanf %[]格式控制串的用法(转)
- msde 附加数据 mssql
- Turning the Message on and off
- MFC 的生与死
- jboss部署问题
- Linux内核调试工具:Kdb的编译安装
- Control your scripts with command-line PHP
- 加双层边框的代码
- Fedora 11 添加一块硬盘遇到的问题
- [魔方]手部极限运动
- execCommand()函数可用参数大解析
- 实例讲解:使用IBM heapAnalyzer分析heap dump文件步骤