1.windows 编程基础

windows 编程基础

Windows编程概述

  • ​ windows 是一个具有可视化图形用户界面的多任务操作系统,它为用户提供了风格统一的窗口、菜单、工具栏等界面元素所构成的多任务环境。
  • ​ 可以把windows 看成一个软件,对其进行编程就是去调用其接口去实现功能。
  • ​ 一个软件有两个部分,一个是逻辑,一个是绘制。
  • ​ “窗口”是windows程序实现的基础,大多数windows程序都是以窗口的方式运行的。
  • ​ windows程序设计是一种事件驱动方式的程序设计模式,主要是基于消息机制。

​ 当用户完成对应用程序(窗口)的某种操作时就会调用操作系统的某种支持,操作系统会将用户的操作包装成消息,并发送到到一个应用程序可以访问的消息队列 中,最后应用程序从消息队列中取走消息,并进行相应。

一、windows 操作系统的特点

  1. 直观、高效、统一的面向对象的图形用户界面,易学易用。

  2. 丰富的设备无关的图形操作

  3. 多任务多进程,各个应用程序共享系统提供的资源,

    所有资源的使用步骤:

    1. 向Windows系统请示资源。
    2. 使用该资源。
    3. 释放在该资源给Windows以供别的程序使用。

二、Windows程序模块

  1. 控制台应用程序
  2. 窗口应用程序**(win32的主要学习)**
  3. 动态库
  4. 静态库

入口函数是winmain

int WINAPI WinMain(HINSTANCE hlnstance,	//应用程序实例句柄
                   HINSTANCE hPrevlnstance,//父应用程序实例句柄(没什么用)
                   LPSTR lpCmdLine,	//命令行参数
                   int nShowCmd	//窗口显示方式
                  )

三、win32的数据类型

#include <windows.h>
int WinMain(HINSTANCE HInstance,HINSTANCE hPrecinstace,
LPSTR lpCmdLine,int nSHowCmd)
{
    MessageBox(0,0,0,0);
   return 0; 
    
}
  • ​ LPSTR 就是char

  • win32的数据类型,转定义就可以看到他是对c c++的数据类型的封装。在C/C++的基础上做出类型的重定义。

  • **windoes数据类型全是大写。**的作用:1. 去区别C/C++语言。2.顾名思义。 3.封装信息。

特性:

大写H开头,在win32里面叫句柄

句柄是什么:

​ 句柄是为了准确地访问到对象。

​ 数值上,是一个32位无符号整型值(32位系统下);逻辑上,相当于指针的指针;形象理解上,是Windows中各个对象的一个唯一的、固定不变的ID;作用上,Windows使用句柄来标识诸如窗口、位图、画笔等对象,并通过句柄找到这些对象。

P,LP开头,在win32里面表示指针。

windoes数据类型全是大写。

四、消息盒子

MessageBox(
nullptr,	//窗口句柄,这个消息是基于哪个窗口弹出的。
"abc",		//消息盒子文本
"123",		//消息盒子标题
MB_YESNOCANCEL|MB_ICONWARNING); //消息盒子的类型
函数的使用:
  1. 函数的作用
  2. 函数的名字
  3. 函数的参数
  4. 函数的返回值

五、字符集

  • 在计算机中字符通常并不是保存为图像,每个字符都是使用一个编码来表示的,而每个字符究竟使用那个编码代表,要取决于使用那个字符集(charset)。

  • 字符编码:ascii、GB_2312等。

  • Win32经常使用:多字符集 —— 一个字母一个字节,一个汉字两个字节。

​ 宽字符集 —— 不论汉字字母,都是两个字节。

字符集的选择

  1. 自行设定

    用固定的类型去表现字符或字符串,char(多字节字符集)或wchar_t(宽字符字符集)。

  2. 统一

    使用字符的通配符"_T"。#include <tchar.h>

    _t("<字符>");

  3. win32函数中如果在后缀有大写的A或W,那么A对应多字节,W对应宽字符节。通常情况下也会有一个没有后缀为A或W的同名函数,根据字符集不同的设定来通配

    相应的字符串处理函数也有通配符

    _tcslen(<字符变量名>)长度

    _tcscpy(<字符变量名>)复制

六、音乐播放

1、mav格式

#include <windows.h>		
#pragma comment(lib,("Winmm.lib"))
playsound(_T("<歌名.mav>"),//文件名路径,一般用相对路径
         nullptr,	//应用程序实例句柄
          SND_LOOP|SND_FILENAME|SND_ASYNC	
         );
		//SND_LOOP 循环|SND_FILENAME指定文件|SND_ASYNC异步

2、mp3格式

mciSendString(_T("open<歌名.mp3> aliac abc") //命令字符串,open打开*.mp3文件,alias取了一个叫abc的外号。
             nullptr,	//接受信息的缓冲区,null表示不接受信息
             0,	//第二个参数的内存的大小(缓冲区大小)。
             nullptr);	//回调函数的窗口句柄。
mciSendString(_T("play abc"),0,0,0);//播放音乐
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值