美文网首页
9.25 c++ 总结

9.25 c++ 总结

作者: 张梦涵625 | 来源:发表于2017-09-25 20:02 被阅读0次

Windows编程基础

总结:

25号开始学习Windows编程基础,MFC编程。Windows和MFS中的字符,和字符串理解的不好,基础概念理解的也不好,下午看录得视频回顾,字符串得背,特别多,今天的重点就是MFC的编程,老师上课给的3个例子和两个作业题,编程理解的还可以,都能做出来。剩余的时间多背背字符串。

基础知识

1.API: 调用的函数集合就是windows操作系统提供给应用程序的编程接口

2.消息和消息队列:

消息机制:操作系统将每个事件都包装成一个称为消息的结构体MSG来传递给应用程序

      typedef struct tagMSG

{    HWND hwnd           (窗口句柄)

   UINT message;         (消息的名字)

        WPARAM wParam     (消息的附加参数)

        LPARAM lParam;

       DWORD time;

       POINT pt;             (发送消息的时间和位置)

       } MSG;

3.消息循环的处理过程:

MSG  msg;

While (GetMessage(&msg,NULL, 0,0))

{   TranslateMessage(&msg);

    DispatchMessage(&msg);

} 

(1) GetMessage()函数不断侦察应用程序的消息队列,若队列为空,则该函数一直运行,不返回;一旦发现队列不为空,便取出一条消息,把它复制到msg结构变量中,同时该函数返回TRUE。

(2) 得到消息msg后,TranslateMessage()把来自键盘的命令翻译成WM_XXX消息命令形式。

(3) DispatchMessage()函数通知Windows把每个消息分发给相应的窗口函数。应用程序并不直接调用窗口函数,而由Windows根据消息去调用窗口函数,因此,窗口函数经常被称为回调函数。

4.句柄

句柄就是资源的标识,我们要索引这样一个资源,就需要通过句柄去索引它。

5.编写WinMain函数

Windows程序的入口 函数,WinMain函数头内容:

int WINAPI WinMain

                   (

              HINSTANCE    hInstance,          (应用程序句柄)

               HINSTANCE    hPrevInstance,      (先前应用程序实例句柄)

 LPSTR      lpCmdLine,         命令行参数

 int    nCmdShow                显示的状态,最大化最小化

6.MFC编程

以C++类的形式封装了Windows API。它可以使用1.VC++进行开发,并且是在使用VC++提供的各种向导的情况下的MFC编程。

7.事件与消息

  1. 产生消息的来源有三个:

     (1) 由操作系统产生;

     (2) 由用户触发的事件转换而来;

 由另一个消息产生。

b) 事件:只能由用户通过外设的输入产生。

例题模板

HelloWorld

void C例2HelloWorldView::OnLButtonDown(UINT nFlags, CPoint point)

{

// TODO: Add your message handler code here and/or call default

       CString str(_T("HelloWorld"));

       MessageBox(str);

       CView::OnLButtonDown(nFlags, point);

}

鼠标消息

~view.h中为视图类的添加数据成员

          CString m_str;   //显示信息

          CPoint m_point;  //鼠标位置

void C例3MouseMsgView::OnLButtonDown(UINT nFlags, CPoint point)

{

       // TODO: Add your message handler code here and/or call default

       m_str.Format(_T("鼠标于(%d,%d)处按下"), point.x,point.y);

       m_point=point;

       Invalidate();  //调用重画窗体命令,使系统自动调用OnDraw()显示文字

       CView::OnLButtonDown(nFlags, point);

}

//CDC是CClientDC的基类

void C例3MouseMsgView::OnDraw(CDC* pDC)

{      … …

       // TODO: add draw code for native data here

   //在m_point位置输出信息

       pDC->TextOutW(m_point.x,m_point.y,m_str);

}

OnChar

void C例4键盘消息View::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)

{

       // TODO: Add your message handler code here and/or call default

       if(nChar == VK_RETURN)    //如按下回车键

      {  

              m_str=_T("");

               m_nLine++;

      }

        else

              m_str+=TCHAR(nChar);   //新行信息连接输入字符

       CClientDC dc(this);        //获取DC设备

       dc.TextOut(0,m_nLine*20,m_str);  //在m_nLine行显示一行信息

       CView::OnChar(nChar, nRepCnt, nFlags);

}

注意:

  • WNDCLASS  窗口类

  • Sln.        工程文件

  • rc.         资源文件

  •  

    相关文章

    • 9.25 c++ 总结

      Windows编程基础 总结: 25号开始学习Windows编程基础,MFC编程。Windows和MFS中的字符,...

    • 一个软件工程师的自我修养

      这是我对邹伟老师在“9.25锤子的创业故事”演讲分享的总结。 视频地址:“9.25锤子的创业故事”演讲

    • 9.25总结

      一.知识点 MFC中CString字符串类: 1.CString 类对象的初始化:CString str; 2.取...

    • 9.25总结

      今天老师给我们讲了Systick 系统时钟、 运用系统时钟。下午总结了之前所学的知识( GPIO初始化、NVIC初...

    • 9.25学习总结

      今天上午讲了之前老师留的项目,下午又留了一个关于发报机的项目,通过做项目我不仅将之前学过的东西复习了一遍,加深了...

    • 9.25学习总结

      今天开始学习新的内容MFC。 具体有:1.Windows运行的内部原理,是一些理论知识,了解一下windows编程...

    • 9.25每日总结

      今天我们的c语言的课程已经全部结束了,我们开始了我们的大作业了,感觉好难啊,真的好多,感觉自己的知识还是...

    • 9.25学习总结

      1今天没有讲新知识,还是做作业,顺便对前面所学的知识做一个深刻的总结2做一个发报机,对gpio,nvic,exti...

    • C++ 总结 (一、基础篇)

      C++ 总结 (一、基础篇) 官网 C++ 完全兼容C语言,但是有自己的语法特点,本文总结了C++的基础知识。记录...

    • 针灸记载

      9.22 9.24 9.25

    网友评论

        本文标题:9.25 c++ 总结

        本文链接:https://www.haomeiwen.com/subject/jbtqextx.html