加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

第1课用C语言函数编写对话框

(2012-01-12 20:14:23)
标签:

windows

程序

设计

教育

c语言

对话框

分类: MFC程序设计

1课 用C语言函数编写对话框

【孙鑫VC++1课笔记】

 

特别提醒:前面自己要学习下面向对象的知识【类的知识】;

不过在第一课里面还没有用到类的知识,第二课才开始涉及到类的知识;

 

1windows应用程序是如何运行的?

特点:windows程序设计是种事件驱动方式的程序设计,主要基于消息的。

运行步骤:

1) 、当用户需要完成某种功能时(比如敲击键盘),需要调用OS某种支持;

2) 、然后OS将用户的需要包装成消息,并投入到消息队列中;

3) 、最后应用程序从消息队列中取走消息并进行响应。

 

2、应用程序如何操纵OS

应用程序à系统调用(调用函数)à通知操作系统做事

  APIApplication Programming Interface

API就是这些操作系统函数的集合的简称,也叫做应用程序接口;

每个API函数都能让操作系统做一件事情;

 

★★ 操作系统如何通知应用程序做事?

发送消息到消息队列,应用程序按照消息去做事;

 

3、消息是什么?

消息是一个结构体;

typedef struct tagMSG {

  HWND   hwnd;

  UINT   message;

  WPARAM wParam;

  LPARAM lParam;

  DWORD  time;

  POINT  pt;

} MSG, *PMSG;

typedef是什么?主要作用定义同义词;

Typedef 原词  同义词;为“原词”定义了一个“同义词”;

上面就是:typedef struct tagMSG MSGMSG是同义词

 

4msdn

Msdn是什么?是vc6的帮助啊。

每年发布4次,每个季度发布一个新的版本;

Msdn200110月份发布的是支持VC6的最后一个版本;

 

5、新的数据类型

HWND是一个新的数据类型  句柄  是资源的标识,类似于一个指针;

 

★用类型的同义词来定义变量,可以得知变量的用途或者含义;

 

6、消息队列

消息队列就是数据结构里的队列,具有先进先出的特性;用数组实现;

 

7WinMain函数

int WINAPI WinMain(

HINSTANCE hInstance,      // handle to current instance当前运行的程序

  HINSTANCE hPrevInstance,  // handle to previous instance 前面运行的程序

  LPSTR lpCmdLine,          // command line

  int nCmdShow              // show state

);

 

★★ 这只是一个主函数的头部,不用自己记住,用的时候可以到msdn里面拷贝;

LPSTR 其中LP表示一个长指针

 

8HInstance实例句柄

运行一个窗口 就是一个实例 对于同一段代码 又运行了一个窗口 就是第2个实例

 

9、★★★★★创建一个完整的窗口需要经过下面四个操作步骤:

1)、设计一个窗口类(其实是一个结构体);如:WNDCLASS wndcls;

     就是为这个结构体的各个分量赋值,设计一个窗口;

2)、注册窗口类; 如:RegisterClass(&wndcls);

3)、创建窗口; 如:CreateWindow(),CreateWindowEX();

4)、显示及更新窗口。如:ShowWindow(),UpdateWindow();

5)、消息循环GetMessage从消息队列中获得消息;

 

10、窗口的类型

二进制的一些宏 0x0001   0x0008  0x0020  只有一位是1

特征相加 用按位与|,去掉特征 &~

 

11、回调函数

★由操作系统自动调用,但是如何处理要程序员写程序来处理;

函数名是函数代码的首地址,也是函数指针;

回调函数里面可以处理很多消息。

回调函数可以自己取名字,但是参数类型不能改,参数名字可以修改。

 

12、消息循环

13CALLBACK是什么?

说明:两种函数调用约定(__stdcall __cdecl):

#define CALLBACK __stdcall

//__stdcall 标准调用预定,是PASCAL 调用约定,象DELPHI使用的就是标准调用约定

#define WINAPIV __cdecl

// __cdecl C 语言形式的调用约定。

CALLBACK也可以在VC编译器里面可视化设置。

 

实践部分

1、建立win32 Application工程,建立一个空的工程;

2、建立*.cpp文件,就是C++Source文件,不是头文件;

3、加两个头文件windows.h, stdio.h;

4、拷贝WinMain函数的头部,开始按照建立窗口的五个步骤编写程序;

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有