栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Win32基础学习笔记

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Win32基础学习笔记

一、应用程序分类

控制台程序
窗口程序
库程序:静态库程序,动态库程序

二、开发工具

编译工具:
编译器cl.exe
链接器link.exe
资源编译器rc.exe

三、Windows库

库:
kernel32.dll - 提供核心的API,例如进程、线程、内存管理等;
user32.dll - 提供窗口、消息等API;
gdi32.dll - 绘图相关的API。
头文件:
windef.h - windows数据类型;
winbase.h - kernel32 API的头文件;
wingdi.h - gdi32 API的头文件;
winuser.h - user32 API的头文件;
winnt.h - Unicode字符集文件;
windows.h - 所有windows头文件的集合。

四、字符集编码

1、编码历史
ASC->ASCII->DBCS->UNICODE
windows上unicode一般用utf-16,中英文都为双字节。
2、宽字节字符
wchar_t每个字符占2个字节
char每个字符占1个字节
wchar_t实际是unsigned short类型,定义时需要增加“L”通知编译器按照双字节编译字符串,采用Unicode编码。
需要使用支持wchar_t函数操作宽字节字符串。例如:

const wchar_t* pwszText = L"Hello wchar",
wprintf(L"%sn", pwszText);

如果分不清用char还是wchar_t,可以使用TCHAR,TCHAR是微软用宏定义的推导字符类型,。
const TCHAR* tstr = __TEXT(“hello tchar”);
#ifdef UNICODE
wprintf(L"%s, %dn", tstr, wcslen(tstr));
#else
printf(“%s, %dn”, tstr, strlen(tstr));
#endif
3、系统调用函数的参数类型
LPSTR == char* LPCSTR == const char*
LPWSTR == wchar_t* LPCWSTR == const wchar_t*
LPTSTR == TCHAR* LPCTSTR == const TCHAR*

五、创建窗口步骤

1、创建入口函数
2、注册窗口类
3、创建窗口
4、显示窗口
5、消息循环

六、窗口类

https://docs.microsoft.com/zh-cn/windows/win32/winmsg/about-window-classes
1、概念
窗口类是包含了窗口各种参数信息的数据结构;
每个窗口都具有窗口类,基于窗口类创建窗口;
每个窗口类都具有一个名称,使用前必须注册到系统。
2、分类
系统窗口类

| 系统窗口类 | 说明 |
|Button|按钮的类|
| ComboBox | 组合框的类 |
| Edit | 编辑控件的类 |
|ListBox|列表框的类|
| MDIClient | MDI客户端窗口的类 |
|ScrollBar| 滚动条的类 |
|Static|静态控件的类|
应用程序全局类
应用程序本地类
style窗口类分格
应用程序全局窗口类的注册,需要在窗口类的分格中增加CS_GLOBALCLASS。
例如:
WNIDCLASS wc{0};
wc.style = …|CS_GLOBALCLASS;
应用程序局部窗口类,在注册窗口类时,不添加CS_GLOBALCLASS风格。
其它分格:
CS_HREDRAW - 当窗口水平变化时,窗口重新绘制;
CS_VERDRAW - 当窗口垂直变化时,窗口重新绘制;
CS_DBLCLKS - 允许窗口接收鼠标双击;
CS_NOCLOSE - 窗口没有关闭按钮。

七、创建窗口
CreateWindow();
CreateWindowEx();
创建子窗口:
	设置父窗口句柄;
	窗口风格增加WS_CHILD | WS_VISIBLE
一个窗口类可以用来创建多个窗口。
八、消息

消息组成
窗口句柄
消息ID
消息的两个参数
消息产生的时间
消息产生时的鼠标位置
消息的作用
当系统通知窗口工作时,就采用消息的方式派发给窗口。

typedef struct tagMSG {
    HWND        hwnd;
    UINT        message;
    WPARAM      wParam;
    LPARAM      lParam;
    DWORD       time;
    POINT       pt;
} MSG;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/949755.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号