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语法学习(个人感觉讲得还可以,主要围绕本次培训作出的讲解,没有像网上的基 ...
随机推荐
- SegmentFault 巨献 1024 程序猿游戏「红岸的呼唤」第一天任务攻略
今天一不小心在微博上看到了SegmentFault的一条微博: 眼看今天就要过去了,那在这里说一下我的解题过程(事实上大家都知道了吧-=). 高速传送门:http://segmentfault.com ...
- 【安卓笔记】ormlite入门
ps:写这篇文章的目的是尝试下新的markdown编辑器哈哈 简单介绍 ORMLite provides a lightweight Object Relational Mapping between ...
- Eclipse如何导入第三方jar包
本文转自:http://blog.csdn.net/mazhaojuan/article/details/21403717 我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar ...
- 转:java身份证格式强校验
package com.dsh.zealandweb.utils; import java.util.HashSet; import java.util.regex.Pattern; import o ...
- 学习笔记——AOP
以下纯属个人刚了解点皮毛,一知半解情况下的心得体会: ==================================================================== AOP( ...
- bzoj1123 [POI2008]BLO——求割点子树相乘
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1123 思路倒是有的,不就是个乘法原理吗,可是不会写...代码能力... 写了一堆麻麻烦烦乱七 ...
- leetcode排列组合相关
目录 78/90子集 39/40组合总和 77组合 46/47全排序,同颜色球不相邻的排序方法 78/90子集 输入: [1,2,2] 78输出: [[], [1], [2], [1 2], [2], ...
- express4里要单独安装cookie-parser和express-session
express4里要单独安装cookie-parser和express-session express4里要单独安装cookie-parser和express-session: 1 2 npm ins ...
- git强制放弃本地更改
git fetch --allgit reset --hard origin/master origin是服务器上的本地仓库master是分支
- [Apple开发者帐户帮助]一、开始(2)登录您的开发者帐户
使用Apple ID登录您的开发者帐户.如果您注册了付费程序(Apple Developer Program或Apple Developer Enterprise Program),请使用您用于注册的 ...