Windows程序设计(1)】的更多相关文章

一.Win32 API /******************************************************************** created: 2014/04/14 15:30 filename: WinMain.c author: Justme0 (http://blog.csdn.net/justme0) purpose: Win32 API ********************************************************…
最近一直在看Charlse Petzold的<Windows程序设计>,作为一个新得不能再新的新手,只能先照着书的抄抄源码了,之前的例子一直都很正常,但昨天遇到一个很诡异的BUG. 先看实例源码吧: /*----------------------------------------------------------------- ENVIRON.C -- Environment List Box (c) Charles Petzold,1998 Copy by XXXX,2015/1/26…
#include <windows.h> #include "resource.h" LRESULT CALLBACK MyWndProc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lParam // second message parameter ); int WINAPI WinMai…
2014.05.06 新建一个visual C++ -- 常规 -- 空白 的项目,用.c后缀名指定这是一个用C语言来写的windows项目.和C语言的hellworld程序做了一个比较,按照windows程序设计规定的入口函数名称.函数参数.参数传递方式等写个入口函数,并弹出一个MessageBox.…
书签:另外跳过的内容有待跟进 __________________学习资源: <Windows程序设计第5版珍藏版> __________________知识基础支持: _________________ 跳过的内容: 1. ______________知识要点: 1: ______________注意事项: 1. ______________ 不理解知识点: 1. ______________ 进度: 1.2013-06-15 第8章 计时器 结束,接下来调整一下方向,先不看第9章子窗口控件…
本人近期在网上找到了<MFC Windows程序设计>第二版的书内程序的源代码,特意上传CSDN上面,供学习MFC的程序猿们免费下载. 源代码下载: http://download.csdn.net/detail/bboot/7486011 还有该书的电子版下载地址: http://download.csdn.net/detail/bboot/7490781…
看windows程序第五章GDI编程部分.一直卡壳在这里了. 下面我来说下自己的想法.看是否对您有帮助. 首先我们来看一个图. SetPolyFillMode(ALTERNATE);  // 系统默认就是这种填充模式 如图所示:数字代表绘制图形点的先后次序. 现在.我们先从外面假设来一条射线,(当然了.我看到很多文章.说的都是屏幕水平方向的扫描线.) 对于这种模式.射线穿过奇条边框线时,则填充该边框线区域,穿过偶数条边框线时,则不填充. 大家对照上图的射线.很简单的就理解了“ALTERNATE”…
大家好,非常高兴和大家一起分享Windows开发心得,Windows已经诞生很多年了,一直因为它的简单易用而深受欢迎,相信很多人在使用Windows的时候,一定有这样一个想法:希望自己将来可以写一个很受欢迎的Windows程序,像QQ,迅雷,鲁大师一样,深受大家喜爱的软件,无论你的初衷是什么,我都会满足你的愿望,用最简单易懂的方式,带领大家走入Windows编程的魔幻世界,为大家插上理想的翅膀. 今天,我们先来简单介绍一下Windows程序设计的相关知识,为后面内容的介绍奠定基础.在Window…
愉快的开始 让编程改变世界 Change the world by program  参考教材 购买链接:Windows程序设计(第5版)(珍藏版)(附CD-ROM光盘1张)  学习环境 视频演示:WIN8 + VS2013Express 最低要求:XP + VC6 学习要求 1. 需要有C语言的基础: 2. 知道或者听说过数据结构是编程的内功心法,对于写出好程序很重要: 3. 懂得光看不练等于零这个道理. 教学安排 0. 课后作业 1. 扩展阅读 2. 知识点备忘 3. 典型案例分析 4. 阶…
学习Windows程序设计也有一些时间了,为了记录自己的学习成果,以便以后查看,我希望自己能够坚持写下一系列的学习心得,对自己学习的内容进行总结,同时与大家交流.因为刚学习所以可能有的地方写不不正确,希望大家能够指出. 在学习了一定的Windows API后我决定进入到一些基础的学习,希望能够学习一些原理性的知识,能够做到知其然的同时知其所以然.为了达到这个目的,这段时间我学习了一些计算机的基础知识,在这写下这篇博客,总结一下. 在早期的16位8086CPU中我们使用段与段内的偏移偏移的方式寻址…
刚开始学习Windows程序设计,磕磕碰碰,先做个小笔记缓缓神经,主要是将MessageBox这个Windows API函数的. MessageBox函数是许多人刚开始学习Windows程序设计或者是Windows API遇到的第一个内置函数,这个函数使用的方式是: MessageBox(NULL, TEXT("弹出框内容"), TEXT("标题"), MB_OK); 初次之外,它还有几个姐妹: MessageBoxA(NULL, "弹出框内容"…
Windows程序设计(第5版) windows程序需要调用API. 第一个Windows程序 /*HelloMsg.c -- Displays "Hello World!" in a message box*/ #include <Windows.h> int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int n…
CPU保护模式与Windows系统 1 Windows多任务 2 虚拟内存 3 处理器的特权级别 内核对象 1 内核对象有什么用 2 对象句柄 3 使用计数 1 CPU保护模式与Windows系统 80386的CPU有3种工作模式:实模式.保护模式.和虚拟86模式.其中实模式和虚拟86模式是为了兼容8086CPU而设置的.保护模式是其主要的工作模式.Windows操作系统就运行在保护模式,而保护主要指的就是对存储器(内存和寄存器)的保护,意味着对存储器的读写是受限制的. 1.1 Windows多…
Windows程序设计之前 1 做什么 2 解决什么问题 3 有哪些资源 在开始真正的编程之前,需要了解要做的事情是什么,要解决的解决的问题是什么,有哪些资源可以使用. 1 Windows程序设计之前 1.1 做什么? 我们要在Windows平台上来写程序,使用Win32 API不是唯一的方法,但确是必经之路. 1.2 解决什么问题 多数人开始接触Windows编程时,是从Visual Basic开始的,然后MFC,虽然写一些软件和程序,但可能还不清楚程序是如何运行的.从而造成程序的维护特别难.…
在看雪论坛上看到的一个帖子,很喜欢,转载一下.原文地址:http://bbs.pediy.com/showthread.php?t=138630哆啦A梦是画出来的,不知道作者算这些坐标位置算了多久,真的很犀利.记得原来看<Windows程序设计>的时候,每次看到GDI都不是很理解,也没有仔细去研究.现在编程也很少与GDI打交道,还是等以后有空了在深入了解一下吧.把这个代码转载一份到博客,以后再回头研究一下.顺便贴一下程序运行后的截图:(很酷吧~~~)字数补丁~代码疯子~程序人生~字数补丁~代码…
坚持与妥协 从学程序的第一天老师就给我们说源代码应该使用utf8保存.因为先入为主,"源代码应该使用utf8"的观念已经在"学院派"出身的程序员脑子里根深蒂固.如果您固执地坚持自己的信仰,坚信源代码应该并且只应该用utf8保存,决不向任何工具或者人妥协!那么恭喜您,可以看看这个文章. VS2013及以前 utf8是unicode的一种实现方式.windows95及以前,还没有unicode,更没有utf8.所以在windows95及以前微软自己定义了一套解决多国语言…
<Windows程序设计>(第五版)(美Charles Petzold著) #include<windows.h> LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdline,int iCmdShow) //第一个参数是实例句柄,在Windows程序中,句柄就是一个数值,程序里用它来标志…
本文整体目录和绝大部门内容来自 [鸡啄米网站]的MFC系列文章,欢迎支持原创 (一)VS2010/MFC编程入门之前言 VC++全称是Visual C++,是由微软提供的C++开发工具,它与C++的根本区别就在于,C++是语言,而VC++是用C++语言编写程序的工具平台 VC++不仅是一个编译器更是一个集成开发环境,包括编辑器.调试器和编译器等,一般它包含在Visual Studio中 因为VC++ 6.0以后的版本不再有独立的安装程序,所VC++ 6.0以后的版本不叫VC++ 7.0等等,而是…
知识点 双字节字符集和Unicode字符集有何区别?采用双字节字符集有何问题 双字节字符集(DBCS)编码是0-255,DBCS含有1字节代码与2字节代码,而Unicode是统一的16位系统,这样就允许表示 65536个字符.Unicode中的每个字符都是16位宽而不是8位宽.在Unicode中,8位二进制表示一个数值已没意义,而在双字节字符集中仍然 处理8位数值. 双字节字符集并不是所有字符由两个字节代表,这会引起附加的程序设计问题,例如字符串的长度计算.而且处理双字节字符集非常复杂. 什么叫…
/* 本程序测试自定义的WinMainCRTStartup函数 */ #define STRICT #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <tchar.h> #include <assert.h> //PIMAGE_DOS_HEADER void CenterText(HDC hDC,int x,int y,LPCTSTR szFace,LPCTSTR szMessage,int point)…
第四章 文本输出 1,客户区:整个应用程序窗口中没有被标题栏.边框.菜单栏.工具栏.状态栏和滚动条占用的区域.简而言之,客户区就是窗口中程序可以在上面绘制并向用户传达可视化信息的区域.   2,大多数Windows程序在WinMain函数初始化过程中会在进入消息循环之前调用UpdateWindow函数,Windows利用这个机会向窗口过程发送最初的WM_PAINT消息,这个消息通知窗口过程绘制客户区. 以下任何一个事件发生时,窗口过程都会收到一条WM_PAINT消息 用户移动窗口,导致原来被覆盖…
    第三章 窗口与消息 1,windows窗口过程:应用程序所创建的每一个窗口都有一个与之关联的窗口过程,用于处理传递给窗口的消息. 2,窗口依据窗口类来创建.窗口类标识了用于处理传递给窗口的消息的窗口过程.窗口类的使用允许多个窗口共享一个窗口类,因而多个窗口可以使用相同的窗口过程. 3,Windows程序开始执行的时候,Windows首先为该程序创建一个消息队列.该消息队列中存放着应用程序可能创建的所有窗口的消息.Windows应用程序中一般包含一小段称为"消息循环"的代码,该段…
