《Windows程序设计》读书笔记之六

windows程序设计笔记 WINAPI标识符在WINDEF.H中定义:define WINAPI __stdcall该语句制订了一个调用约定,包括如何生成机器代码以及在堆栈中放置函数调用的参数, 1:1)在Win32API中,长指针和短(近)指针是没有区别的,这只是16为Windows的遗物2):wndclass.lpfnWndProc=WndProc; 这条语句将这个窗口类类的窗口过程设置为WndProc,这个 阅读详情

键盘

                                                                                    见钱眼开 于2005-4-25

       Windows程序获得键盘输入的方式:键盘输入以消息的形式传递给程序的窗口过程。

       当按下键盘上的键时,只有一个窗口能够接收键盘消息。接收键盘消息的窗口具有输入焦点,有输入焦点的窗口是活动窗口或活动窗口的派生窗口。只有顶极窗口才可以是活动窗口。

       如果活动窗口有标题栏,Windows将突出显示标题栏;如果活动窗口具有对话框而不是标题栏,Windows将突出显示框架;如果活动窗口最小化,Windows在任务栏中突出显示该项。

       窗口过程通过捕获WM_SETFOCUS和WM_KILLFOCUS消息来判断它的窗口何时拥有输入焦点。

       当用户按下或释放键盘上的键时,Windows和键盘驱动程序将硬件扫描码转换为格式消息并保存在“系统消息队列”中。只有当Windows应用程序处理完前一个用户输入消息时,Windows才会从系统消息队列中取出下一个消息,并将其放入应用程序消息队列。

       键盘事件消息可以分为“击键”和“字符”两类。对于可以显示字符的击键组合,Windows不仅向程序发送击键消息,还发送字符消息。有些键不产生字符,这些键包括shift键、Fn功能键、光标移动键和特殊字符如Insert和Delete。

       击键消息包括WM_KEYDOWN、WM_KEYUP、WM_SYSKEYDOWN、WM_SYSKEYUP四种类型。WM_KEYDOWN和WM_KEYUP消息通常是在按下或释放不带Alt键的键时产生;WM_SYSKEYDOWN和WM_SYSKEYUP消息通常由与Alt组合的击键产生,这些键激活程序菜单或系统菜单上的选项,或切换活动窗口,也可以用作系统菜单加速键。由于Windows处理所有Alt键的功能,应用程序无需捕获这些消息。对于4类击键消息,wParam是虚拟键代码,代表按下或释放的键,而lParam包含击键的其他数据。如果按住一个键不放使得自动重复功能生效,那么该键最后被释放时,Windows会给窗口过程发送一系列的WM_KEYDOWN(或WM_SYSKEYDWON)消息和一个WM_KEYUP(或WM_SYSKEYUP)消息。

       真实的键码是由物理键盘硬件产生。这些键码被称之为“扫描码(Scan Codes)”。虚拟键码是以与设备无关的方式处理键盘。大多数虚拟键码名称在WINUSER.H头文件中都定义为以VK_开头。具体定义列表可以参考msdn文档。

       Backspace、Tab、Enter、Escape和SpaceBar等键操作在Windows中通常以字符消息(而非击键消息)处理。

       数字和字符的虚拟键码正好是ACSII码。

       下图是击键消息中lParam消息参数的含义:

重复计数(Repeat Count) 0-15

       重复计数是该消息所表示的击键次数。大多数情况下,重复计数设置为1。如果在一个击键消息处理前有多次按下该键,则增加重复计数。WM_KEYUP或WM_SYSKEYUP消息的重复计数总为1。

       OEM扫描码(Scan Code)16-23

       表示由硬件(键盘)产生的代码。

       扩展键标志(Extended Key Flag) 24

       如果击键结果来自IBM增强键盘的附加键之一,那么扩展键标志为1。现在我们使用的键盘一般都是属于IBM增强键盘。对于键盘右端的Alt和Ctrl键,以及非数字键盘上的光标移动键(包括Insert和Delete键)、数字键盘上的斜杠(/)、Enter、Num Lock键,该标志均置1。

       环境代码(Context Code)29

       环境代码在按下Alt键后为1。对于WM_SYSKEYDOWN和WM_SYSKEYUP消息,这一位总是1;对于WM_KEYUP和WM_KEYDOWN消息,这一位总是0。

