1.static如果下次执行函数,要保留上次的值。对于不同执行的消息起作用,就要用static保留这个值。

2.如果程序想要hInstance,那么就在WM_CREATE的时候,hInstance = ((LPCREATESTRUCT) lParam)->hInstance 。

WM_CREATE只会执行一次。

3.WM_PAINT程序下只能用BeginPaint和EndPaint。其他的不能用:GetDC(),ReleaseDC().

4.WM_SIZE每次执行的时候,都会调用InvalidRect。

/*----------------------------------------
BRICKS1.C -- LoadBitmap Demonstration
(c) Charles Petzold, 1998
----------------------------------------*/#include <windows.h>
#include "resource.h"LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)
{static TCHAR szAppName [] = TEXT ("Bricks1") ;HWND         hwnd ;MSG          msg ;WNDCLASS     wndclass ;wndclass.style         = CS_HREDRAW | CS_VREDRAW ;wndclass.lpfnWndProc   = WndProc ;wndclass.cbClsExtra    = 0 ;wndclass.cbWndExtra    = 0 ;wndclass.hInstance     = hInstance ;wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;wndclass.lpszMenuName  = NULL ;wndclass.lpszClassName = szAppName ;if (!RegisterClass (&wndclass)){MessageBox (NULL, TEXT ("This program requires Windows NT!"),szAppName, MB_ICONERROR) ;return 0 ;}hwnd = CreateWindow (szAppName, TEXT ("LoadBitmap Demo"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT,NULL, NULL, hInstance, NULL) ;ShowWindow (hwnd, iCmdShow) ;UpdateWindow (hwnd) ;while (GetMessage (&msg, NULL, 0, 0)){TranslateMessage (&msg) ;DispatchMessage (&msg) ;}return msg.wParam ;
}LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{static HBITMAP hBitmap ;static int     cxClient, cyClient, cxSource, cySource ;BITMAP         bitmap ;HDC            hdc, hdcMem ;HINSTANCE      hInstance ;int            x, y ;PAINTSTRUCT    ps ;switch (message){case WM_CREATE:hInstance = ((LPCREATESTRUCT) lParam)->hInstance ;hBitmap = LoadBitmap (hInstance, MAKEINTRESOURCE (IDM_BITMAP)/*TEXT("Bricks")*/) ;GetObject (hBitmap, sizeof (BITMAP), &bitmap) ;cxSource = bitmap.bmWidth ;cySource = bitmap.bmHeight ;return 0 ;case WM_SIZE:cxClient = LOWORD (lParam) ;cyClient = HIWORD (lParam) ;return 0 ;case WM_PAINT:hdc = BeginPaint (hwnd, &ps) ;hdcMem = CreateCompatibleDC (hdc) ;SelectObject (hdcMem, hBitmap) ;for (y = 100 ; y < cyClient - 100 ; y += cySource){for (x = 100 ; x < cxClient - 100 ; x += cxSource){BitBlt (hdc, x, y, cxSource, cySource, hdcMem, 0, 0, SRCCOPY) ;Sleep(10);}}DeleteDC (hdcMem) ;EndPaint (hwnd, &ps) ;return 0 ;case WM_LBUTTONDOWN:InvalidateRect(hwnd, NULL, FALSE/*TRUE*/);return 0 ;case WM_DESTROY:DeleteObject (hBitmap) ;PostQuitMessage (0) ;return 0 ;}return DefWindowProc (hwnd, message, wParam, lParam) ;
}

中科院-杨力祥视频教程 05课程相关推荐

  1. 《传智播客.Net培训.net视频教程》(.net视频asp.net培训传智播客asp.net视频教程开放课程c#视频移动开发winform SQL ADO.Net HTML JavaScript

    本资源重要通知 2011年4月传智播客.Net培训-免费公开课现场视频 [重磅内容]微软移动开发介绍1-早起的鸟儿有食吃.rar 详情 53.2MB [重磅内容]微软移动开发介绍2-windows.p ...

  2. 视频教程-毕业设计课程之云南大学ASP.NET名茶购物网的设计与实现-.NET

    毕业设计课程之云南大学ASP.NET名茶购物网的设计与实现 研发工程师 现任项目经理,担任几十个大型项目负责人及架构师,拥有17年互联网操作经验,13年开发经验 王翔 ¥136.00 立即订阅 扫码下 ...

  3. 中科院合肥科学技术学校05计算机,硕士研究生课程设置-中国科学院合肥物质科学研究院.PDF...

    中国科学技术大学研究生院科学岛分院 硕士研究生课程设置 中科院合肥物质科学研究院研究生处 二〇一六年七月 目录 一.课程说明1 二.各学科专业课程设置3 专业名称:材料物理与化学(080501 )3 ...

  4. 中科院计算所培训中心四季度课程安排

    从1987年成立之初至今,培训中心一如既往的秉承"科学.高效.权威.品质"的教学宗旨,以"追求卓越服务,与企业共发展"为努力目标,课程体系紧紧围绕"关 ...

  5. 中科院计算所培训中心开启课程研发新征程

    炎炎夏日,骄阳如火,中科院计算所培训中心课程研发开展得如火如荼,培训中心副校长谢新华和赵老师以挖掘名师潜力,打造优秀教师团队为目标,又一次把培训中心课程研发推向了高潮. 为了满足不同工作领域学员的需求 ...

  6. 视频教程- 1-1 课程导学和Python简介-Python干货!

    关于「课程导学和Python简介」的相关基础知识百科介绍: Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计,作为一门叫做ABC语言的替代品. Py ...

  7. 01_传智播客iOS视频教程_课程介绍与知识点回顾

    OC语法中static关键字不能修饰属性,也不能修饰方法,只能修饰方法中的局部变量.static修饰局部变量之后把局部变量变成静态变量.当方法执行完之后这个变量不会被回收.下次再执行这个方法的时候这个 ...

  8. 印制电路板(PCB)的设计流程(郭天祥视频教程)

    1mil=0.025mm 1.工程师利用EDA工具设计PCB 2.在工厂中加工制作 [双面覆铜板〉下料〉叠板>数控钻导通孔〉检验.去毛刺刷洗>化学镀(导通孔金属化)>(全板电镀覆铜) ...

  9. windows程序扫雷程序设计

    具体资源见:http://download.csdn.net/detail/zhouyelihua/7604765 在学习windows程序设计中,我们希望通过一个完整的程序来学习windows AP ...

  10. 看三屏网课视频不同步的解决方法(vga和asf)

    文章目录 问题 解决方法一(不好用) 解决方法二(舍弃) 解决方法三(通用) 总结 附录 成品代码 frmleftup.htm原本文件的源代码 问题 为了学习Windows编程,最近在看<高级W ...

最新文章

  1. 【C++】【一】结构体数组
  2. formal method里面的并发问题
  3. BZOJ1058 ZJOI2007 报表统计 线段树+平衡树
  4. .ne中的控制器循环出来的数据如何显示在视图上_让不懂编程的人爱上iPhone开发系列2 iOS12+Swift4.2版-Checklists-16...
  5. springboot 事务_第六章:springboot开启声明式事务
  6. caffe学习日记--lesson7:caffemodel可视化的两种方法
  7. 监控数据库锁阻塞_机器连接数_警报日志的shell脚本 分享
  8. bootstrap-select 插件使用详解
  9. PHP做好防盗链的基本思想 防盗链的设置方法
  10. 基于VHDL的vivado2017.4使用教程
  11. 固定时间收敛的控制器设计(基础知识)
  12. 数学建模之拉依达准则
  13. C语言函数指针和函数的首地址
  14. 2022年轨道交通行业研究报告
  15. matlab 绘制 3d 心
  16. [Violet]天使玩偶/SJY摆棋子
  17. 食物与体质 营养食谱
  18. 挖掘MOS管驱动电路的设计秘籍
  19. 交通灯管理系统分析(张孝祥老师)
  20. python 判断是不是汉字危机阅读答案_《汉字的危机》阅读答案

热门文章

  1. C语言程序设计,流程图
  2. 8、Linux下文件服务器搭建及原理讲解
  3. 小米路由老毛子 潘多拉Padavan 无线桥接中继
  4. 在Outlook 2013中发送给多个收件人时如何隐藏电子邮件地址
  5. 简约记账系统基于android,基于Android平台的手机记账系统的设计与实现
  6. Java web简单注册和登陆项目案例
  7. jsdroid 教程_南方Cass专题,全系列教程+插件汇总打包
  8. 计算从1加到该整数的值c语言,C语言编程题库与解析1.doc
  9. FP-growth算法原理解析
  10. Android 学习资料