win32 原理
来源:互联网 发布:linux 查看服务器型号 编辑:程序博客网 时间:2024/05/17 04:06
Windows其内部运行原理是一种事件驱动方式的程序设计模式,主要是基于消息的。当用户需要完成某种功能时会调用操作系统的某种支持,然后操作系统将用户的需要包装成消息,并投递到消息队列中,最后应用程序从消息队列中取得消息并进行响应。
1.消息(Message)是描述事件发生的信息,它是对象之间发出的行为请求。
2.多个消息构成一个事件(Event)。
Windows程序中产生的任何资源(要占用某一块或大或小的内存),如图标、光标、窗口和应用程序的实例(已加载到内存运行中的程序)等。操作系统每产生一个这样的资源时,都要将它们放入相应的内存,并为这些内存指定一个唯一的标识号。这个标识号即是该资源的句柄。
操作系统要管理和操作这些资源,都是通过句柄来找到对应的资源。按资源的类型,又可将句柄细分成图标句柄(HICON),光标句柄(HCURSOR),窗口句柄(HWND),应用程序实例句柄(HINSTANCE)等等各种类型的句柄。操作系统给每一个窗口指定的一个唯一的标识号即窗口句柄。
1.设计一个窗口类;
2.注册窗口类;
3.创建窗口;
4.显示及更新窗口。
//创建窗口类并注册窗口类
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc= WndProc;
wcex.cbClsExtra= 0;
wcex.cbWndExtra= 0;
wcex.hInstance= hInstance;
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINMAIN));
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground= (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName= MAKEINTRESOURCE(IDC_WINMAIN);
wcex.lpszClassName= szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
return RegisterClassEx(&wcex);
}
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc= WndProc;
wcex.cbClsExtra= 0;
wcex.cbWndExtra= 0;
wcex.hInstance= hInstance;
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINMAIN));
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground= (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName= MAKEINTRESOURCE(IDC_WINMAIN);
wcex.lpszClassName= szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
return RegisterClassEx(&wcex);
}
创建窗口并显示
hInst = hInstance; // 将实例句柄存储在全局变量中
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
if (!hWnd)
{
return FALSE;
}
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
if (!hWnd)
{
return FALSE;
}
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
0 0
- win32 原理
- Win32调试API原理
- Win32调试API原理
- Win32消息运行原理
- Win32调试API原理
- win32 debug api 原理
- win32程序运行原理
- Win32调试API原理
- Win32调试API原理
- tcmalloc win32原理
- Win32调试API原理
- Win32 PE病毒原理分析
- Win32 PE病毒原理分析
- 第二章 Win32程序运行原理
- Win32 临界区实现原理浅析
- Win32环境下dll编程原理(转载)
- Win32环境下dll编程原理
- Win32环境下dll编程原理(转载)
- temp---
- 微信商城新手入门
- linux C++学习之路
- Windows文件系统
- DRAM内存原理(四)同步内存和异步内存技术
- win32 原理
- 在对象之间搬移特性---搬移函数
- 夫妻两有厦门户口本,但是父母是外地户口并且没有厦门社保卡,改如何登陆鼓浪屿呢?
- POJ 2367 Genealogical tree 拓扑排序
- Delph-- 关闭程序后托盘图标显示
- iOS 删除故事模板,添加新的窗口及视图
- 六款常用的linux C/C++ IDE
- Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果
- ubuntu桌面显示宿主目录里的内容的解决办法