l         如果活动窗口最小化,那么它将没有输入焦点。这时所有击键都产生WM_SYSKEYDOWN和WM_SYSKEYUP消息。如果Alt键未被按下,环境代码则为0。

l         一些国家键盘,有些字符通过Shift、Ctrl或Alt键与其他键产生。此时环境代码为1,但此消息并非系统击键消息。

键的先前状态(Previous Key State)30

       如果在此之前键是释放的,键的先前状态为0,否则为1。对于WM_KEYUP或WM_SYSKEYUP消息,它总是为1;对于WM_KEYDOWN或WM_SYSKEYDOWN消息,可以是0,也可以是1。

转换状态(Transition State)31

键被按下时该位为0;键被释放时为1。

 

       GetKeyState函数并非实时检查键盘状态,它只是检查当前正在处理的消息发生之前和发生之时的键盘状态,它是通过读取消息队列中该键的按键消息来实现的。

GetAsyncKeyState函数通过实时检查键盘硬件状态返回结果。

不要自以为是的通过击键消息来获取字符!!!

       字符消息可以分为四类:WM_CHAR和WM_DEADCHAR消息是从WM_KEYDOWN得到;而WM_SYSCHAR和WM_SYSDEADCHAR消息是从WM_SYSKEYDOWN得到。

       wParam参数值不再是虚拟键码,而是Ansi或unicode字符代码。lParam参数值和击键消息相同。

       WM_CHAR消息在产生字符的击键消息WM_KEYDOWN和WM_KEYUP之间被处理。

如果一直按住A键,将自动重复产生一系列的击键,那么对于每个WM_KEYDOWN消息,都会相应产生一个字符消息。

       ’/b’字符表示退格;’/t’字符表示跳格;’/n’表示换行;’/r’表示回车。

       在某些非U.S.英语键盘上,有些键用于给字母加上音调。它们本身不产生字符,所以称之为“死键”。按下死键时,窗口过程会收到一个wParam等于音调本身的ACSII或Unicode代码的WM_DEADCHAR消息。再按下带有此音调的字母键时,窗口过程会收到WM_CHAR消息,其中wParam等于带有音调的字母“a”的Ansi代码。

       TrueType字体时定义了填充区域的字符轮廓字体。TrueType字体可以缩放。在位图字体中,每个字符都定义为与视频显示器上的象素对应的位点阵。Windows系统字体即为位图字体。

       改变键盘布局时,Windows会向活动窗口发送一个WM_INPUTLANGCHANGE消息,wParam参数代表新键盘布局的字符集ID。

       输入文本时,通常有一个下划线、竖条、或方框来指示输入的下一个字符将出现在屏幕的位置。Windows中称之为“插入符”。

       有关“插入符”的函数:

       CreateCaret                  创建与窗口有关的插入符

       SetCaretPos                  在窗口中设置插入符的位置

       ShowCaret                   显示插入符

       HideCaret                     隐藏插入符

       DestroyCaret                销毁插入符

       GetCaretPos                 获取插入符位置

       GetCaretBlinkTime        获取插入符闪烁时间间隔

       SetCaretBlinkTime         设置插入符闪烁时间间隔

       因为一个消息队列只能支持一个插入符。因此不可以在窗口的WM_CREATE和WM_DESTROY消息中创建和销毁插入符,而应该在WM_SETFOCUS和WM_KILLFOCUS消息中创建和销毁插入符。

       插入符创建时隐藏的,必须调用ShowCaret函数显示。非WM_PAINT消息期间,如果要在窗口绘制内容,应该隐藏插入符。

MFC Windows程序设计 读书笔记1 MFC 阅读详情

相关推荐

《Windows程序设计》读书笔记之二——输出文字与滚动条使用

