学习计算机语言的心得,计算机语言VC++学习心得.doc

作者分享了从SDK编程转向MFC编程的心得体会,介绍了如何在Visual C6.0环境下创建MFC静态库工程,简化编程过程。通过MFC的CWnd类和CWinApp类的使用,以及WindowProc函数处理窗口消息,展示了MFC提高开发效率的优势。
摘要由CSDN通过智能技术生成

计算机语言VC学习心得

计算机语言VC++学习心得计算机语言VC++学习心得

通过对VC++的一个学期的学习,觉得有所收获。

我是从VC的sdk编程过度到这个MFC编程当中,尽管开始是有些不适应,有很多知识没有掌握,对MFC的原理还是不是很清楚,出了错误改起来很费力。通过老师的讲解,我逐渐了解了MFC的一些基础应用和一些常用知识。比如MFC的CWnd累的函数中的windowProc函数,它是这个函数是cwnd类的一个虚函数,功能就是处理窗口的消息的,跟sdk编程中的窗口消息函数是一回事,写法大同小异,用这个方法本文由论文联盟http://www.LWlm.COM收集整理写的程序用这个方法写的程序,开发效率要快很多呢(对于MFC的初学者),下面我来介绍一下吧。

我的开发环境是Microsoft Visual C 6.0;

选择WIN32 Application工程建一个空的工程,然后加一个.cpp文件,关键的一部是altf7打开settings选项,在general选项中的MICROSOFT foundation classes选项中选择use MFC in a static library,这样就可以在这个工程中使用MFC基础类库编程了,这样可以大大的提高编程的效率,减小了出错的几率

MFC工程中有界面程序一定有两个类,一个是CWND类它提供了微软基础类库中所有窗口类的基本功能,另一个就是应用程序类CWINAPP。

定义一个类,由CWINAPP类派生的类:

Class CMyApp::public CWinApp

{

public:

Virtural BOOL InitInstance();

}

定义一个CWND类的派生类:

Class CMyWnd::public CWnd

{

public:

CMyWnd();

virtural LRESULT WindowProc(UINT message,WPARAM wParam,LPARAM lParam);

}

再添加一个.cpp文件。

看看CWyApp类中的InitInstance函数吧;

最先定义一个CMyApp类的对象:

CMyApp theApp; BOOL CMyApp::InitInstance()

{

m_pMainWnd=new CMyWnd;

::ShowWindow(*m_pMainWnd,this->m_nCmdShow);

::UpdateWindow(*m_pMainWnd); return TRUE;

}

CMyWnd::CMyWnd()

{

LPCTSTR lpszClassName=AfxRegisterWndClass(CS_HREDRAW |CS_VREDRAW,::LoadCursor(NULL,IDC_ARROW),

(HBRUSH)(COLOR_3DFACE 1)); CreateEx(WS_EX_CLIENTEDGE,lpszClassName,”起始”, WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,0,0);

}

关键的代码就是下面的这段,可以是说一个窗口的消息函数???所有的消息都要在这个函数中处理,和SDK编程中的消息写法一样,不用象在MFC中那样添加消息映射了,理解起来很方便,很直观。

LRESULT CMyWnd::WindowProc(UINT message,WPARAM wParam,LPARAM lparam)// 这个函数相当于WinMain函数中的窗口函数

{

HDC hdc;

PAINTSTRUCT ps;

switch (message)

{

case WM_CREATE:

{

::SetWindowText(m_hWnd,”hello First WND”);

::CreateWindowEx(0,”button”,”测试”,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,50,50,110,30,m_hWnd, (HMENU)IDB_BUTTON,AfxGetApp()->m_hInstance,0);

break;

}

case WM_COMMAND: // 这个消息是用来接收控件发送来的消息的,

{ switch (LOWORD(wParam))

{ case IDB_BUTTON: //我们的按钮控件的ID

{ //::SendMessage(m_hWnd,WM_CLOSE,0,0); //

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值