中科院-杨力祥视频教程 03课程
1.windows编程两个准则:序列 和 可识别
2.CreateWindow创建窗口在内存中,showwindow显示在显示屏上。
CreateWindow发送消息给操作系统,操作系统调用WM_CREATE,此时没有进入消息循环。
一般在WM_CREATE的时候加载动态链接库。
4.InvalidateRect()发送消息给操作系统,操作系统调用WM_PAINT消息。
5.消息分成两种:进队列,不进队列的。
6.自定义消息:WM_USER。 SendMessage();
7.双键同时按消息响应。(wParam & MK_RBUTTON)(wParam & MK_LBUTTON).
经典中的经典:Hello windows!!!!
#pragma comment(lib, "Winmm.lib")
#include <Windows.h>LRESULT CALLBACK WndProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
int WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{static TCHAR szAppName[] = TEXT("windows程序设计");HWND hwnd;WNDCLASS wndclass;wndclass.cbClsExtra = 0;wndclass.cbWndExtra = 0;wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);wndclass.hInstance = hInstance;wndclass.lpfnWndProc = WndProc;wndclass.lpszClassName = szAppName;wndclass.lpszMenuName = NULL;wndclass.style = 0;if (!RegisterClass(&wndclass)){MessageBox(hwnd,TEXT("注册窗口类失败!"),TEXT("提示"),MB_OK);return 0;}hwnd = CreateWindow(szAppName,szAppName,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);ShowWindow(hwnd,nCmdShow);UpdateWindow(hwnd);MSG msg;while (GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}return msg.wParam;
}LRESULT CALLBACK WndProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{HDC hdc;PAINTSTRUCT ps;RECT rect;switch (uMsg){case WM_CREATE:PlaySound(TEXT ("HelloWin.wav"), NULL, SND_FILENAME | SND_ASYNC);return 0;case WM_SIZE:return 0;case WM_PAINT:hdc = BeginPaint(hwnd,&ps);GetClientRect(hwnd,&rect);DrawText(hdc,TEXT("赛萌是大笨蛋"),-1,&rect,DT_SINGLELINE | DT_CENTER | DT_VCENTER);EndPaint(hwnd,&ps);return 0;case WM_LBUTTONDOWN:return 0;case WM_DESTROY:PostQuitMessage(0);return 0;default:return DefWindowProc(hwnd,uMsg,wParam,lParam);}return 0;
}
中科院-杨力祥视频教程 03课程相关推荐
- 《传智播客.Net培训.net视频教程》(.net视频asp.net培训传智播客asp.net视频教程开放课程c#视频移动开发winform SQL ADO.Net HTML JavaScript
本资源重要通知 2011年4月传智播客.Net培训-免费公开课现场视频 [重磅内容]微软移动开发介绍1-早起的鸟儿有食吃.rar 详情 53.2MB [重磅内容]微软移动开发介绍2-windows.p ...
- 视频教程-毕业设计课程之云南大学ASP.NET名茶购物网的设计与实现-.NET
毕业设计课程之云南大学ASP.NET名茶购物网的设计与实现 研发工程师 现任项目经理,担任几十个大型项目负责人及架构师,拥有17年互联网操作经验,13年开发经验 王翔 ¥136.00 立即订阅 扫码下 ...
- 陈硕《网络编程实战》03 课程内容大纲【稿】
陈硕<网络编程实战> 03 课程内容大纲[稿] 站在巨人的肩膀之上. 按照录像整理,部分专有名词不太肯定,版权归陈硕大神. 我们对TCP的基本性能有了一个大致的了解,用这个简单的dd.Ne ...
- 中科院计算所培训中心四季度课程安排
从1987年成立之初至今,培训中心一如既往的秉承"科学.高效.权威.品质"的教学宗旨,以"追求卓越服务,与企业共发展"为努力目标,课程体系紧紧围绕"关 ...
- 中科院计算所培训中心开启课程研发新征程
炎炎夏日,骄阳如火,中科院计算所培训中心课程研发开展得如火如荼,培训中心副校长谢新华和赵老师以挖掘名师潜力,打造优秀教师团队为目标,又一次把培训中心课程研发推向了高潮. 为了满足不同工作领域学员的需求 ...
- 视频教程- 1-1 课程导学和Python简介-Python干货!
关于「课程导学和Python简介」的相关基础知识百科介绍: Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计,作为一门叫做ABC语言的替代品. Py ...
- 01_传智播客iOS视频教程_课程介绍与知识点回顾
OC语法中static关键字不能修饰属性,也不能修饰方法,只能修饰方法中的局部变量.static修饰局部变量之后把局部变量变成静态变量.当方法执行完之后这个变量不会被回收.下次再执行这个方法的时候这个 ...
- 印制电路板(PCB)的设计流程(郭天祥视频教程)
1mil=0.025mm 1.工程师利用EDA工具设计PCB 2.在工厂中加工制作 [双面覆铜板〉下料〉叠板>数控钻导通孔〉检验.去毛刺刷洗>化学镀(导通孔金属化)>(全板电镀覆铜) ...
- windows程序扫雷程序设计
具体资源见:http://download.csdn.net/detail/zhouyelihua/7604765 在学习windows程序设计中,我们希望通过一个完整的程序来学习windows AP ...
- 看三屏网课视频不同步的解决方法(vga和asf)
文章目录 问题 解决方法一(不好用) 解决方法二(舍弃) 解决方法三(通用) 总结 附录 成品代码 frmleftup.htm原本文件的源代码 问题 为了学习Windows编程,最近在看<高级W ...
最新文章
- 最新中国大学排行榜:北大清华浙大竞争力列前三
- 为什么Go没有三元运算符
- IOS CoreImage实现人脸识别
- 安全专家在硬盘固件中发现NSA的网络间谍程序
- 下拉刷新:继承listView控件
- 软考信息安全工程师学习笔记三(1.3 信息安全管理基础)
- ofstream的使用方法
- Linux IO模型漫谈(4)- 非阻塞IO
- Java代码模拟实现购物车
- 算法:线性时间选择(C/C++)
- 杰奇python采集器_linux下安装杰奇,实现关关采集器远程采集详细教程
- kindle刷机ttl_[原创]只需USB线对Kindle 3修砖的小白教程
- 完美解决苹果电脑mac终端无法输入大写T的问题
- windows端口配置
- 面对垄断,互联网巨头何去何从?
- 深入理解JVM(程序编译与代码优化篇)
- 搭建LDAP服务器详细流程
- PHP MVC框架初探
- 真王服务器文件,3方位对比谁是2015级真王 唐斯vs波神各有优势
- 计算机大赛a类有哪些,A类 B类学科竞赛项目清单
热门文章
- excel2010文件转换为 dbf 格式文件
- OpenJWeb2.61 Java Web应用快速开发平台技术白皮书
- 智慧树源码_智慧树怎么查看网站源代码答案
- vue微信扫码登录过程
- Json工具 将对象转换为json格式字符串
- linux变utf8为sjis命令,在派上编译Linux版Onscripter-jh时出现问题
- 账龄分析表excel模板_华为财务EXCEL内训手册(共131套模板,带公式).xls
- Wherehows项目部署文档
- java Springboot 生成 二维码 +logo
- Tomcat 下载、安装、配置图文教程