8. 输出文本:        客户区是整个应用程序窗口中未被标题栏、串口边框以及可选菜单栏、工具栏、状态栏和滚动条占据部分。简言之,客户区是窗口中可以由任意书写和传递可是信息的部分。        尽管可以创建固定大小的窗口,但是多数情况下用户应该能够改变应用程序窗口的大小。您的程序必须能够接受指定给它的大小,并且合理地利用这一空间。        两种可能:一种是程序只有仅能显示“hel

Fly Follow the Heart 3024

《Windows程序设计》读书笔记之

最近有幸拜读了Charles Petzold的大作《Windows程序设计》,真有种相见恨晚的感觉。这是一本1999年出版、主要讲述在Windows平台下如何使用C语言调用API函数进行软件开发的老书。在当今RAD工具充斥市场的今天,该书依然是新手从事Windows下软件开发入门的不二之选。本人从事Windows平台软件开发已近三年,Windows相关的书籍和文档也阅读过不少,直到接触该书之后,好

1013

二维卡尔曼滤波位置,速度融合

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

Johnlee2019的博客 8451

windows程序设计 读书笔记一

    近日闲来无事,有一小小创意,待打开VC6.0,竟灵感全无,无从下手,手生如斯耳,两年来俗物缠身,毫无长进,痛何如哉,遂拾起一书> Charles Petzold 著,欲详加阅读阅读,但求恢复功力,以求精进。     读此书前,先将作者生平介绍如下(学生多年养成的习惯):Charles Petzold   【个人简介】   Charles Petzold 是Windo

snow_river的专栏 600

AXI Timer IP核使用说明

AXI Timer是提供定时技术功能的集成IP核,具有时间生成、事件捕获、产生PWM波以及产生中断的功能,下面具体讲述Timer IP核的使用说明。

weixin_43418104的博客 2489

HighScore3.0实战指南:XRD物相分析从入门到精通(持续更新版)

本文提供HighScore3.0软件进行XRD物相分析的完整实战指南。从软件设置、数据导入、背景扣除、寻峰等预处理步骤,到核心的Search & Match物相搜索匹配、Rietveld精修定量,以及结果输出与常见问题排查,系统讲解了从入门到精通的全流程操作与核心技巧,帮助用户高效完成材料物相鉴定与分析工作。

weixin_29310605的博客 1045

MFC Windows程序设计读书笔记

 前言:        这个笔记是去年看这本书的时候记下的,一直仍在电脑里,后来也没看过,今天春节后上班无意间发现了,遂整理出来,方便以后查阅.  第8章: 非模式对话框创建 显示 销毁:1.m_pDlg=new CMyDlg;pDlg->Create(IDD_MYDLG);pDlg->ShowWindow(SW_SHOW);2.销毁时在PostNcDestroy中调用

郁郁 2195

一条龙开发指南:MCP AI Agent 理论+项目实战开发你的MCP Server

MCP(Model Connection Protocol)是Anthropic于2024年推出的AI模型连接协议,旨在为AI模型提供开放、通用的标准化接口,类似于“USB-C”接口,使AI模型能够无缝连接各种数据源和工具。MCP通过标准化协议解决了AI系统集成中的碎片化问题,提升了开发效率和系统可靠性。开发者可以通过简单的配置,快速接入不同的MCP Server,实现AI模型的多样化应用。MCP支持多种协议,如Stdio、SSE等,并通过JSON-RPC格式进行数据传输。文章还以腾讯云代码助手为例,展示了

杨不易呀 3046

《Windows程序设计》读书笔记之一

开始      最近有幸拜读了Charles Petzold的大作《Windows程序设计》,真有种相见恨晚的感觉。这是一本1999年出版、主要讲述在Windows平台下如何使用C语言调用API函数进行软件开发的老书。在当今RAD工具充斥市场的今天,该书依然是新手从事Windows下软件开发入门的不二之选。本人从事Windows平台软件开发已近三年,Windows相关的书籍和文档也阅读过不少,

见钱眼开(jqyk^_^)的专栏 2077

