博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WIN32 窗口类封装 框架实现部分
阅读量:4572 次
发布时间:2019-06-08

本文共 2983 字,大约阅读时间需要 9 分钟。

上面已经讲了部分,内容可点击:,下面分享框架部分内容,完成WINDOWS消息迭代

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开发框架

动态链接库版本:

1.0.0.3修复版本:

转载于:https://www.cnblogs.com/mengdejun/p/4013132.html

你可能感兴趣的文章
rpath 与runpath
查看>>
WPF星空效果
查看>>
SQL语言基础-基本概念
查看>>
用迭代创建级联目录
查看>>
Docker安装Nginx
查看>>
Usenet:P2P下载的替代方法
查看>>
POJ 2155 Matrix (D区段树)
查看>>
andorid简易定位
查看>>
前端基础标签
查看>>
PHP常见的加密算法
查看>>
react-navigation 简介
查看>>
参数化查询与sqlparameter类的使用
查看>>
拷贝,集合,函数,enumerate,内置函数
查看>>
2018-6-4-Python全栈开发day13-14-集合与函数
查看>>
Nginx与Tomcat集成
查看>>
Hadoop学习笔记: 安装配置Hadoop
查看>>
c/c++ 继承与多态 子类隐藏父类的同名非虚函数
查看>>
APP耗电量测试
查看>>
Elasticsearch & Kibana with Shield
查看>>
面向对象进阶
查看>>