WIN32 窗口类封装 框架实现部分
2014-10-09 13:21
204 查看
上面已经讲了窗口封装部分,内容可点击:http://www.cnblogs.com/mengdejun/p/4010320.html,下面分享框架部分内容,完成WINDOWS消息迭代
CQFrameWnd.h 框架部分定义
CQFrameWnd.cpp 框架部分实现
实现及其调用过程
windows开发框架
动态链接库版本:http://files.cnblogs.com/mengdejun/wd.zip
1.0.0.3修复版本:http://files.cnblogs.com/mengdejun/wd.fix.zip
CQFrameWnd.h 框架部分定义
// MainFrameWnd.h: interface for the CMainFrameWnd class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_MAINFRAMEWND_H__F8E32324_0D71_4EEA_9B91_76CA47D6423F__INCLUDED_) #define AFX_MAINFRAMEWND_H__F8E32324_0D71_4EEA_9B91_76CA47D6423F__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "QWnd.h" #include "qbutton.h" class CQFrameWnd : public CQWnd{ QWND_DECLARE_MESSAGE_MAP(CQFrameWnd) public: CQFrameWnd(); virtual ~CQFrameWnd(); BOOL OnLButtonDown(UINT uMsg,WPARAM wParam,LPARAM lParam); BOOL OnRButtonDown(UINT uMsg,WPARAM wParam,LPARAM lParam); virtual HRESULT OnCreate(UINT uMsg,WPARAM wParam, LPARAM lParam); virtual HRESULT OnNcCreate(UINT uMsg,WPARAM wParam, LPARAM lParam); public: CQButton m_btn; }; #endif // !defined(AFX_MAINFRAMEWND_H__F8E32324_0D71_4EEA_9B91_76CA47D6423F__INCLUDED_)
CQFrameWnd.cpp 框架部分实现
// QWApp.cpp: implementation of the CQWApp class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "QWApp.h" ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CQWApp::CQWApp() { } CQWApp::~CQWApp() { } BOOL CQWApp::InitInstance() { return TRUE; } BOOL CQWApp::ExitInstance() { return TRUE; } BOOL CQWApp::Run(){ MSG msg; while(GetMessage(&msg,NULL,0,0)){ //从消息队列中取得消息 TranslateMessage(&msg); //检索并生成字符消息WM_CHAR DispatchMessage(&msg); //将消息发送给相应的窗口函数 } return TRUE; }
实现及其调用过程
// HelloApp.h: interface for the CHelloApp class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_HELLOAPP_H__53E2DA06_2C68_41AD_AF58_3A9111E27DB7__INCLUDED_) #define AFX_HELLOAPP_H__53E2DA06_2C68_41AD_AF58_3A9111E27DB7__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "QWApp.h" class CHelloApp : public CQWApp { public: CHelloApp(); virtual ~CHelloApp(); virtual BOOL ExitInstance(); virtual BOOL InitInstance(); }; #endif // !defined(AFX_HELLOAPP_H__53E2DA06_2C68_41AD_AF58_3A9111E27DB7__INCLUDED_)
// HelloApp.cpp: implementation of the CHelloApp class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "HelloApp.h" #include "QFrameWnd.h" ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CHelloApp::CHelloApp(){ } CHelloApp::~CHelloApp(){ } BOOL CHelloApp::ExitInstance(){ if(m_pMainWnd) delete m_pMainWnd; return TRUE; } BOOL CHelloApp::InitInstance(){ CQFrameWnd* pW=new CQFrameWnd; if(pW->CreateEx(0,TEXT("test c++ frame"),TEXT("Visual Keyboard"),WS_OVERLAPPEDWINDOW|WS_VISIBLE,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,(HINSTANCE)GetModuleHandle(NULL))){ m_pMainWnd=(LPVOID)pW; pW->UpdateWindow(); pW->ShowWindow(SW_SHOWNORMAL); return TRUE; } return FALSE; }
#include "stdafx.h" #include "HelloApp.h" int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { CHelloApp app; if(app.InitInstance()){ app.Run(); app.ExitInstance(); } return 0; }
windows开发框架
动态链接库版本:http://files.cnblogs.com/mengdejun/wd.zip
1.0.0.3修复版本:http://files.cnblogs.com/mengdejun/wd.fix.zip
相关文章推荐
- 使用开放源代码框架的 Java 应用程序的 Web 服务集成模式,第 1 部分: 实现调用模式
- 我的文章《DLL封装登录框架实现代码复用》终于要发表了
- 窗口类Win32 application (2) 看局域网聊天开源软件IPMsg的Win32部分
- Thunk技术封装好的win32项目窗口类
- jdbc,数据库案例:客户信息管理系统:jsp部分,数据库数据封装类,dao接口和实现
- 打造自己的MFC:thunk技术实现窗口类的封装
- 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包含增删改查、JavaBean反射原理,附源码)
- 第四篇 ANDROID窗口管理服务实现机制 窗口管理是ANDROID框架一个重要部分,主要包括如下功能: (1)Z-ordered的维护 (2)窗口的创建、销
- [Delphi]DLL封装登录框架实现代码复用
- WIN32编程--用Windows API实现Windows NT服务的程序框架
- DLL封装登录框架实现代码复用
- 原创 c# 封装的带CheckBox的DataGridViewColumnHeaderCell 源码部分 实现DataGridView列头带CheckBox控件实现全选功能,支持列头带标题
- java中用句柄与封装基础类的方法实现C++中指针的部分效果
- 第二部分 程序框架实现的线程分析
- 代码开源(1)——数据库部分操作封装C#实现
- 使用开放源代码框架的 Java 应用程序的 Web 服务集成模式,第 2 部分: 实现接收模式
- DLL封装登录框架实现代码复用
- thunk技术实现窗口类的封装
- js实现frame框架部分页面的刷新
- 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包含增删改查、JavaBean反射原理,附源码)