Explorer.exe系统错误,电脑重启后刚开始一段时间正常,过一会桌面任务栏就卡死,可以打开任务管理器

联想E14Win10专业版。

本博客,博文仅代表个人操作经验,不能完全解决你的问题,仅供参考,佛系回复。 8053

手把手教你学Simulink——基于自动驾驶辅助系统的场景实例:车道保持辅助系统(LKA)的仿真与实现

本文通过Simulink实例讲解车道保持辅助系统(LKA)的实现方法。首先介绍LKA从预警到主动控制的技术演进,阐述其系统架构、核心组件和工作原理。重点演示基于自行车模型的车辆横向动力学建模过程,以及使用线性二次调节器(LQR)设计横向控制器的详细步骤。教程包含四个仿真场景测试,分析关键指标如控制精度、舒适性和响应性。最后探讨LKA技术的发展方向,强调人机协同的安全理念。该实例为自动驾驶辅助系统开发提供了完整的Simulink实践方案。

MHD0815的博客 182

windows程序设计读书笔记(Windows的思维方式)

 windows程序设计读书笔记(Windows的思维方式)早起无事,随便上网看看. 今天谈谈我所理解的Windows的思维方式,或者说设计思路. 昨天终于看到了对话框这个章节,第11章,回顾前段时间所学,深有感触. Windows程序设计这本书的章节设计是非常用心的,一个层次一个层次向前推进,逐步打开windows程序设计的各个不同层次和不同内容,后一章节往往在前一章节的基础上进行引申发

536

RK3588 固定hdmiin的dev/videoX节点

RK3588 固定hdmiin的dev/videoX节点

目前从事linux驱动开发,多交流多学习吧 2050

Windows程序设计读书笔记(合集)

今天整理整理我的Blog,看到Windows程序设计读书笔记很久没有更新了,惭愧惭愧. 零散的blog太过混乱,今天下决心整理整理. 把以前写的blog整理到一个合并好的读书笔记里面来,可能会好点. 下面是目录. Windows程序设计读书笔记(用VB调用API创建窗口) 2 windows程序设计读书笔记(VB调用API之二) 7 windows程序设计读书笔记(过去几年走弯路了) 8 wind...

weixin_33923148的博客 141

nRF52832——大量数据传输时导致蓝牙断开连接,且无法被搜索到的解决方案(广播参数的设置、程序设计方法)

有时蓝牙通信单次发送数据量较大,且连续发送多次的时候,你会发现蓝牙就会出现异常,可能运行30min,40min,或者1h后,蓝牙就不能传输数据了,且无法被搜索到,用主机扫描蓝牙时可能会提示类似这样的DEBUG信息:bta_gattc_mark_bg_conn unable to find the bg connection mask for bd_addr=xx:xx:xx:xx:xx:xx。

数字世界 万物互联 2006

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

《Windows程序设计》读书笔记

第三章   窗口和消息 自己的窗口:CreateWindow的第一个参数就是所谓的窗口类别名称,并且该窗口类别连接所谓的窗口消息处理程序。 大写字母标识符 :  读者可能注意到,HELLOWIN.C中有几个大写的标识符,这些标识符是在Windows表头文件中定义的。有些标识符含有两个字母或者三个字母的前缀,这些前缀后头接着一个底线:  CS_HREDRAW   DT_VCENTER  SN

xlm289348的专栏 1019

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

《Windows程序设计》读书笔记之开始

1.古典Windows程序设计:用C语言撰写并原原本本的使用Windows API来开发程序2.MSDN中平台 SDK是整个MSDN知识库中较为晦涩的部分,但那是Windows程序设计的基本核心3.Windows的三个主要子系统:Kernel、User和GDI4.虽然我认为学习古典的Windows程序设计对任何Windows程序写作者都是重要的,我没有必要建议使用C和API编写每个Wi

人生如棋 1172

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

读书笔记《Windows程序设计》

