1.窗口的本质 :GUI GDI
ntoskrnl.exe 和Win32K.sys 两个文件最重要,Kernel32.dll只是提供一个接口;真正的实现都在内核
HANDLE 是私有句柄表的一个索引;
HWND 窗口句柄 是全局句柄表的一个索引;所有进程共用;
2.GDI 图形设备接口
1.设备对象(HWND)
2.DC(设备上下文,Device Contexts)
3.图形对象
//射击游戏可以根据人物坐标来进程画框
1 // 窗口的本质.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include <windows.h> 6 7 int main() 8 { 9 HWND hwnd; 10 HDC hdc; 11 HPEN hpen; 12 //1,设备对象 画在哪 13 hwnd = (HWND)0x000E0244; //画在哪个窗口上 14 15 //2.获取设备对象上下文 16 hdc=GetDC(hwnd); 17 18 //3.创建画笔来设置线条属性 19 hpen = CreatePen(PS_SOLID, 4,RGB(0xFF,00,00)); 20 21 //4.关联 22 SelectObject(hdc, hpen); 23 24 //5.开始划线 25 LineTo(hdc, 400, 400); 26 27 //6.释放资源 28 DeleteObject(hpen); 29 ReleaseDC(hwnd,hdc); 30 return 0; 31 }
窗口都是画出来的,而且是一个不停画的过程!