1、系统核心编程实验 (WIN+C) 第三章 内核对象知识要点 3.1 CreateIcon 3.2 CreateFile 3.3 CloseHandle3.1 CreateIcon LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) switch (message)case WM_PAINT: hdc = BeginPaint(hWnd, / TODO: 在此添加任意绘图代码 . EndPaint(hWnd, break;3.1 CreateIcon HICON hIcon3; / ico
2、n handle hIcon3 = CreateIcon( hInst, / application instance 32, / icon width 32, / icon height 1, / number of XOR planes 1, / number of bits per pixel ANDmaskIcon, / AND bitmask XORmaskIcon); / XOR bitmask DrawIcon(hdc, 10, 20, hIcon3);3.1 CreateIcon 在创建图标时, CreateIcon()函数使用下列的原理表来 AND和 XOR位掩码: AND位
3、掩码 XOR位掩码 显示 - 0 0 黑色 0 1 白色 1 0 屏幕 1 1 屏幕的反色 / Yang icon AND bitmask BYTE ANDmaskIcon = 0xFF, 0xFF, 0xFF, 0xFF, / line 1 0xFF, 0xFF, 0xC3, 0xFF, / line 2 0xFF, 0xFF, 0x00, 0xFF, / line 3 0xFF, 0xFE, 0x00, 0x7F, / line 4 0xFF, 0xFC, 0x00, 0x1F, / line 5 0xFF, 0xF8, 0x00, 0x0F, / line 6 0xFF, 0xF8, 0
4、x00, 0x0F, / line 7 0xFF, 0xF0, 0x00, 0x07, / line 8 0xFF, 0xF0, 0x00, 0x03, / line 9 0xFF, 0xE0, 0x00, 0x03, / line 10 0xFF, 0xE0, 0x00, 0x01, / line 11 0xFF, 0xE0, 0x00, 0x01, / line 12 0xFF, 0xF0, 0x00, 0x01, / line 13 0xFF, 0xF0, 0x00, 0x00, / line 14 0xFF, 0xF8, 0x00, 0x00, / line 15 0xFF, 0xFC
5、, 0x00, 0x00, / line 16 0xFF, 0xFF, 0x00, 0x00, / line 17 0xFF, 0xFF, 0x80, 0x00, / line 18 0xFF, 0xFF, 0xE0, 0x00, / line 19 0xFF, 0xFF, 0xE0, 0x01, / line 20 0xFF, 0xFF, 0xF0, 0x01, / line 21 0xFF, 0xFF, 0xF0, 0x01, / line 22 0xFF, 0xFF, 0xF0, 0x03, / line 23 0xFF, 0xFF, 0xE0, 0x03, / line 24 0xFF
6、, 0xFF, 0xE0, 0x07, / line 25 0xFF, 0xFF, 0xC0, 0x0F, / line 26 0xFF, 0xFF, 0xC0, 0x0F, / line 27 0xFF, 0xFF, 0x80, 0x1F, / line 28 0xFF, 0xFF, 0x00, 0x7F, / line 29 0xFF, 0xFC, 0x00, 0xFF, / line 30 0xFF, 0xF8, 0x03, 0xFF, / line 31 0xFF, 0xFC, 0x3F, 0xFF; / line 32 / Yang icon XOR bitmask BYTE XOR
7、maskIcon = 0x00, 0x00, 0x00, 0x00, / line 1 0x00, 0x00, 0x00, 0x00, / line 2 0x00, 0x00, 0x00, 0x00, / line 3 0x00, 0x00, 0x00, 0x00, / line 4 0x00, 0x00, 0x00, 0x00, / line 5 0x00, 0x00, 0x00, 0x00, / line 6 0x00, 0x00, 0x00, 0x00, / line 7 0x00, 0x00, 0x38, 0x00, / line 8 0x00, 0x00, 0x7C, 0x00, /
8、 line 9 0x00, 0x00, 0x7C, 0x00, / line 10 0x00, 0x00, 0x7C, 0x00, / line 11 0x00, 0x00, 0x38, 0x00, / line 12 0x00, 0x00, 0x00, 0x00, / line 13 0x00, 0x00, 0x00, 0x00, / line 14 0x00, 0x00, 0x00, 0x00, / line 15 0x00, 0x00, 0x00, 0x00, / line 16 0x00, 0x00, 0x00, 0x00, / line 17 0x00, 0x00, 0x00, 0x
9、00, / line 18 0x00, 0x00, 0x00, 0x00, / line 19 0x00, 0x00, 0x00, 0x00, / line 20 0x00, 0x00, 0x00, 0x00, / line 21 0x00, 0x00, 0x00, 0x00, / line 22 0x00, 0x00, 0x00, 0x00, / line 23 0x00, 0x00, 0x00, 0x00, / line 24 0x00, 0x00, 0x00, 0x00, / line 25 0x00, 0x00, 0x00, 0x00, / line 26 0x00, 0x00, 0x
10、00, 0x00, / line 27 0x00, 0x00, 0x00, 0x00, / line 28 0x00, 0x00, 0x00, 0x00, / line 29 0x00, 0x00, 0x00, 0x00, / line 30 0x00, 0x00, 0x00, 0x00, / line 31 0x00, 0x00, 0x00, 0x00; / line 32 3.1 CreateIcon3.2 CreateFile HANDLE CreateFile(LPCTSTR lpFileName, /指向文件名的指针DWORD dwDesiredAccess, /访问模式(写 /读)
11、DWORD dwShareMode, /共享模式LPSECURITY_ATTRIBUTES lpSecurityAttributes, /指向安全属性的指针DWORD dwCreationDisposition, /如何创建DWORD dwFlagsAndAttributes, /文件属性HANDLE hTemplateFile /用于复制文件句柄 );3.2 CreateFile 参数列表 lpFileName String 要打开的文件的名字 dwDesiredAccess Long 如果为 GENERIC_READ 表示允许对设备进行读访问;如果为 GENERIC_WRITE 表示允许对设备进行写访问(可组合使用);如果为零,表示只允许获取与一个设备有关的信息 dwShareMode Long, 零表示不共享; FILE_SHARE_READ 和 /或 FILE_SHARE_WRITE 表示允许对文件进行共享访问 lpSecurityAttributes SECURITY_ATTRIBUTES, 指向一个 SECURITY_ATTRIBUTES结构的指针,定义了文件的安全特性(如果操作系统支持的话)