第一章:起步 1.1 Windows环境 P6:所有GUI都用位图视频显示器显示图形 P7:一个操作系统如果没有内存管理就不能实现多任务 P7:windows工作原理的中心思想就是动态链接的概念 P8:3个主模块。1:内核:负责操作系统的那些传统工作,包括内存管理、文件输入/输出及任务管理等。2:用户:指的是用户界面,负责所有的窗口管理。3:GDI:就是图形设备接口,负责在屏幕或者打印机

HYCANYE 1114

《windows 程序设计》读书笔记 三

调用 CreateWindow 函数:CreateWindow 函数的第一个参数称为 “窗口类名称”,而窗口类又与一个称为 “窗口过程” 的东西关联在一起。进行 Windows 程序设计时,其实就是在进行一种面向对象的编程,在 Windows 环境下接触最频繁的对象就是窗口(window)。装饰桌面最明显的窗口莫过于应用程序窗口,这些窗口包含一个显示有程序名称的标题栏、一个菜单栏。可能还带一个工具栏 (toolbar) 和一个滚动条 (scrollbar) 。另外一种类型的窗口是对话框,这种窗口可以不带标题

沐一 · 林 的博客 1834

windows程序设计读书笔记(准确的翻译很难得)

 windows程序设计读书笔记(准确的翻译很难得)原文: 引用But think about this for a moment. Almost everything that affects your programs window passes through your window procedure first.Windows does something with t

629

Windows程序设计读书笔记-开始

开始学习Windows程序设计,为的在兵荒马乱的金融危机中沉淀些东西,很功利的心理,无他 三个先决条件:(1)熟悉Windows98,还行,最起码从界面上,不陌生(2)有C语言简单的基础,这个挺汗,学的少,要补齐,学习的过程中补齐,要熟悉C语言,特别是结构和指针(3)安装了VC++6.0,装好了,不过MSDN不能用,重新装了个MSDN,从VC++调用不起来,应该没大影响吧 

oliver_ace的专栏 316

Windows里面比较好用的在线读书笔记软件

Windows里面比较好用的在线读书笔记软件 1.支持做各种笔记。该软件的特点是记笔记非常方便,并且记笔记有各种优化。2.支持多种快捷键定制,非常方便。包括颜色切换快捷方式。这是一项独家功能。 3.将来会增加笔记输出的功能。开发人员正在开发中,很快就会推出。 4.书架支持无限制的细分。方便组织书籍。5.Bullmind在线读书笔记软件,支持微信扫码登陆。bullmind在线读书笔记软件地址:htt...

weixin_34032827的博客 3822

《windows 程序设计》读书笔记 二

希腊字母表使用从 0x0370 到 0x03FF 的代码,西里尔文使用从 0x0400 到 0x04FF 的代码,亚美尼亚文使用从 0x0530 到 0x058F 的代码,而希伯来语使用从 0x0590 到 0x05FF 的代码。与其用很容易混淆的多个 256 字符的代码映射或者是混合使用有 1 字节的代码和 2 字节代码的双字节字符集,还不如使用 Unicode,一种统一的 16 位系统,它可以代表 65536 个字符。最重要的是,ASCII 码是一种非常可靠的标准。,它的第二个参数是字符缓冲区的长度。.

沐一 · 林 的博客 810

《windows 程序设计》读书笔记 一

通常情况下在编译阶段,编译器从 C 源代码文件产生一个.OBJ (目标)文件,在链接阶段,链接器又把 .OBJ 文件和 .LIB(库程序) 文件放到一起产生undefinedEXE (可执行)文件,你可以通过选择 Project 菜单下的 Settings,并单击 Link 标签来查看这些库程序的文件列表。为了保证兼容性,英特尔 386 之后的 32 位微处理器也都支持这一模式,在这种模式下,微处理器的寄存器 (Register) 宽度为 16 位,因此 C 的 int 数据类型也是 16 位宽。.....

沐一 · 林 的博客 1153
上一篇: 《Windows程序设计》读书笔记之五
下一篇: 《Windows程序设计》读书笔记之七
yejun52
博客等级 码龄25年 12粉丝 17原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值