---  窗口创建函数 ---
#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)的更多相关文章

  1. C语言开发框架、printf(day02)

    C语言里包含以.c作为扩展名的文件,这种 文件叫源文件.C语言程序的绝大部分内容 应该记录在源文件里. C语言里还包括以.h作为扩展名的文件,这种 文件叫头文件. C语言程序里可以直接使用数字和加减乘 ...

  2. 布尔类型、操作符别名、C++函数、动态内存分配(new\delete)、引用(day02)

    六 C++的布尔类型 bool类型是C++中基本类型,专门表示逻辑值:true/false bool在内存上占一个字节:1表示true,0表示false bool类型可以接收任意类型和表达式的结果,其 ...

  3. 复习C语言基础知识(day02)

    一.大型软件组织 定义规则,规则就是协议.用户和中介的接口. 软件开发的过程: 定义规则,定义协议.软件为用户提供的功能. 在C语言中使用接口实现.接口就是函数. 两种用户 函数的使用者 函数的实现者 ...

  4. IOC设计模式初步了解(day02)

    IOC(Inversion of Control):控制反转. *其他解释:依赖注入.依赖反转…… 设计目标:简化JEE的研发工作,提供IOC容器,控制bean的生成.注入,解耦. 看了网上的一些帖子 ...

  5. 开源顶级持久层框架——mybatis(ibatis)——day02

    mybatis第二天    高级映射 查询缓存 和spring整合          课程复习:         mybatis是什么?         mybatis是一个持久层框架,mybatis ...

  6. Python基础【day02】:字符串(四)

    在Python中字符串本身有带很多操作,字符串的特性,不可以被修改 0.字符串常用功能汇总 1.字符串的定义 #定义空字符串>>> name=''#定义非空字符串 >>& ...

  7. Python基础【day02】:列表(三)

    本节内容 0.列表常用功能汇总1.定义列表2.访问列表中的元素3.切片4.追加5.插入6.修改7.拷贝8.删除9.扩展10.统计11.翻转12.排序13.获取下标值14.清空列表 列表是Python最 ...

  8. Python基础【day02】:字符编码(一)

    本节内容 1.字符编码与转码 1.关于中文2.注释3.转码 2.表达式for 循环 3.数据类型之数字 1.数字2.布尔值3.字符串4.列表5.元祖6.字典 一.字符编码与转码 python解释器在加 ...

  9. Java培训Day02——制作疫情地图(一)

    一.前言 此次培训,是为期三天的网上培训.最终的目的是制作出疫情地图.首先我们来看看主要的讲课内容大纲. Day1 |-Java语法学习(个人感觉讲得还可以,主要围绕本次培训作出的讲解,没有像网上的基 ...

随机推荐

  1. [LeetCode]Valid Sudoku解题记录

    这道题考查对二维数组的处理,哈希表. 1.最自然的方法就是分别看每一个数是否符合三个规则.所以就须要对应的数据结构来 记录这些信息,判定是否存在.显然最先想到用哈希表. 2.学会把问题抽象成一个个的子 ...

  2. jQuery Validation让验证变得如此easy(三)

    下面代码进行对jQuery Validation的简单演示包含必填项.字符长度,格式验证 一.引入文件 <script src="js/jquery-1.8.0.min.js" ...

  3. hdu1542 线段树+扫描线+离散化

    仅仅想说题目给的欲实际不服     还是这类型的水题吧   建议看之前我写的那个 #include<stdio.h> #include<string.h> #include&l ...

  4. 用MJExtension简化MVC

    首先引入MJExtension框架 模型 #import <Foundation/Foundation.h> @interface FundsModel : NSObject /** * ...

  5. 学习笔记——WCF

    学了一下WCF,发现怎么跟Web Service这么像! 这个WCF究竟干嘛的? 一查,原来: "Windows Communication Foundation (WCF) 是由微软发展的 ...

  6. WINDOWS下配置SVN代码管理

    服务器端使用 visualsvn server,客户端使用tortoiseSvn. 一.服务器端 1.首先,下载visualsvn server,安装到服务器.下载地址: http://www.vis ...

  7. SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章)

    SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章) 示例数据库:点我 CHAPTER 08 数据修改 8.1 插入数据 8.1.1 INSERT VALUES 语句 8.1 ...

  8. PCB LDI文件 自动化输出(改造)实现思路

    由于工厂采用Liunxs系统输出LDI文件,由于我们数据库是用的Windows Server,编程语言是.net 无法与Liunxs系统进行有效对接, 所以造成才会造成LDI 资料输效率极低,人员工作 ...

  9. yii widget使用的3个用法

    yii视图中使用的widget方式总结:常用的有3种方式:一.显示详细信息: $this->widget('zii.widgets.CDetailView', array( 'data' =&g ...

  10. Spring Boot (11) mybatis 关联映射

    一对多 查询category中的某一条数据,同时查询该分类下的所有Product. Category.java public class Category { private Integer id; ...