我是靠谱客的博主 贪玩鸡,最近开发中收集的这篇文章主要介绍Windows程序设计学习笔记WIN32编程MFC编程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

WIN32编程

1.What should I know beforehand?

  • the concept of the window
  • the concept of the event drive
  • the applicant of messege in coding
  • object and the histance

2.Window

window is the base unit(单元) in Win applicant

3.Message

Message is used to describe the event happening.For a example, when the mouse knickdown,there will be a message to record(记录) it. It will be convenient especially in programing the Interactive program(交互式程序).

4.Handle & Windows message

Handle is the basics of the whole windows programing.It is expressed by a PVOID type. Every Handle can mark the Unique object in application.The unique object can be a window,a button, a icon,a scroolbar,a outputDC(输出设备) or a file...The application can visit the information by Handle.

5.Here are some useful kinds of Handles

HWND
HISTANCE
HCURSOR
HDC
HBITMAP
HICON
HMENU
HFILE
HPEN
HBRUSH
HFONT

6.The construction of a windows message

  • 消息号
  • 字参数
  • 长字参数

7.Some frequent Windows Message

  • WM_LBUTTONDOWN
  • WM_KEYDOWN
  • WM_CHAR
  • WM_CREATE 调用CreateWindow时产生的消息
  • WM_CLOSE
  • WM_DESTROY
  • WM_PAINT ★★★

8.The construction of a WIn program source ".cpp"

入口函数WinMain+窗口函数Winproc
1. WinMain: do some definition and initiation.And it will produce the message circulation.The message ciculation is the kernel of the whole project.
2.WinProc: It is consist of a series of "switch".

9.Some datastructure

MSG
WNDCLASSEX
RECT
POINT

10.GDI,Graphics Device Interface

11.DC,Device context设备描述表

There exits three types of the DC
  • Display:屏幕显示
  • Print:打印机
  • Storage:Bitmap
  • Message:设备数据恢复

12.DC & the relevant function




13.Here are three ways to Get the Device enviorment

  • BeginPaint(hwnd,&ps)
  • GetDC
  • GetDCEx

14. The Universal Applied (普遍应用的) Mapping(映射) mode

MM_TEXT

15.TextOut()
16.键盘输入——>扫描码——>虚拟码
17.按键分为系统按键和非系统按键
18.光标cursor 插字符caret
19.ScreenToClient()屏幕坐标转化为窗口坐标
20.Resource资源的使用

  • Resource.h  设定资源的消息ID

Resource.rc 定义资源,设定资源ID名称,属性,样式等。

  • 菜单+加速键

    • CHECKED
    • INACTIVE
    • MENUBARBREAK
    • GRAYED
    • WM_COMMAND消息中字参数wParam中包含选中菜单项的标识
    • 加载菜单在窗口类中wndclass.lpszMenuname = ? OR 在创建窗口时加载菜单,此时要用到LoadMenu函数,在CreateWIndow的参数中设置菜单 OR 使用SetMenu动态加载菜单,提高灵活性。
    • EnableMenuItem()禁用或者激活菜单项 EnableMenuItem(hmenu,IDM_OPEN,MF_BYCOMMAND|MF_DISABLED)

  • SendMessage(hWnd,WM_DESTROY,0,0);这个向窗口发送消息的函数经常使用
  • DrawMenuBar()刷新并重新显示菜单

21.内存环境的黄建及初始化工作一般通过相应消息WM_CREATE完成
22.位图输出至屏幕有两个函数

  • Bitblt保持原始尺寸
  • StretchBlt()多了一个目标尺寸

MFC编程

1.CWnd类和消息映射机制隐藏了窗口函数WndProc,onMessage()

2.以Afx开头的函数除了数据库类函数和DDX函数外,都表示这是一个全局函数

3.控件

  • 几乎所有的控件都继承了XWnd类

4.为控件添加消息映射

  • 声明:afx_msg void OnBnclickedButton1();
  • 消息映射:ON_BN_CLICKED(IDC_BUTTON1,&CAboutDlg::OnClickedButton1);
  • 函数体:实现声明
    • 因此如果要删除映射必须将以上三个部分一起删除

5.在应用程序中使用控件的时候,往往要获取控件的指针或者控件的名称。

CEdit *pEdit = (CEdit*)GetDlgItem(IDD_EDIT1);
默认返回的控件基类是CWnd,所以使用的时候往往要进行强制类型转换。

6.UpdateData的作用

当为控件添加变量且变量的类型是value的时候,控件中的内容和变量的值可能不一样,所以先、
UpdateData(FALSE)刷新,当修改完变量的值之后,再UpdateData(TRUE)再次刷新,这样在对话框中心的value就能显示出来了。


最后

以上就是贪玩鸡为你收集整理的Windows程序设计学习笔记WIN32编程MFC编程的全部内容,希望文章能够帮你解决Windows程序设计学习笔记WIN32编程MFC编程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部