Windows程序设计基础(1)
来源:互联网 发布:什么软件可以涂鸦照片 编辑:程序博客网 时间:2024/06/05 18:23
窗口程序创建的过程
- 创建窗口类
WNDCLASS wndclass;
- 注册窗口类
RegisterClass(&wndclass);
- 创建窗口
hwnd = CreateWindow(...);
- 显示窗口
ShowWindow(hwnd,iCmdShow);
- 更新窗口
UpdateWindow(hwnd); //产生第一条WM_PATINT消息
- 消息循环
while(GetMessage(&msg,NULL.0.0)) //获取消息,只要消息类型不为WM_QUIT,返回值是非零值{ TranslateMessgae(&msg); //翻译消息 DispatchMessage(&msg); //分发消息到窗口过程}
- 窗口过程
窗口过程在处理消息时,必须返回0。窗口过程不予处理的所有消息应该被DefWindowProc函数处理
LRESULT CALLBACK WinProctor(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam);
SendMessage(...);//程序可以直接调用自己的窗口过程
总结:窗口过程与一个窗口类相关联,窗口类是程序调用RegisterClass注册的。基于该类创建的窗口使用这个窗口过程来处理窗口的所有消息。Windows通过调用窗口过程来给窗口发送一个消息
窗口消息
WM_PAINT
该消息使得客户区域重绘,以下几种情况会导致客户区域重绘,即产生WM_PAINT消息。
1、UpdateWindow(hwnd);
2、放大或者是缩小窗口(窗口类风格具有CS_HREDRAW,CS_VREDRAW)。
3、窗口最小化后,再复原。
4、窗口被其他窗口覆盖后,再复原。
5、使用ScrollWindow或ScrollDC函数滚动客户区的一部分。
6、使用InvalidateRect或InvalidateRgn函数显示产生WM_PAINT消息。WM_DESTROY
该消息使得窗口清除关闭。一般在获取该消息后,添加PostQuitMessage(0); 即,在消息队列中添加一条WM_QUIT消息。上文提到,消息循环中当遇到WM_QUIT消息后,就退出循环,结束程序。
1 0
- Windows程序设计基础(1)
- Windows程序设计基础(变量)
- 第一章 Windows程序设计基础
- Windows程序设计基础
- Windows 程序设计基础
- Windows程序设计基础总结
- windows程序设计:图形基础
- Windows程序设计之图形基础
- windows程序设计读书笔记(1)
- Windows程序设计 学习(1)
- Windows程序设计读书笔记(1)
- Windows程序设计笔记(1)
- WINDOWS程序设计 复习(1)
- Windows 程序设计(1):起步
- Windows程序设计 读书笔记(1)
- Windows应用程序设计基础(一)句柄&消息
- 《Windows程序设计》读书笔记------------->>GDI的简单基础<<
- windows程序设计的最基础内容
- Intel VTune 访存分析
- 输出集合{1,2,...,n}的所有子集
- Android 中用HttpClient进行网络数据加载时,得到String乱码的问题
- 订单系统、库存系统、优惠券系统如何保证数据一致性
- 括号序列
- Windows程序设计基础(1)
- Java学习笔记
- 异常捕获机制中的return
- 网线的直连线与交叉线之间的区别
- java与java web学习浅谈
- NKOI 1228 丛林道路
- 能量项链
- 公钥与私钥&数字签名与数字证书
- Error:Execution failed for task ':app:mergeDebugResources'