win32 thread(线程)
摘要:main -> 主线程 每个线程都有自己的ID 每个线程都有自己的栈内存 同一个进程中的线程使用相同的地址空间 线程的调度 操作系统将CPU的执行时间划分为时间片,依次根据时间片不同执行不同的线程
阅读全文
win32 _beginthreadex()代替CreateThread
摘要:_beginthreadex();// process.h _beginthreadex();//是通过调用CreateThread()实现的,而CreateWindow存在不安全问题,_beginthreadex()对这些问题就行了处理, 因为这里涉及到一些比较更加底层的问题(内存,堆栈,就不深入
阅读全文
win32 thread sync
摘要:线程同步 OS理解,处理该thread的时间到了,即使没有处理完,也是马上走人(当机立断),但是会打标记,一会儿来了,继续做(持之以恒) 1.原子锁(原子锁只能对运算符进行操作,可以通过flag简易实现) 产生原因 多个线程对一个数据进行原子操作,就会导致结果丢失。比如 -- 或者 ++ //原子锁
阅读全文
win32 thread
摘要:main -> 主线程 每个线程都有自己的ID 每个线程都有自己的栈内存 同一个进程使用相同的地址空间 线程的调度 操作系统将CPU的执行时间划分为时间片,依次根据时间片不同执行不同的线程 创建线程(_beginthreadex()???) HANDLE CreateThread( //创建成功,返
阅读全文
win32 dll
摘要:动态库的特点 运行的时候独立存在(有自己的主函数,但是需要依附别的程序执行),是一个独立的进程,有着自己独立的空间 源码不会被link.exe(链接)到执行程序 使用的时候加载 .dll 文件包含两个部分每一个部分是文件头(存函数的 pointer[下标0,函数名字,函数指针]),一个是正文(存源码
阅读全文
win32 lib
摘要:编译链接 编译: 链接:现在自己指定的路径下面找,在磁盘的几个系统路径下面进行找(没找到,报错) 静态库 静态库运行不存在(不能够单独运行) 静态库的源码被链接(Copy)到调用程序中 目标程序的归档 C语言静态库 1. 创建静态库的项目 2. 添加库程序,源文件使用C文件 C/C++静态库的使用
阅读全文
win32 Dialog Resource
摘要:普通窗口:顶定义函数调用缺省函数 对话框(Dialog):缺省函数调用自定义函数 模式对话框:对话框显示的时候,会禁止其他窗口和用户交互(有限制) 无模式对话框:不会限制其他窗口和用户操作 对话框的基本使用 1. 窗口处理函数(windows自己写好了,需要我们定义一个给他调用) 2. 注册窗口类(
阅读全文
win32 Paint[Text]
摘要:文本绘制 没有更改过字体,是真的扎心 TextOut(); //功能最弱 INT DrawText(); //TextOut的封装 int DrawText( HDC hdc, //处理设备上下文 LPCTSTR lpString, //指向要绘制的字符串的指针 INT NCOUNT, //字符串长
阅读全文
win32 GDI Object
摘要:GDI绘图对象 //把 hGDIObj 设置给 hdc HGDIOBJ SelectObject( //返回的是原来的GDI绘图对象的句柄 HDC hdc, HGDIOBJ hGDIObj //GDI绘图对象的句柄 ); //释放我们创建的 OBJ,释放我们创建的新画笔、画刷等(释放空间) BOOL
阅读全文
win32 绘图
摘要:当使用Win32编程进行图形绘制时,通常涉及到以下函数: InvalidateRect(),绘图前必须使用 用来声明需要重绘的区域,即失效的区域。调用此函数会触发WM_PAINT消息,由GetMessage函数发出。 InvalidateRect( HWND hWnd, // 窗口句柄 CONST
阅读全文
win32 accelerator
摘要:win32的加速键和菜单栏的功能是类似的 类似Accelerator Ctrl + C 这个复制功能在右键菜单选项里面也是有的 使用可视化窗口添加资源 HACCEL LoadAccelerators( //加速加速键<表>,返回加速键<表>的句柄 HINSTANCE hInstance, //应用程
阅读全文
win32 String Source
摘要:能够很方便解决应用的中英文两种类型(所有的资源都有对应的LoadXXX) 添加字符串资源 添加字符串表,在表中字符串 字符串资源的使用 int LoadString( //成功返回字符串长度,失败返回0 HINSTANCE hInstance, UINT uID, //字符串ID[在添加String
阅读全文
win32 光标
摘要:光标的默认大小是32*32像素的。每个光标都只有一个HotSpot(表示的时候光标仅仅有一个像素点作用,其他的没作用) HCURSOR LoadCursor( HINSTANCE hInstance, // 为null的时候表示获取默认的Cursor LPCTSTR lpCursorName );
阅读全文
win 32 图标
摘要:我们需要注意图标的大小,一个图标资源中(一个.ico文件),可以有多个大小不同的图标, HICON LoadICON( HINSTANCE hInstance, LPCTSTR lpIconName ); //成功就返回HICON句柄 可以在注册窗口类的时候进行设置
阅读全文
win32 添加菜单
摘要:菜单的分类 窗口顶层菜单: 弹出式菜单(标准叫法){下拉菜单:点击窗口顶层菜单形成的的下拉菜单、右键形成的} 系统菜单:操作系统提供的,每一个程序,左上角ICON都会有 菜单是容器,装的是菜单项,每个菜单项都有自己的ID 点击菜单项会产生 WM_COMMAND WM_COMMAND[命令消息] 对于
阅读全文
win32 API SetTimer()定时器消息(类似js的SetInterval())
摘要:WM_TIMER 设置好定时器之后,会周期产生(GetMessage()产生)WM_TIMER这个消息(精度很高ms,准确性很低) wParam:定时器ID lParam:定时器的处理函数指针 创建定时器 UINT_PTR SetTimer( //UINT_PTR 64位的int,创建成功,返回 非
阅读全文
win32 API 鼠标消息简单说明
摘要:wParam : 其他按键的状态(Ctrl / Shift 等) lParam : 鼠标的位置信息LOWORD(lParam) : 水平位置 HIWORD(lParam) 垂直位置(可能是相对于屏幕的,也可能是相对于窗口的) 鼠标消息一般成对出现 down / up,鼠标移动的过程中会产生 WM_M
阅读全文
win32 各种宏说明
摘要:前缀 说明 WM_XXX msgId,系统定义的1-1023总共1024个 VK_XXX 虚拟键 WS_XXX 窗口样式 CS_XXX 窗口类的style SW_XXX Show Window nCmdShow PM_XXX PeekMessage SC_XXX System command
阅读全文
win32 API 键盘消息以及 WM_CHAR
摘要:键盘消息 分类:[ WM_KEYDOWN WM_KEYUP WM_SYSKEYDOWN 如 alt F10 WM_SYSKEYUP 如 alt F10 WPARAM : 按键的 virtual key,就是按键的键码 VK_XXX LPARAM : 按键的参数,例如按下的次数 ] WM_CHAR:
阅读全文
win32 API InvalidateRect
摘要://用来声明失效的区域,即需要重绘的区域,最终会产生 WM_PAINT->由GetMessage发出 BOOL InvalidateRect(){ //自身不产生消息 HWND hWnd, // CONST RECT* lpRect, //矩形的重绘区域 NULL:全部 BOOL bErase, /
阅读全文