Win32_Window(day02)
--- 窗口创建函数 ---
#include <Windows.h>
//窗口处理函数
HINSTANCE g_hIns; LRESULT CALLBACK WndProc(HWND hWnd,UINT msgID,
WPARAM wParam,LPARAM IParam)
{
switch (msgID)
{
case WM_DESTROY:
PostQuitMessage();//消息窗口关闭按钮点击后,退出程序
break;
}
return DefWindowProc(hWnd,msgID,wParam,IParam);
//给各种消息做默认处理
} //注册窗口
void Register(LPSTR IpClassName,WNDPROC wndProc)
{
WNDCLASSEX wce = {};
wce.cbSize = sizeof(wce);
wce.cbClsExtra = ;
wce.cbWndExtra = ;
wce.hbrBackground = (HBRUSH)(COLOR_WINDOW + );
wce.hCursor = NULL;
wce.hIcon = NULL;
wce.hIconSm = NULL;
wce.hInstance = g_hIns;
wce.lpfnWndProc = wndProc;
wce.lpszClassName = IpClassName;
wce.lpszMenuName = NULL ;
wce.style = CS_HREDRAW|CS_VREDRAW;
RegisterClassEx(&wce);
} //创建窗口
HWND CreateMain(LPSTR IpClassName,LPSTR IpWndName)
{
HWND hWnd = CreateWindowEx(,IpClassName,IpWndName,WS_OVERLAPPEDWINDOW,
,,,,NULL,NULL,g_hIns,NULL);
return hWnd;
} //显示窗口
void Display(HWND hWnd)
{
ShowWindow(hWnd,SW_SHOW);
UpdateWindow(hWnd); //重绘窗口
} //消息循环
void Message()
{
MSG nMsg = {};
while(GetMessage(&nMsg,NULL,,))
{
TranslateMessage(&nMsg);//翻译消息
DispatchMessage(&nMsg);//派送消息
}
} int CALLBACK WinMain(HINSTANCE hIns,HINSTANCE hPreIns,LPSTR IpCmdline,int nCmdShow)
{
g_hIns = hIns;
//注册窗口类
Register("Main",WndProc);
//创建窗口
HWND hWnd = CreateMain("Main","Window");
//显示窗口
Display(hWnd);
//消息循环
Message();
return ;
}
——Windows下编码
1.Windows下的编码默认使用的是 UNICODE,两个字节!这样就可以防止乱码的情况的出现!但是UNICODE 这种编码方式很费内存资源
2.编码的发展:
由于计算机是由美国发明的,所以当时只能支持英语,但是说英语的国家很少,再者当时计算机的硬件是十分昂贵!所以先发展的ASC码--> ASCII码 --> UNICODE
ASC码 : 7位 -- 128个字符(bit)
ASCII码:7+1 位 -- 256 个字符(bit)
UNICODE 16位 -- 这就有很多字符了。但是UNICODE编码非常耗费内存资源,随着硬件的发展,UNICODE编码克服了这一难题逐渐取代了传统编码,这是因为这种编码可以支持世界上所有国家的语言,不会造成乱码的现象,所以这是一个国际化编码。
——Windows 下类型
TPSTR --- char*
TPCSTR const char*
wchar_t --- unsigned short 宽字节char -- 占2个字节
......
——Windows 下打印
1.wprintf
2.printf ---标准C打印
3.Console 打印
wchar_t* pszText = L"阿海";
//wprintf(L"%s\n",pszText);
HANDLE hStd = GetStdHandle(STD_OUTPUT_HANDLE);
WriteConsole(hStd,pszText,wcslen(pszText),NULL,NULL);
Win32_Window(day02)的更多相关文章
- C语言开发框架、printf(day02)
C语言里包含以.c作为扩展名的文件,这种 文件叫源文件.C语言程序的绝大部分内容 应该记录在源文件里. C语言里还包括以.h作为扩展名的文件,这种 文件叫头文件. C语言程序里可以直接使用数字和加减乘 ...
- 布尔类型、操作符别名、C++函数、动态内存分配(new\delete)、引用(day02)
六 C++的布尔类型 bool类型是C++中基本类型,专门表示逻辑值:true/false bool在内存上占一个字节:1表示true,0表示false bool类型可以接收任意类型和表达式的结果,其 ...
- 复习C语言基础知识(day02)
一.大型软件组织 定义规则,规则就是协议.用户和中介的接口. 软件开发的过程: 定义规则,定义协议.软件为用户提供的功能. 在C语言中使用接口实现.接口就是函数. 两种用户 函数的使用者 函数的实现者 ...
- IOC设计模式初步了解(day02)
IOC(Inversion of Control):控制反转. *其他解释:依赖注入.依赖反转…… 设计目标:简化JEE的研发工作,提供IOC容器,控制bean的生成.注入,解耦. 看了网上的一些帖子 ...
- 开源顶级持久层框架——mybatis(ibatis)——day02
mybatis第二天 高级映射 查询缓存 和spring整合 课程复习: mybatis是什么? mybatis是一个持久层框架,mybatis ...
- Python基础【day02】:字符串(四)
在Python中字符串本身有带很多操作,字符串的特性,不可以被修改 0.字符串常用功能汇总 1.字符串的定义 #定义空字符串>>> name=''#定义非空字符串 >>& ...
- Python基础【day02】:列表(三)
本节内容 0.列表常用功能汇总1.定义列表2.访问列表中的元素3.切片4.追加5.插入6.修改7.拷贝8.删除9.扩展10.统计11.翻转12.排序13.获取下标值14.清空列表 列表是Python最 ...
- Python基础【day02】:字符编码(一)
本节内容 1.字符编码与转码 1.关于中文2.注释3.转码 2.表达式for 循环 3.数据类型之数字 1.数字2.布尔值3.字符串4.列表5.元祖6.字典 一.字符编码与转码 python解释器在加 ...
- Java培训Day02——制作疫情地图(一)
一.前言 此次培训,是为期三天的网上培训.最终的目的是制作出疫情地图.首先我们来看看主要的讲课内容大纲. Day1 |-Java语法学习(个人感觉讲得还可以,主要围绕本次培训作出的讲解,没有像网上的基 ...
随机推荐
- 我要抓狂了。。又回到了几天不能A一道题的时候
poj1556我不做了.你做做把...我已经要game over了
- Qt移动应用开发(一):适配不同的屏幕
Qt移动应用开发(一):适配不同的屏幕 到眼下为止.Qt5.3已经出现非常长一段时间了.而且已经有一些应用使用Qt进行构建了.我自己也完毕了第一款使用Qt构建的手机游戏<吃药了>.那么接下 ...
- Sublime text 神器小记
曾经一直使用的都是Editplus,一直感觉都是非常不错的. 可是近期接触到sublime text,我就fall in love with it. Sublime 的意思是"顶峰,高尚,非 ...
- sublime text3编译C/C++系统提示丢失zlib1.dll解决的方法
用g++ 编译C/C++程序时 出现例如以下系统提示: 解决的方法例如以下: 1.下载zlib1.dll: http://www.pc6.com/softview/SoftView_81060.htm ...
- WCF学习笔记——契约不能少了set
我定义的WCF契约里,有一个类,里面的属性,有一个因为只读,所以只写了个get.结果客户端就报错. [DataContract] public class UserItem { public User ...
- ambarella H2 添加文件到ext4文件系统
方法1: ambarella/rootfs目录下有skeleton(骨架)目录,此目录下就是文件系统的各个目录, [root@jz4775dev]# ls skeleton/ bin debug de ...
- inux内核模块编程入门
linux内核模块编程入门 2013-07-06 23:59:54 分类: LINUX 原文地址:linux内核模块编程入门 作者:s270768095 模块编程属于内核编程,因此,除了对内核相关知识 ...
- spring:使用<prop>标签为Java持久属性集注入值
spring:使用<prop>标签为Java持久属性集注入值 使用 spring 提供的<prop>为Java持久属性集注入值,也就是向 java.util.Propertie ...
- mac os lscpu 【转】
CPU Information on Linux and OS X This is small blog post detailing how to obtain information on you ...
- 时序数据库深入浅出之存储篇——本质LSMtree,同时 metric(比如温度)+tags 分片
什么是时序数据库 先来介绍什么是时序数据.时序数据是基于时间的一系列的数据.在有时间的坐标中将这些数据点连成线,往过去看可以做成多纬度报表,揭示其趋势性.规律性.异常性:往未来看可以做大数据分析,机器 ...