第二章 Unicode简介 1,Windows通过双字节技术DBCS解决这个问题,代码页定义不同的字符集,称为ANSI字符集,比如日文为CP932,韩文为CP949,繁体中文为CP950,简体中文为CP936 2,Unicode使用双字节,并且为一个字符集,解决二义性的问题 3,Unicode宽字符使用wchar_t声明,为两字节,并且字符或者字符串常量前应该加L 4,为了统一源代码中不同字符集的字符处理函数,使用头文件tchar.h 如:_tcslen,_tprintf,以及__T(),_T(…
第一章 起步 1,windows主要的三个动态库: kernel32.dll负责操作系统的传统工作,包括内存管理.文件输入以及任务管理等. user32.dll负责用户界面的操作,即所有窗口的管理 gdi32.dll为图形设备接口,负责在屏幕或者打印机上显示文本与图形   2,当windows程序运行的时候,通过一个叫做"动态链接(dynamic linking)"的进程与Windows接口.每个Windows的exe文件包含它所要用到的各个动态链接库以及库中的函数的引用地址,当一个W…
#include <windows.h> #include "resource.h" LRESULT CALLBACK MyWndProc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lParam // second message parameter ); int WINAPI WinMai…
#include <windows.h> LRESULT CALLBACK MyWndProc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lParam // second message parameter ); int WINAPI WinMain( HINSTANCE hInstance, HINSTANC…
#include <windows.h> int WINAPI WinMain(HINSTANCE hinstabce, HINSTANCE prvhinstace, PSTR icmdLine, int cmdShow) { int i=0; for(; i<10; i++) MessageBox(00,TEXT("你完了,世界第一的病毒\n电脑已挂,请重装系统吧!"),TEXT("我是病毒"),4); return 0;}…
最近在Window程序设计第五版,刚看到第三章,第三章中有一个程序调用了一个多媒体对象库winmm.lib库,由于该库不再默认项目中,如果不手动添加,编译时会提示错误而无法运行,但是书上用的是Visual C++编译器,我使用的是VS2012,这就让我不知道如何按照书上的方法添加库文件了,鼓捣了好大一会儿,才搞定了这个库文件的添加,额--记录一下,希望别人遇到这个问题了,可以快速解决: 在将代码敲入到VS2012后,Ctrl+F5运行后提示如下错误: 无法解析的外部命令,这里是PlaySound…
看Windows程序有段时间了,终于动手写东西.贪吃蛇算是一个开始吧,下面的贪吃蛇很简单,也有很多地方需要修改,还有情况没有考虑QAQ 但这不是我的目的了... 思路很简单:建个链表储存蛇身节点即可. #include <windows.h> #include <time.h> #define ID_TIMER 1 #define TIMERSET 600 ; int flag,tempx,tempy, foodx,foody,key;//运动方向,食物坐标,标记 ][]; boo…
Windows编程中的若干难点 让编程改变世界 Change the world by program 一个窗口的生与死 我记得有童鞋会问:如果我的程序需要在关闭前让用户判断是否确定要关闭窗口,我应该响应哪个消息呢?响应WM_DESTROY消息吗? ..... 此处省略N多内容,具体请看视频讲解 ...... 究竟是谁调用了谁 在传统的C语言中,我们需要程序实现什么功能,我们就去直接调用相应的函数来完成.例如需要打开文件,那么我会调用fopen函数,需要打印到显示器,我们调用printf函数.…