C++之CWnd窗口框架实例_C 语言

本文实例讲述了CWnd窗口框架,分享给大家供大家参考。具体分析如下:

.h头文件代码如下:

复制代码 代码如下:

#include <afxwin.h> 
 
class CMyApp:public CWinApp 

public: 
    virtual BOOL InitInstance(); 
}; 
 
//CMainWindow 
class CMainWindow:public CWnd 

public: 
    CMainWindow(); 
    ~CMainWindow(); 
 
protected: 
    afx_msg void OnNcDestroy( ); 
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 
    afx_msg void OnDestroy( ); 
    DECLARE_MESSAGE_MAP() 
};

.cpp源文件代码如下:

复制代码 代码如下:

#include "ReadBMP.h" 
#include "resource.h" 
 
CMyApp theApp; 
BOOL CMyApp::InitInstance() 

    m_pMainWnd = new CMainWindow; 
    m_pMainWnd->ShowWindow(m_nCmdShow); 
    return TRUE; //必须返回TRUE,否则不会进入消息循环,界面会直接退出 

 
//CMainWindow 
BEGIN_MESSAGE_MAP(CMainWindow, CWnd) 
ON_WM_CREATE() 
END_MESSAGE_MAP() 
//构造函数 
CMainWindow::CMainWindow() 

    LPCTSTR lpszClassName = ::AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW, ::LoadCursorA(NULL, IDC_ARROW), (HBRUSH)(COLOR_3DFACE+1), theApp.LoadIcon(IDI_MAIN)); 
    CreateEx(WS_EX_CLIENTEDGE, lpszClassName, "xxx", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL); 

//析构函数 
CMainWindow::~CMainWindow() 

 

//消息映射函数 
int CMainWindow::OnCreate(LPCREATESTRUCT lpCreateStruct) 

    //OutputDebugString("oncreate"); 
    //设置菜单 
    HMENU hMenu = ::LoadMenuA(theApp.m_hInstance, (LPCSTR)IDR_MENU); 
    ::SetMenu(m_hWnd, hMenu); 
    return 0; 

 
void CMainWindow::OnNcDestroy( ) 

    delete this; 

void CMainWindow::OnDestroy() 

     
}

希望本文所述对大家的C++程序设计有所帮助。

时间: 2024-10-29 06:46:24

C++之CWnd窗口框架实例_C 语言的相关文章

C++基于对话框的程序的框架实例_C 语言

本文实例讲述了C++基于对话框的程序的框架.分享给大家供大家参考.具体如下: resource.cpp源文件如下: 复制代码 代码如下: #include "resource.h"    CMyApp theApp;    BOOL CMyApp::InitInstance()  {      CMainDialog dlg;      m_pMainWnd = &dlg;   //给m_pMainWnd 主窗口      dlg.DoModal();      return

C++归并算法实例_C 语言

本文实例讲述了C++归并算法.分享给大家供大家参考.具体如下: /* 归并算法:把两个或两个以上的线性表合并在一起,形成一个新的线性表 函数模版的基本使用 程序意图:将两个相同类型的线性表元素排好序,然后将他们组合成一个排好的线性表 */ #include <iostream> using namespace std; const int n = 5; //5个元素 //输出数据元素 template <class T1> void OutPut(T1 out[(2*n)]) {

C++实现汉诺塔算法经典实例_C 语言

本文所述为汉诺塔算法的C++代码的经典实现方法. 汉诺塔问题描述:3个柱为a.b.c,圆盘最初在a柱,借助b柱移到c柱.需要你指定圆盘数. 具体实现代码如下: #include <iostream> using namespace std; int times = 0; //全局变量,搬动次数 //第n个圆盘从x柱搬到z柱 void move(int n, char x, char z) { cout << "第" << ++times <&l

C语言输出旋转后数组中的最小数元素的算法原理与实例_C 语言

  问题描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个排好序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1.      思路:这道题最直观的解法并不难.从头到尾遍历数组一次,就能找出最小的元素,时间复杂度显然是O(n).但这个思路没有利用输入数组的特性.既然有时间复杂度更小的算法,我们容易想到二分查找,因为它的时间复杂度为O(logn).这个问题是否可以运用二分查找呢

C基础 mariadb处理的简单实例_C 语言

引言 MariaDB 是一款灰常不错开源数据库. 这里直接用它来解决业务问题. 业务需求: 现在数据库中表示按照天分表的. 突然我们需要按照月来处理数据. 例如输入一个玩家id, 查找这个玩家这个月内看了一件事几次. 我们先搭建一个环境. 操作系统: Linux version 4.4.0-22-generic (buildd@lgw01-41) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #40-Ubuntu SMP Thu M

C语言创建windows窗口实例_C 语言

耐得住寂寞,禁得起诱惑,这就是程序人生 步骤: 1.在WinMain中定义各种变量 2.注册窗口类RegisterClass 3.创建窗口CreateWindow 4.显示窗口和更新窗口 复制代码 代码如下: ShowWindow (hwnd, iCmdShow) ;      UpdateWindow (hwnd) ; 5.消息循环 复制代码 代码如下: while (GetMessage (&msg, NULL, 0, 0))      {           TranslateMessag

VC++中HTControl控制类使用之CHTDlgBase对话框基类实例_C 语言

本文所述为VC++界面编程的一个MFC例子,基于HTControl控件类的CHTDlgBase对话框基类主文件代码.该程序可完成动态创建框架窗体,窗体外观(客户区与非客户区),调整窗体大小,无效子窗口的控制等功能. 具体实现代码如下: /**************************************************************************** | Copyright (c) 2012, | ******************************

VC6实现激活后台窗口最佳方法_C 语言

本文实例讲述了VC6实现激活后台窗口最佳方法.分享给大家供大家参考.具体实现方法如下: //激活窗口 SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE); SetWindowPos(&wndNoTopMost, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE); HWND hCurWnd = NULL; DWORD lMyID; DWORD lCurID; hCurWnd = ::GetForegro

C++针对bmp格式解析实例_C 语言

本文实例讲述了C++针对bmp格式解析的方法,分享给大家供大家参考.具体方法如下: 写这代码时,容易出现如下错误: 1. 忘了on_wm_paint()  一直在界面上画不出来 2. 正确写法 复制代码 代码如下: BYTE* pBits = (BYTE*)lpBase + pbitmapFileHeader->bfOffBits; 写成了  复制代码 代码如下: BYTE* pBits =  pbitmapFileHeader->bfOffBits; 这里主要是用了前面一篇中的CWnd框架.