在win32工程下做计算器

合集下载

windows 计算器 命令参数

windows 计算器 命令参数

windows 计算器命令参数摘要:1.引言2.Windows 计算器的概述3.Windows 计算器的命令参数4.命令参数的应用示例5.结论正文:【引言】在现代计算机技术中,计算器是一种必不可少的工具。

而在众多的计算器软件中,Windows 计算器以其强大的功能和便捷性深受用户喜爱。

本文将对Windows 计算器的命令参数进行介绍,帮助用户更好地掌握这一工具。

【Windows 计算器的概述】Windows 计算器是微软公司推出的一款计算器软件,内置于Windows 操作系统中。

它具有简单易用的界面,可以进行各种复杂的数学运算,满足用户的日常计算需求。

除了基本的加减乘除运算,Windows 计算器还支持科学计算、程序设计、统计学等多种功能。

【Windows 计算器的命令参数】Windows 计算器的命令参数是一种用于定制计算过程的方式。

通过在计算器中输入特定的命令和参数,用户可以实现更复杂的计算。

以下是一些常用的Windows 计算器命令参数:1./:用于输入分数,例如输入“3/2”将得到1.5。

2.^:用于表示乘方,例如输入“2^3”将得到8。

3.*:用于表示乘法,例如输入“2*3”将得到6。

4.+:用于表示加法,例如输入“2+3”将得到5。

5.-:用于表示减法,例如输入“2-3”将得到-1。

6./:用于表示除法,例如输入“6/3”将得到2。

7.%:用于表示取余,例如输入“6%3”将得到0。

【命令参数的应用示例】以下是一些使用Windows 计算器命令参数的示例:1.计算平方根:输入“sqrt(25)”,得到结果为5。

2.计算绝对值:输入“abs(-5)”,得到结果为5。

3.计算倒数:输入“1/2”,得到结果为0.5。

4.计算乘方:输入“2^3”,得到结果为8。

5.计算三角函数:输入“sin(30)”,得到结果为0.5。

【结论】总之,Windows 计算器作为一种实用的工具,其命令参数功能为用户提供了更加灵活、高效的计算方式。

如何用Python实现一个简单的计算器

如何用Python实现一个简单的计算器

如何用Python实现一个简单的计算器Python是一种高级编程语言,它的简洁语法和丰富的内置函数使它非常适合用来实现各种应用程序,包括简单的计算器。

在这篇文章中,我将向您展示如何使用Python编写一个简单的计算器。

首先,我们需要了解计算器的基本功能。

一个简单的计算器通常具有加法、减法、乘法和除法等基本运算。

因此,我们需要编写函数来执行这些运算。

接下来,我们需要编写一个循环,使得用户可以重复使用计算器,直到他们选择退出。

下面是一个实现上述功能的示例代码:```pythondef add(x, y):"""加法运算"""return x + ydef subtract(x, y):"""减法运算"""return x - ydef multiply(x, y):"""乘法运算"""return x * ydef divide(x, y):"""除法运算"""return x / ywhile True:print("选择您想要执行的操作:") print("1.加法")print("2.减法")print("3.乘法")print("4.除法")print("5.退出")choice = input("输入您的选择(1/2/3/4/5): ")if choice == '5':print("感谢使用计算器!再见!")breaknum1 = float(input("输入第一个数字: "))num2 = float(input("输入第二个数字: "))if choice == '1':print(num1, "+", num2, "=", add(num1, num2))elif choice == '2':print(num1, "-", num2, "=", subtract(num1, num2)) elif choice == '3':print(num1, "*", num2, "=", multiply(num1, num2)) elif choice == '4':if num2 == 0:print("错误:除数不能为0!")else:print(num1, "/", num2, "=", divide(num1, num2))else:print("无效的输入,请重新选择!")```在这段代码中,我们首先定义了四个函数来执行加法、减法、乘法和除法运算。

简易计算器的制作

简易计算器的制作

简易计算器的制作在本文中,我们将介绍如何使用Visual FoxPro(VFP)制作一个简易计算器。

Visual FoxPro是一种开发工具,可以用于创建数据库应用程序和开发Windows桌面应用程序。

步骤1: 创建新的Visual FoxPro项目首先,打开Visual FoxPro并创建一个新的项目。

在“文件”菜单中选择“新建”,然后选择“项目”。

输入一个项目名称,选择一个合适的位置,然后点击“确定”。

步骤2:创建一个新的表单接下来,我们需要创建一个新的表单来作为计算器的界面。

在项目资源管理器中,右键点击“表单”文件夹,并选择“新建”。

输入一个表单名称,然后点击“确定”。

步骤3:添加控件步骤5:添加按钮事件首先,我们需要声明变量来存储用户输入的数字。

在按钮事件代码中,添加以下代码:```foxproLOCAL num1, num2, result```接下来,我们需要获取用户输入的数字。

在按钮事件代码中,添加以下代码:```foxpronum1 = VAL(Thisform.txtNum1.Value)num2 = VAL(Thisform.txtNum2.Value)```然后,我们可以执行所需的计算操作。

例如,如果我们想要添加两个数字,我们可以使用以下代码:```foxproresult = num1 + num2```最后,我们需要将结果显示在界面上。

在按钮事件代码中,添加以下代码:```foxproThisform.lblResult.Caption = STR(result)```步骤6:运行和测试完成上述步骤后,您可以保存并运行计算器。

在VFP的工具栏中,点击“运行”按钮来启动应用程序。

测试计算器,确保它可以正确执行计算操作并显示结果。

结论通过使用Visual FoxPro,我们可以轻松创建一个简易计算器。

这个计算器可以执行基本的加减乘除等操作,同时提供了一个直观的用户界面。

您可以根据需要进行自定义,添加更多功能和复杂的计算操作。

mfc入门教程之实现一个简单的计算器

mfc入门教程之实现一个简单的计算器

mfc⼊门教程之实现⼀个简单的计算器mfc学习之前的了解什么是mfc?MFC是微软基础类的缩写(Microsoft Foundation Classes),是⼀个庞⼤的类库,可以理解为⼀种在Windows上开发软件的架构,是微软专为Visual C++定制的。

该类库提供⼀组通⽤的可重⽤的类库供开发⼈员使⽤。

没有MFC之前,Windows上⽤Win32 API进⾏编程,之后MFC出现,在⼀定程度上提⾼了软件开发效率,它是对win32 API的封装,所以易⽤性好,不过性能会⽐win32开发低⼀些,⼆者各有所长。

在Windows上开发界⾯程序以前⽤MFC最合适,能兼顾效率和性能。

简单来说mfc就是⽅便windows程序开发的框架,不单单是界⾯,更有很多类库。

mfc能⼲什么?在学习mfc之前想必⼤家都会关系这个问题,很多⼈学习了c++,或者是学习了c和c++之后发现还是只能⿊窗⼝下⾯做做数学题,写写算法,做不出什么实际的东西(这⾥不是说c/++做不出实际的东西,⽽是⼤多数的⼈做不出)。

问这个问题就像问⼀把剪⼑能⼲什么,剪⼑什么也⼲不了,我们可以拿着剪⼑剪东西,剪的好坏更多的是在于使⽤者⽽不是⼯具本⾝。

当使⽤⼀件⼯具熟练之后去使⽤同类的⼯具你会发现很轻松就能上⼿,因为它们看似有区别实则万变不离其宗。

mfc和qt的选择很多⼈会去推荐学习qt说mfc过时了,如果你想要跨平台那么qt⾮你莫属,如果只是在windows上,那么mfc⽆可替代。

⽆论是qt还是mfc在windows平台上内部的实现原理都是⼀样的,只是封装上有些区别。

mfc制作简单计算器-界⾯设计1.新建mfc项⽬启动vs2013,点击⽂件->新建->项⽬->vc++->mfc应⽤程序点击确定进⼊mfc应⽤程序向导下⼀步选择基于对话框,点击完成。

这时候mfc为我们⽣成了默认的界⾯,⼀个静态⽂本框,两个按钮。

2.计算器界⾯设计⾸先删除三个默认创建的控件,选中之后右键,删除或者直接按下delete键。

win32程序设计

win32程序设计

win32程序设计Win32程序设计是一种针对Windows操作系统进行开发的编程方式,可以帮助开发者创建高效且易于使用的桌面应用程序。

以下是Win32程序设计的分步骤阐述。

第一步:选择编程语言和IDEWin32程序设计支持多种编程语言,包括C++、C#、Visual Basic等,开发者可以选择自己熟悉的语言进行开发。

同时,需要选择合适的集成开发环境(IDE)进行开发,例如Visual Studio等。

第二步:创建项目在IDE中创建新项目,选择Win32应用程序类型,并设置项目名称和存储位置。

在创建项目时需要选择应用程序类型,例如控制台应用程序、标准Windows应用程序等,以及所使用的编程语言。

第三步:编写代码在IDE中打开主代码文件,开始编写代码。

需要注意,在Win32程序设计中,需要使用Windows API(应用程序接口)来访问Windows 操作系统的功能。

编写代码时需要引用对应的API头文件,并定义窗口、消息处理函数等。

第四步:编译和构建完成代码编写之后,需要进行编译和构建操作。

在IDE中选择“构建解决方案”按钮,系统将自动执行编译、链接等操作,生成可执行文件和相关资源文件。

第五步:测试和调试在Win32程序设计中,测试和调试是非常重要的步骤。

在IDE中选择“调试”按钮,可以启动调试器,并进行单步调试、变量监视等操作,以发现代码中可能存在的错误和问题。

第六步:打包和发布完成测试和调试之后,需要将应用程序打包并发布。

在IDE中选择“发布”按钮,可以生成安装程序或独立执行文件,方便用户进行安装和使用。

总之,Win32程序设计是一种十分重要的桌面应用程序开发方式,可以帮助开发者创建高效且易于使用的Windows应用程序。

对于初学者来说,需要进行大量的练习和实践,才能掌握其编程技术和方法。

用Python编写简单的计算器

用Python编写简单的计算器

用Python编写简单的计算器在计算机编程中,计算器是一种非常基础而常用的工具。

通过Python编写一个简单的计算器程序,可以让我们更好地理解和应用基本计算的原理和方法。

本文将详细介绍如何使用Python来实现一个简单的计算器。

一、概述计算器是一种用于进行数值计算的工具,通常包括基本的算术运算(加法、减法、乘法、除法)和一些常用函数(如开方、取余等)。

而使用Python编写计算器程序,则可以通过编写算法和控制语句,实现这些计算功能。

二、编写计算器的基本框架1. 引入所需的库在Python编写计算器程序时,我们需要引入Python的一个内置数学库math。

通过使用该库中的函数和常量,我们可以方便地进行各种数学运算。

```pythonimport math```2. 定义计算器的主函数我们可以使用一个主函数来实现计算器的主要功能。

在主函数中,我们可以通过接收用户的输入来判断所需进行的计算操作,并输出计算结果。

```pythondef calculator():# 代码实现```3. 接收用户输入为了让计算器可以接收用户的输入,我们可以使用input()函数。

例如,我们可以提示用户输入需要进行的计算操作,然后将用户输入的数据存储在变量中。

```pythonoperation = input("请选择需要进行的计算操作:")```4. 实现不同的计算功能根据用户输入的操作类型,我们可以使用if语句或者switch语句来实现不同的计算功能。

通过调用math库中的函数,我们可以方便地实现常见的数学运算。

```pythonif operation == "+":# 代码实现加法计算elif operation == "-":# 代码实现减法计算elif operation == "*":# 代码实现乘法计算elif operation == "/":# 代码实现除法计算# 其他计算功能的实现```5. 输出计算结果根据计算的结果,我们可以使用print()函数将结果输出给用户。

windows科学计算器用法

windows科学计算器用法

windows科学计算器用法
Windows科学计算器是一款可以进行科学计算的软件工具,它可以帮助用户完成许多复杂的计算任务。

以下是Windows科学计算器的用法介绍:
1. 打开计算器:单击“开始”菜单,在搜索框中输入“计算器”,然后单击“科学计算器”即可打开。

2. 基本计算:在计算器上可以进行加、减、乘、除等基本计算。

单击数字键、运算符键和“=”键即可完成相应的计算任务。

3. 科学计算:在科学计算器中,用户可以进行诸如三角函数、对数函数、指数函数等的科学计算。

单击相应的按钮即可完成相应的计算任务。

4. 十六进制和二进制计算:在科学计算器中,用户还可以进行十六进制和二进制的计算。

单击“转换”按钮即可进入相应的计算模式。

5. 历史记录:在科学计算器中,用户可以查看以前的计算历史记录。

单击“查看历史记录”按钮即可查看。

6. 程序员模式:在科学计算器中,用户还可以进入程序员模式,进行位运算、逻辑运算等计算。

7. 单位转换:在科学计算器中,用户还可以进行单位转换,例如长度、面积、体积、速度、重量、温度等。

单击“单位转换”按钮即可进入相应的模式。

总之,Windows科学计算器是一款功能非常强大的软件工具,可
以帮助用户完成各种复杂的计算任务。

无论是在学习、工作还是日常生活中,都可以使用它来提高计算效率。

win32汇编程序设计

win32汇编程序设计

win32汇编程序设计Win32汇编程序设计Win32汇编是一种基于x86架构的汇编语言,用于开发Windows操作系统的应用程序。

它的设计目标是实现高效、快速和可靠的程序,利用底层硬件资源来实现更高级别的功能。

本文将介绍Win32汇编的概念、特点和应用,以及如何进行Win32汇编程序设计。

一、Win32汇编的概念和特点Win32汇编是一种面向Windows平台的汇编语言,它是基于Intel x86架构的指令集。

与高级语言相比,汇编语言更接近底层硬件,可以直接控制计算机的寄存器、内存和外设等资源。

Win32汇编程序可以通过调用Windows API函数来实现各种功能,如图形界面、文件操作、网络通信等。

Win32汇编具有以下特点:1. 直接访问硬件资源:Win32汇编允许程序员直接访问寄存器、内存和外设等底层硬件资源,从而实现更高级别的功能。

这种直接访问的特性使得Win32汇编在一些对效率要求较高的应用场景中具有优势。

2. 高效、快速:由于汇编语言直接操作底层硬件,因此具有更高的执行效率和更快的运行速度。

这使得Win32汇编在一些对性能要求较高的应用中被广泛使用,如游戏开发、图像处理等。

3. 灵活性:Win32汇编语言具有很高的灵活性,可以根据具体需求进行定制化开发。

程序员可以直接控制底层资源,实现特定的功能,而不受高级语言的限制。

二、Win32汇编的应用领域Win32汇编广泛应用于Windows操作系统的应用程序开发中。

以下是一些典型的应用领域:1. 系统工具开发:Win32汇编可以用于开发各种系统工具,如磁盘清理工具、注册表编辑工具等。

通过直接访问底层资源,可以实现更高级别的功能。

2. 游戏开发:由于Win32汇编具有高效、快速的特点,因此在游戏开发中被广泛应用。

通过直接操作硬件资源,可以实现更复杂的游戏逻辑和更出色的性能。

3. 图像处理:Win32汇编可以用于图像处理领域,如图像压缩、图像滤波、图像识别等。

如何创建一个简单的计算器程序

如何创建一个简单的计算器程序

如何创建一个简单的计算器程序计算器程序是计算机编程中的基本项目之一。

无论是日常的数学运算还是简单的计算任务,计算器程序能够提供方便和效率。

在本文中,我们将探讨如何创建一个简单的计算器程序。

1. 设计界面首先,我们需要设计一个用户界面,使用户能够输入运算表达式并获取计算结果。

一个简单的设计方法是使用文本框和按钮。

文本框用于接收用户输入的表达式,按钮用于触发计算并显示结果。

2. 获取用户输入在程序中,我们需要获取用户在文本框中输入的运算表达式。

为了实现这一点,我们可以使用编程语言提供的输入函数或方法。

例如,Python中的`input()`函数可以用于获取用户输入。

3. 解析表达式一旦获取到用户输入的运算表达式,我们需要解析它以便进行计算。

通常,我们可以使用栈这种数据结构来解析表达式。

栈能够方便地处理运算符的优先级和顺序。

4. 执行计算通过解析表达式,我们可以得到一个数字列表和一个操作符列表。

接下来,我们需要按照运算的顺序执行计算。

对于每个操作符,我们从数字列表中取出相应数量的数字进行计算,并将计算结果放回数字列表。

5. 显示结果计算完成后,我们将结果显示在用户界面中的某个区域中。

可以使用文本框或标签等控件来显示计算结果。

6. 处理错误在设计计算器程序时,我们还需要考虑错误处理。

例如,当用户输入的表达式不符合语法规则或包含除数为零的除法运算时,我们需要给出相应的错误提示。

7. 添加额外功能除了基本的四则运算,我们还可以给计算器程序添加其他功能,如求平方、开方、求正弦等。

这些功能可以根据用户的需求进行扩展。

通过以上步骤,我们可以创建一个简单的计算器程序。

该程序能够接收用户输入的数学表达式,解析并执行计算,并将结果显示在界面中。

这个计算器程序可以帮助用户快速进行基本的数学运算。

当然,如果需要更高级的功能和更复杂的计算,可能需要使用更专业的计算器软件或编程技术。

总结:本文介绍了创建一个简单的计算器程序的基本步骤。

Win32编程入门

Win32编程入门

Win32编程⼊门Win32 程序开发的流程message based, event drivenWin32程序是message based, event driven。

也就是说Win32程序的运⾏是依靠外部不断发⽣的事件来驱动的,也就是说,程序不断等待(有⼀个while循环),等待任何可能的输⼊,然后做判断,再做适当的处理。

因此Win32程序只需要做好如下⼏件事情就可以了:1. 定义窗⼝的外观;2. 定义当不同的事件发⽣时,程序做什么样的反应(定义窗⼝处理函数);3. 写⼀个While循环,不断检测新事件的发⽣,并将其发送给不同的窗⼝处理函数程序进⼊点WinMainmain是⼀般C程序的进⼊点:int main( int argc, char *argv[], char *envp[])Win32程序的进⼊点是int CALLBACK WinMain( __in HINSTANCE hInstance, __in HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nCmdShow);当⽤户要执⾏⼀个程序时,⾸先是Windows 的Shell(Explorer)调⽤CreateProcess这个系统调⽤,CreateProcess为这个进程创建虚拟地址,然后将代码和数据载⼊,然后系统再创建⼀个主线程开始执⾏run time startup函数的代码,run time startup 函数会最终调⽤⼊⼝点函数(main, WinMain)。

如果⽤户执⾏的是⼀个Win32程序,那么C startup就会调⽤WinMain并开始执⾏程序。

窗⼝类注册与窗⼝诞⽣如果前⾯所说,Win32的⼀个重要的责任是定义窗⼝外观和窗⼝处理函数。

这是通过窗⼝类注册来完成的。

创建窗⼝可以使⽤CreateWindow来完成,但在调⽤CreateWindow时必须先设定窗⼝的各种属性和⾏为。

Windows下自带的计算器使用指导

Windows下自带的计算器使用指导

这个计算器的功能是如此的强大,尤其对于一个程序员,更是相当的上手,不善加利用,简直就是暴殄天物。

下面大概介绍一下其功能与用法。

一、标准计算器这是最常用也是最简单的模式,加减乘除,开方倒数,相信每个人都很熟悉,我觉得需要注意的几点是:1.CE/C:CE表示Clear Error,是指你清楚你当前的错误输入;而C表示Clear,是指清楚整个计算。

比如你输入1+2之后,按CE会清除第二个参数2,你可以继续输入其他数和第一个参数1相加。

而C则整个的删除1+2这个计算,你需要重新开始一个计算。

2.MC/MR/MS/M+/M-:M表示Memory,是指一个中间数据缓存器,MC=Memory Clear,MR=Memory Read, MS=Memory Save, M+=Memory Add, M-=Memory Minus,可以用一个例子来演示:(7-2) * (8-2)=先输入7,按MS保存,输入2,按M-与缓存器中的7相减,此时缓存器中的值为5;然后计算8-2,得出结果为6,输入*相乘,按MR读出之前保存的数5,按=得出结果30,算完后按MC清除缓存器。

3.% :几番尝试,我还是不怎么理解这个操作的意义何在,其规则是将前两个操作数相乘并取其百分值,而与操作符没有任何关系,如下:1.7*8%=7*=2.7+8%=7+=二、科学计算器这是标准模式的扩展,主要是添加了一些比较常用的数学函数,我觉得可以分为三组:1.三角函数:正弦,双曲正弦,按Inv可以计算其反函数反正弦,反双曲正弦,对于余弦,正切也是如此,这样就有4*3一共12个函数。

2.代数函数:高中代数里学过的幂函数(x2, x3, x1/3, x y, x1/y),对数函数(In,log),阶乘(n!),指数函数(10x)3.其他:这里有些函数在编程的时候用的会比较多,比如取整(Int),圆周率(Pi),取模(Mod),以及其他一些表示函数如度分秒表示(dms),科学计数法表示(F-E),和科学计数法输入(Exp)这是需要注意的几点是:1.对于需要一个输入参数(x)的函数,一般先输入参数,再按函数进行计算;对于有两个参数的函数(x,y),一般是先输入x参数,按函数,再输入第二个参数,按=进行计算。

实现一个简单的计算器程序

实现一个简单的计算器程序

实现一个简单的计算器程序计算器是我们日常生活中不可或缺的工具,方便快捷。

而如今,多种多样的计算器软件层出不穷,但是否可以自己动手制作一个基础的计算器程序呢?实际上,这并不难以实现。

一、确定计算器功能想要实现一个简单的计算器程序,首先需要确定计算器应有的基础功能。

一般来说,计算器至少应该具备加、减、乘、除这几种基本运算功能,以及清空、删除、等于等辅助操作功能。

二、选择合适的编程语言每一种编程语言都有自己的特点和适用场景,我们需要根据自己的需求来选择一种合适的编程语言。

比较常用的编程语言有C++、Java、Python等,在这里我们以Python为例进行讲解。

三、使用Tkinter库创建界面Tkinter是Python自带的一个GUI库,可以用来创建应用程序的图形用户界面,也是实现计算器界面的一种常用方式。

首先我们需要导入Tkinter库:```from tkinter import *```接着,我们可以创建一个窗口并设置相关属性:```window = Tk()window.title("计算器")```设置窗口标题为“计算器”。

四、实现计算器功能在创建好界面之后,我们需要实现计算器的具体功能。

首先,我们需要定义一些基本的操作函数,如加、减、乘、除等操作函数:```# 加法函数def add(num1, num2):return num1 + num2# 减法函数def subtract(num1, num2):return num1 - num2# 乘法函数def multiply(num1, num2):return num1 * num2# 除法函数def divide(num1, num2):if num2 == 0:return "错误!除数不能为0!" else:return num1 / num2```接着,我们可以定义一些辅助函数,如清空、删除等操作函数:```# 清空函数def clear():entry.delete(0, END)# 删除函数def delete():entry.delete(len(entry.get())-1, END)```在设置好函数之后,我们可以将其与具体的界面元素进行关联,实现计算器的完整功能:```# 数字按钮button_1 = Button(window, text="1", padx=20, pady=10, command=lambda: entry.insert(END, "1"))button_2 = Button(window, text="2", padx=20, pady=10, command=lambda: entry.insert(END, "2"))...button_9 = Button(window, text="9", padx=20, pady=10, command=lambda: entry.insert(END, "9"))button_0 = Button(window, text="0", padx=20, pady=10, command=lambda: entry.insert(END, "0"))# 运算符按钮button_add = Button(window, text="+", padx=19, pady=10, command=lambda: operation("+"))button_subtract = Button(window, text="-", padx=20, pady=10, command=lambda: operation("-"))button_multiply = Button(window, text="*", padx=20, pady=10, command=lambda: operation("*"))button_divide = Button(window, text="/", padx=20, pady=10, command=lambda: operation("/"))# 其他辅助按钮button_clear = Button(window, text="清空", padx=60, pady=10, command=clear)button_delete = Button(window, text="删除", padx=60, pady=10, command=delete)button_equal = Button(window, text="=", padx=20, pady=10, command=equal)# 文本框entry = Entry(window, width=40, borderwidth=5)# 布局entry.grid(row=0, column=0, columnspan=4, padx=10, pady=10)button_7.grid(row=1, column=0, padx=5, pady=5)button_8.grid(row=1, column=1, padx=5, pady=5)button_9.grid(row=1, column=2, padx=5, pady=5)button_add.grid(row=1, column=3, padx=5, pady=5)...button_clear.grid(row=4, column=0, columnspan=2, padx=5,pady=5)button_0.grid(row=4, column=2, padx=5, pady=5)button_equal.grid(row=4, column=3, padx=5, pady=5)```最后,运行程序,就可以看到一个简单的计算器窗口了。

win32界面编程 实例

win32界面编程 实例

win32界面编程实例
Win32界面编程是指使用Win32 API来创建Windows应用程序
的用户界面。

下面我将从不同角度给出一些Win32界面编程的实例。

1. 创建窗口,使用Win32 API可以创建一个基本的窗口应用程序。

首先需要注册窗口类,然后创建窗口并处理窗口消息。

通过设
置窗口类的属性和消息处理函数,可以实现窗口的基本功能,比如
响应用户输入、绘制图形等。

2. 控件和布局,Win32 API提供了一系列控件,比如按钮、文
本框、列表框等,可以通过创建这些控件来构建丰富的用户界面。

同时,可以使用布局管理技术来控制控件的位置和大小,以实现界
面的美观和合理布局。

3. 图形绘制,Win32 API允许开发者直接操作图形设备接口(GDI),从而实现自定义的图形绘制功能。

通过GDI可以绘制各种
图形、文本和图像,实现丰富多彩的界面效果。

4. 用户交互,Win32界面编程可以实现丰富的用户交互功能,
比如鼠标点击、键盘输入、菜单操作等。

通过响应用户的交互行为,
可以让应用程序更加灵活和易用。

5. 窗口管理,Win32 API提供了丰富的窗口管理功能,比如最大化、最小化、关闭窗口等。

开发者可以通过这些功能来管理应用程序的窗口,提升用户体验。

总之,Win32界面编程可以实现丰富多彩的Windows应用程序界面。

开发者可以通过灵活运用Win32 API提供的功能,创建出符合自己需求的界面效果。

希望以上实例可以帮助你更好地理解
Win32界面编程。

Windows环境下32位汇编语言程序设计

Windows环境下32位汇编语言程序设计

Windows环境下32位汇编语言程序设计在Windows环境下,32位汇编语言程序设计在计算机科学领域中,汇编语言是一种低级别的编程语言,用于将指令直接转化为机器指令。

在Windows操作系统环境下,汇编语言的应用广泛而深入。

本文将介绍在Windows环境下,如何进行32位汇编语言程序设计。

一、汇编语言基础知识在开始学习汇编语言之前,我们需要了解一些基本的概念和知识。

首先,汇编语言是由一系列的汇编指令组成,每条汇编指令都对应着一条机器指令。

汇编指令由操作码和操作数组成,操作码指示需要进行的操作,而操作数则用于指定操作的对象。

在Windows环境下,32位汇编语言使用的是Intel x86架构,它包括了一系列的寄存器、标志位和指令集。

寄存器是用来存储数据和执行操作的一种硬件组件,其中包括通用寄存器、段寄存器和控制寄存器等。

标志位用于记录计算机处理器的状态信息,如进位、溢出、零等。

指令集则定义了可执行的操作,如加载数据、运算、跳转等。

二、编写第一个汇编程序在编写第一个汇编程序之前,我们需要准备一些工具。

首先,我们需要安装一个汇编器,如MASM(Microsoft Macro Assembler)。

其次,我们需要一个文本编辑器,如Notepad++。

接下来,就可以开始编写第一个汇编程序了。

假设我们要编写一个简单的程序,实现将两个数字相加并输出结果的功能。

首先,我们需要定义一个数据段,用于存储要操作的数据。

然后,我们需要定义一个代码段,用于编写实际的汇编指令。

以下是一个简单的示例程序:```assembly.datanum1 dw 5num2 dw 10res dw ?.codemov ax, num1 ; 将num1加载到寄存器axadd ax, num2 ; 将num2加到ax中mov res, ax ; 将结果保存到res中; 输出结果mov ah, 09h ; 设置打印字符串功能mov dx, offset res ; 将结果的内存地址加载到寄存器dxint 21h ; 调用中断21h,进行字符串打印; 结束程序mov ah, 4Ch ; 设置程序结束功能int 21h ; 调用中断21h,结束程序```以上汇编程序的功能是将num1和num2的值相加并将结果存储到res中,然后通过调用中断21h来输出结果,并最终结束程序运行。

如何使用Python编写一个简单的计算器

如何使用Python编写一个简单的计算器

如何使用Python编写一个简单的计算器前言:计算器是我们日常生活中经常使用的工具,它可以对数字进行各种运算。

现在,我们将介绍如何使用Python编写一个简单的计算器,以帮助我们更好地理解计算器的原理和实现。

一、了解计算器的基本功能在开始编写计算器之前,我们需要了解计算器的基本功能。

一个基本计算器通常具有加减乘除四则运算功能,并能够处理小数和负数。

同时,还可以实现一些其他常见的数学函数,例如开方、平方、取余等。

二、准备编程环境在编写计算器之前,我们需要准备好Python的编程环境。

首先,需要安装Python解释器。

你可以从Python官方网站下载适合你的操作系统的Python解释器,并按照官方提供的安装指南进行安装。

三、编写计算器的基本功能1. 实现加法功能首先,我们需要编写一个函数来实现加法功能。

以下是一个简单的加法函数的代码示例:```pythondef add(num1, num2):return num1 + num2```2. 实现减法功能接下来,我们可以编写一个函数来实现减法功能。

以下是一个简单的减法函数的代码示例:```pythondef subtract(num1, num2):return num1 - num2```3. 实现乘法功能然后,我们可以编写一个函数来实现乘法功能。

以下是一个简单的乘法函数的代码示例:```pythondef multiply(num1, num2):return num1 * num2```4. 实现除法功能最后,我们可以编写一个函数来实现除法功能。

以下是一个简单的除法函数的代码示例:```pythondef divide(num1, num2):return num1 / num2```四、完善计算器功能在上述代码的基础上,我们可以继续完善计算器的功能,使其更加实用。

1. 处理小数和负数为了能够处理小数,我们可以使用浮点数进行计算。

同时,我们还可以使用负数来实现减法和乘法的功能。

win32汇编除法

win32汇编除法

在win32汇编语言中,DIV指令被用于执行除法操作。

具体地,DIV指令将一个无符号数除以另一个无符号数。

例如,执行8位除法,可以将83除以2,商存储在al寄存器中,余数存储在ah寄存器中。

类似地,执行16位除法,可以将8003h除以100h,商存储在ax寄存器中,余数存储在dx寄存器中。

此外,对于32位除法,可以使用edx和eax寄存器来存储被除数,然后使用div指令进行除法运算,商将存储在eax中,余数将存储在edx中。

请注意,在除法操作之前,通常需要清除相关的寄存器(例如edx),以避免任何潜在的数据冲突或错误。

以上信息仅供参考,如有需要,建议咨询专业技术人员。

Windows的计算器使用方法

Windows的计算器使用方法

Windows的计算器使用方法Windows的计算器一、进行复杂运算我们平时使用计算器时,往往进行简单计算,如8×9=72。

如果复杂些,就一步步进行计算,如要计算(4+5)×6时,就需要先算4+5=9,再算9×6=120。

现在我们使用计算器的高级功能就可以一步实现这个运算。

我们打开计算器,是默认的界面。

点击计算器的“查看”下拉菜单,点中“科学型”,就会出现更大的窗口:首先,我们在记事本里编写好我们要的计算式,如: (4+5)×6,然后将它复制。

打开计算器的“编辑”菜单,再点击“粘贴”,做完这些操作后,按下计算器的“=”按纽,计算器就会将最后的计算结果显示在输出文本框中。

二、数学计算普通的计算器具有很强的数学计算功能,它可以计算角度的正弦值、余弦值、正切值等,Windows计算器也具备了这些功能,并且使用起来也很方便。

假如我们要计算正弦值,我们输入角度或弧度的数值后,直接点“sin”按纽,结果就会输出。

同时我们还可以方便进行平方、立方、对数、阶数、倒数运算。

三、逻辑运算Windows计算器可以方便快捷地进行二进制、八进制、十进制、十六进制之间的任意转换。

假如我们要把十进制数69转换成到二进制数,我们首先通过计算器输入69,完毕后点“二进制”单选按纽,计算器就会输出对应的二进制数。

如果要转换成其他进制,点击对应的按纽就可以了。

需要注意的是在四个进制按纽后面还有四个按纽,它们的作用是定义数的长度,“字节”把要转换数的长度限制为一个字节,即八位二进制数,“单字”刚是指两个字节长度,“双字”是四个字节长度,“四字”是八个字节长度。

除了可以进行进制转换外,还可以进行与、或、非等逻辑运算。

逻辑运算的使用与其他数学计算大同小异。

四、统计功能计算器另外一个有特色的功能是统计。

我们在科学型模式下按下“Sta”按纽,就会弹出统计框。

我们要使用统计功能,首先要录入统计数据。

假如我们的原始数据为1、2、3、4。

信息技术制作简单的

信息技术制作简单的

信息技术制作简单的信息技术制作简单的计算器计算器是一种广泛应用于日常生活和工作中的小型工具,它能够快速准确地进行数字计算。

在信息技术的发展下,我们可以利用编程语言和计算机软件制作出简单易用的计算器。

本文将介绍如何通过信息技术制作一个简单的计算器,并提供相应的代码示例。

一、介绍计算器主要用于进行基本的算术运算,如加减乘除。

通过信息技术的制作,我们可以实现用计算机来进行计算,提供更好的用户体验和功能拓展。

在制作计算器时,我们需要使用编程语言和计算机软件来实现各种功能。

二、选择编程语言和计算机软件在制作计算器时,我们可以选择不同的编程语言和计算机软件来实现。

常见的编程语言如Python、Java、JavaScript等具有强大的计算和逻辑处理能力,可以满足计算器的需求。

此外,我们还可以使用计算机软件如Visual Studio Code、PyCharm等来编写和运行代码。

三、实现计算器界面计算器的界面设计是制作计算器的重要一环。

我们可以通过编程语言和计算机软件提供的图形界面库来实现计算器的界面。

以Python为例,我们可以使用Tkinter库来实现计算器的界面设计。

以下是一个简单的示例代码:```pythonimport tkinter as tkdef button_click(number):current = str(entry.get())entry.delete(0, tk.END)entry.insert(tk.END, current + str(number))def button_clear():entry.delete(0, tk.END)def button_equal():result = eval(entry.get())entry.delete(0, tk.END)entry.insert(tk.END, result)root = ()root.title("简单计算器")entry = tk.Entry(root, width=20)entry.grid(row=0, columnspan=4)button1 = tk.Button(root, text="1", padx=10, pady=10,command=lambda: button_click(1))button2 = tk.Button(root, text="2", padx=10, pady=10,command=lambda: button_click(2))# 更多按钮...button_clear = tk.Button(root, text="清空", padx=10, pady=10, command=button_clear)button_equal = tk.Button(root, text="=", padx=10, pady=10, command=button_equal)button1.grid(row=1, column=0)button2.grid(row=1, column=1)# 更多按钮...button_clear.grid(row=2, column=0)button_equal.grid(row=2, column=1, columnspan=2)root.mainloop()```通过上述代码,我们创建了一个基本的计算器界面,包括一个显示框和数字按钮。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告题目:在win32 application工程下计算器的设计与实现小组成员:陈李元41212204余斌41212202目录1概述1.1课程设计的内容2系统需求分析2.1系统目标2.2重要功能2.3开发环境3设计过程3.1主函数WinMain设计过程3.2窗口过程WndProc4小结5参考文献附录1:程序代码附录2:程序运行部分截图1概述1.1课程设计的内容这次c++课程设计我们组选的是设计一个带界面的计算器,不是用MFC,而是在win32 application工程下做的带界面的计算器。

它属于windows程序设计范畴。

我们主要是把功夫花在做界面上了,这个计算器本身所具有的功能很少,它只支持少量的算术运算。

2系统需求分析2.1系统目标我们在日常生活和学习中,经常会遇到一些关于数值的运算。

所以我们组就着手开始做一个计算器方便我们的学习和生活。

这个计算器它具有加法,减法,乘法,除法四种基本的算术运算。

另外还具有计算N阶阶乘的功能,此外还具有求一个弧度的正弦(余弦和它功能类似要想求余弦事先做一些弧度的转化即可)。

该计算器用例图如下:类图如下:2.2重要功能具备四种最基本的算术运算。

另外还具有阶乘,求正弦的功能。

2.3开发环境本程序是在visual c++ 6.0编译,链接,运行。

它是在win32 application工程下所创建。

3设计过程3.1主函数WinMain设计过程首先在界面设计中我们要用到大量的windows API。

这些函数都是在windows.h标准库中。

在windows程序设计中,它必须要包含一个程序入口主函数WinMain和一个过程函数WndProc。

WinMain总是以下面的形式出现。

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) WinMain第一个参数一般叫做“实例句柄”,在windows 程序中句柄就是一个数值,程序里面用他来标识一些东西。

第二个参数总是定义为NULL(定义为0)第三个参数是用来运行程序的命令行。

有些windows程序在启动时用它来把文件装入内存。

第四个参数用来指明程序最初如何显示。

创建一个窗口的步骤:(1)注册窗口类(2)创建窗口(3)在桌面显示窗口(4)更新窗口客户区(5)进入无限的消息获取和处理的循环。

首先是获取消息,如果有消息到达,则将消息分派到回调处理函数,如果消息是WM_QUIT,则GetMessage函数返回FALSE,整个消息循环结束。

其中消息具体的处理过程是在WndProc 函数中1.注册:Windows程序设计中有许许多多的结构体。

其中WNDCLASS是用于注册窗口类的。

typedef struct _WNDCLASS {UINT style;// 窗口类型WNDPROC lpfnWndProc;//窗口处理函数int cbClsExtra;//窗口扩展int cbWndExtra;//窗口实例扩展HINSTANCE hInstance;//实例句柄HICON hIcon;//窗口的最小化图标HCURSOR hCursor;//窗口鼠标光标HBRUSH hbrBackground;//窗口背景色LPCTSTR lpszMenuName;//窗口菜单LPCTSTR lpszClassName;// 窗口类名} WNDCLASS, *LPWNDCLASS;它定义了窗口的属性,风格等等,如本程序中附图:3创建窗口创建窗口,用注册窗口类的类名调用CreateWindow函数HWND CreateWindow(LPCTSTRlpClassName,//指向已注册窗口类名称的指针LPCTSTRlpWindowName,//指向窗口名称的指针DWORDdwStyle,//窗口的风格intx,//窗口位置的X坐标inty,//窗口位置的Y坐标intnWidth,//窗口的宽度intnHeight,//窗口的高度HWNDhWndParent,//父窗口的句柄HMENUhMenu,//窗口菜单句柄HINSTANCEhInstance,//应用程序使用句柄LPVOIDlpParam//应用程序数据区句柄 );在本程序中代码如图:3显示:调用显示函数ShowWindow (hwnd, iCmdShow) ;4更新窗口客户区:调用UpdateWindow (hwnd) ;函数5消息循环:在这里又要涉及一个结构体MSG定义如下:typedef struct tagMSG {HWND hwnd;UINT message;WPARAM wParam;LPARAM lParam;DWORD time;POINT pt;} MSG;调用TranslateMessage (&msg)函数把键盘输入翻译成为可传递的消息。

调用DispatchMessage (&msg) 分发一个消息到对应窗口的窗口函数。

3.2窗口过程WndProc:窗口过程总是按照如下方式来定义:LRESULT CALLBACK WndProc (HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) 程序的功能就是在这里面实现。

在这里面调用CreateWindow函数来实现按钮的创建例如下图:这就是创建了一个按钮。

上面代码是创建了一个文本框按钮,用来显示输进去的字符以及输出结果。

重复上面的过程便得一个计算器界面,如下图:接下来要做的就是响应这些按钮并实现算术运算。

在windows中要做的是为每个按钮设置一个ID号(在创建时已经设置),这就使得每个按钮都区别开了。

详情请见代码。

switch(LOWORD(wParam))语句就是响应每个按钮在用case语句分别来响应每个按钮以及所实现的功能。

例如case ID_BUTTON2:{ lstrcat(szBuffer, "3");SetWindowText(hwndEdit,szBuffer);return 0;}该语句的功能是响应数字3按钮,并将字符‘3’显示到文本框中。

在这里要用到两个函数lstrcat()和SetWindowText()函数。

首先我们要定义一个缓冲区static TCHAR szBuffer[1024] = {0};并初始化为’\0’.用来暂时存放响应按钮并输出到文本框里的字符串。

接下来调用lstrcat()函数将字符存放到缓冲区szBuffer里面。

然后调用SetWindowText()函数将缓冲区里面的字符串输出到文本框里。

(这是在做计算器程序的最重要的一个过程)另外一个很重要的操作就是全在响应等于号按钮里面完成的。

程序代码附图:大概阐述一下等号里面的过程。

在这里面先将文本框里的字符串用GetWindowText()函数提取出来。

并用GetWindowTextLength()函数计算出字符串的长度。

然后再把字符串复制到另一数组String中,随后用memset()函数将缓冲区szBuffer清零。

接下来就是对String的处理(String里面存放的是字符串而不是数值和运算符)。

用isdigit()函数找出运算符的位置。

接下来就是调用sscanf()函数。

该函数的原型:定义函数int sscanf (const char *str,const char * format,........);函数说明sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。

格式转换形式请参考scanf()。

转换后的结果存于对应的参数内。

返回值成功则返回参数数目,失败则返回-1,错误原因存于errno中。

返回0表示失败否则,表示正确格式化数据的个数例如:sscanf(str,"%d%d%s", &i,&i2, &s); 如果三个变成都读入成功会返回3。

将运算符前后转化成数值厚分别存放在FirstNumber,NextNumber变量中。

并对这两个变量实行相对应的四则运算并把结果存放在ResultNumber变量中。

调用sprintf()函数将实型变量转化为字符串变量并存放到StringResult里面中。

然后在调用SetWindowText()函数将StringResult里面里面的字符串输出到文本框中。

上面只是程序中一些很重要的东西,还有很多就不具体说明,许多函数的参数也是很复杂在这里就没一一写上,你想知道可以百度。

4小结Windows程序设计对我们来说是新知识,刚开始什么都不懂,就去图书馆借了两本书啃,不懂得就上网搜找答案。

那段时间几乎就是天天在弄这东西因为是新知识什么都不懂。

过程真的很煎熬,但做完了就觉得收获了很多。

知道了很多东西了解了很多东西。

5参考文献《Windows程序设计》第五版珍藏版Charles Petzold 著方敏张胜梁路平赵勇等译《windows程序设计》第二版王艳平张铮编著附录1:程序代码#include <windows.h>#include <iostream>#include <memory.h>#include <cctype>#include <stdlib.h>#include <cmath>#define IDC_EDITTEXT 1000#define ID_BUTTON0 100#define ID_BUTTON1 101#define ID_BUTTON2 102#define ID_BUTTON3 103#define ID_BUTTON4 104#define ID_BUTTON5 105#define ID_BUTTON6 106#define ID_BUTTON7 107#define ID_BUTTON8 108#define ID_BUTTON9 109#define ID_BUTTON10 110#define ID_BUTTON11 111#define ID_BUTTON12 112#define ID_BUTTON13 113#define ID_BUTTON14 114#define ID_BUTTON15 115#define ID_BUTTON16 116#define ID_BUTTON17 117#define ID_BUTTON18 118struct{int iStyle ;TCHAR * szText ;}button[] ={BS_PUSHBUTTON, TEXT ("1"),BS_PUSHBUTTON, TEXT ("2"),BS_PUSHBUTTON, TEXT ("3"), BS_PUSHBUTTON, TEXT ("4"), BS_PUSHBUTTON, TEXT ("5"), BS_PUSHBUTTON, TEXT ("6"),BS_PUSHBUTTON, TEXT ("7"),BS_PUSHBUTTON, TEXT ("8"),BS_PUSHBUTTON, TEXT ("9"),BS_PUSHBUTTON, TEXT ("0"),BS_PUSHBUTTON, TEXT ("C"),BS_PUSHBUTTON, TEXT ("."),BS_PUSHBUTTON, TEXT ("sin"),BS_PUSHBUTTON, TEXT ("n!"),BS_PUSHBUTTON, TEXT ("+"),BS_PUSHBUTTON, TEXT ("-"),BS_PUSHBUTTON, TEXT ("x"),BS_PUSHBUTTON, TEXT ("/"),BS_PUSHBUTTON, TEXT ("="),} ;#define NUM (sizeof button / sizeof button[0])LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow){static TCHAR szAppName[] = TEXT ("Calculator") ;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 = "Calculator" ;if (!RegisterClass (&wndclass)){MessageBox (NULL, TEXT ("This program requires Windows NT!"),szAppName, MB_ICONERROR) ;return 0 ;}hwnd = CreateWindow (szAppName, TEXT ("Calculator"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT,235, 355,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 HWND hwndButton[NUM] ;static RECT rect ;static RECT rectDrawLimit = {0, 50, 200, 100};//---this!!static TCHAR szBuffer [1024] = {0};// LPSTR szBuffer=new TCHAR[1024];string str;static HWND hwndEdit;LPTSTR szString=new TCHAR[1024];// static TCHAR String[1024]={0};LPTSTR String=new TCHAR[1024];static float FirstNumber;static float NextNumber;static float ResultNumber;static int i;//static TCHAR StringResult[]={0};LPSTR StringResult=new TCHAR[1024];static int number;int count=1;double num=1;int numbe=1;static TCHAR szBuffer1[10];static TCHAR szBuffer2[10];static int iLength;static int cxChar, cyChar ;HDC hdc=GetDC(hwnd);//LPTSTR szBuffer=new TCHAR[1024];PAINTSTRUCT ps ;switch (message){case WM_CREATE :cxChar = LOWORD (GetDialogBaseUnits ()) ;cyChar = HIWORD (GetDialogBaseUnits ()) ;hwndButton[0] = CreateWindow(TEXT("button"), button[0].szText, WS_CHILD | WS_VISIBLE | button[0].iStyle,0, 120, 50, 50,hwnd, (HMENU)ID_BUTTON0, ((LPCREATESTRUCT)lParam)->hInstance, NULL);hwndButton[1] = CreateWindow(TEXT("button"), button[1].szText, WS_CHILD | WS_VISIBLE | button[1].iStyle,50, 120, 50, 50,hwnd, (HMENU)ID_BUTTON1, ((LPCREATESTRUCT)lParam)->hInstance, NULL);hwndButton[2] = CreateWindow(TEXT("button"), button[2].szText, WS_CHILD | WS_VISIBLE | button[2].iStyle,100,120,50,50,hwnd,(HMENU)ID_BUTTON2,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndButton[3]=CreateWindow(TEXT("button"), button[3].szText, WS_CHILD|WS_VISIBLE|button[3].iStyle,0,170,50,50,hwnd,(HMENU)ID_BUTTON3, ((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndButton[4]=CreateWindow(TEXT("button"), button[4].szText, WS_CHILD|WS_VISIBLE|button[4].iStyle,50,170,50,50,hwnd,(HMENU)ID_BUTTON4, ((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndButton[5]=CreateWindow(TEXT("button"), button[5].szText, WS_CHILD|WS_VISIBLE|button[5].iStyle,100,170,50,50,hwnd,(HMENU)ID_BUTTON5, ((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndButton[6]=CreateWindow(TEXT("button"), button[6].szText, WS_CHILD|WS_VISIBLE|button[6].iStyle,0,220,50,50,hwnd,(HMENU)ID_BUTTON6, ((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndButton[7]=CreateWindow(TEXT("button"), button[7].szText, WS_CHILD|WS_VISIBLE|button[7].iStyle,50,220,50,50,hwnd,(HMENU)ID_BUTTON7,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndButton[8]=CreateWindow(TEXT("button"), button[8].szText, WS_CHILD|WS_VISIBLE|button[8].iStyle,100,220,50,50,hwnd,(HMENU)ID_BUTTON8,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndButton[9]=CreateWindow(TEXT("button"), button[9].szText, WS_CHILD|WS_VISIBLE|button[9].iStyle,0,270,100,50,hwnd,(HMENU)ID_BUTTON9,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndButton[10]=CreateWindow(TEXT("button"), button[10].szText, WS_CHILD|WS_VISIBLE|button[10].iStyle,0,70,50,50,hwnd,(HMENU)ID_BUTTON10, ((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndButton[11]=CreateWindow(TEXT("button"), button[11].szText, WS_CHILD|WS_VISIBLE|button[11].iStyle,100,270,50,50,hwnd,(HMENU)ID_BUTTON11,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndButton[12]=CreateWindow(TEXT("button"), button[12].szText, WS_CHILD|WS_VISIBLE|button[12].iStyle,50,70,50,50,hwnd,(HMENU)ID_BUTTON12, ((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndButton[13]=CreateWindow(TEXT("button"), button[13].szText, WS_CHILD|WS_VISIBLE|button[13].iStyle,100,70,50,50,hwnd,(HMENU)ID_BUTTON13,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndButton[14]=CreateWindow(TEXT("button"), button[14].szText, WS_CHILD|WS_VISIBLE|button[14].iStyle,150,70,70,50,hwnd,(HMENU)ID_BUTTON14, ((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndButton[15]=CreateWindow(TEXT("button"), button[15].szText, WS_CHILD|WS_VISIBLE|button[15].iStyle,150,120,70,50,hwnd,(HMENU)ID_BUTTON15, ((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndButton[16]=CreateWindow(TEXT("button"), button[16].szText, WS_CHILD|WS_VISIBLE|button[16].iStyle,150,170,70,50,hwnd,(HMENU)ID_BUTTON16, ((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndButton[17]=CreateWindow(TEXT("button"), button[17].szText, WS_CHILD|WS_VISIBLE|button[17].iStyle,150,220,70,50,hwnd,(HMENU)ID_BUTTON17, ((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndButton[18]=CreateWindow(TEXT("button"), button[18].szText, WS_CHILD|WS_VISIBLE|button[18].iStyle,150,270,70,50,hwnd,(HMENU)ID_BUTTON18, ((LPCREATESTRUCT)lParam)->hInstance,NULL);CreateWindowEx(0,"edit",NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_MULTILINE,0,0,220,70,hwnd, (HMENU)IDC_EDITTEXT,NULL,NULL);hwndEdit=GetDlgItem(hwnd,IDC_EDITTEXT);return 0;case WM_SIZE :rect.left = 24 * cxChar ;rect.top = 2 * cyChar ;rect.right = LOWORD (lParam) ;rect.bottom = HIWORD (lParam) ;return 0 ;case WM_PAINT :InvalidateRect (hwnd, &rect, TRUE) ;hdc = BeginPaint (hwnd, &ps) ;SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT)) ;SetBkMode (hdc, TRANSPARENT) ;EndPaint (hwnd, &ps) ;return 0 ;//case WM_DRAWITEM :// break;case WM_COMMAND :switch(LOWORD(wParam)){case ID_BUTTON0:{ //static TCHAR szBuffer1[]=TEXT("1");//str=str+"1";lstrcat(szBuffer, "1");//::TextOut(hdc,190,50,szBuffer,strlen(szBuffer));// ::DrawText(hdc, szBuffer, -1, &rectDrawLimit, DT_BOTTOM | DT_RIGHT);//---this SetWindowText(hwndEdit,szBuffer);return 0;}case ID_BUTTON1:{lstrcat(szBuffer, "2");//--this!// MessageBox(NULL,szBuffer,"",MB_OK);//::TextOut(hdc,188,50,szBuffer,lstrlen(szBuffer));//--this!// ::DrawText(hdc, szBuffer, -1, &rectDrawLimit, DT_BOTTOM | DT_RIGHT);//---this SetWindowText(hwndEdit,szBuffer);return 0;}case ID_BUTTON2:{ lstrcat(szBuffer, "3");SetWindowText(hwndEdit,szBuffer);return 0;}case ID_BUTTON3:{lstrcat(szBuffer, "4");SetWindowText(hwndEdit,szBuffer);return 0;}case ID_BUTTON4:{lstrcat(szBuffer, "5");SetWindowText(hwndEdit,szBuffer);return 0;}case ID_BUTTON5:{ lstrcat(szBuffer, "6");SetWindowText(hwndEdit,szBuffer);return 0;}case ID_BUTTON6:{ lstrcat(szBuffer, "7");SetWindowText(hwndEdit,szBuffer); return 0;}case ID_BUTTON7:{ lstrcat(szBuffer, "8");SetWindowText(hwndEdit,szBuffer); return 0;}case ID_BUTTON8:{ lstrcat(szBuffer, "9");SetWindowText(hwndEdit,szBuffer); return 0;}case ID_BUTTON9:{ lstrcat(szBuffer, "0");SetWindowText(hwndEdit,szBuffer);return 0;}case ID_BUTTON10:{memset(szBuffer, '\0', sizeof(szBuffer));SetWindowText(hwndEdit,szBuffer);return 0;}case ID_BUTTON11:{ lstrcat(szBuffer, ".");SetWindowText(hwndEdit,szBuffer); return 0;}case ID_BUTTON12:{ //lstrcat(szBuffer, "(");// SetWindowText(hwndEdit,szBuffer);number=atoi(szBuffer);memset(szBuffer, '\0', sizeof(szBuffer));sprintf(StringResult, "%f",sin(number));SetWindowText(hwndEdit,StringResult);return 0;}case ID_BUTTON13:{ //lstrcat(szBuffer, ")");//SetWindowText(hwndEdit,szBuffer);number=atoi(szBuffer);memset(szBuffer, '\0', sizeof(szBuffer));while(count<=number){num=num*count;count++;}sprintf(StringResult, "%f",num);SetWindowText(hwndEdit,StringResult);return 0;}case ID_BUTTON14:{ lstrcat(szBuffer, "+");SetWindowText(hwndEdit,szBuffer); return 0;}case ID_BUTTON15:{ lstrcat(szBuffer, "-");SetWindowText(hwndEdit,szBuffer); return 0;}case ID_BUTTON16:{ lstrcat(szBuffer, "*");SetWindowText(hwndEdit,szBuffer); return 0;}case ID_BUTTON17:{ lstrcat(szBuffer, "/");SetWindowText(hwndEdit,szBuffer);return 0;}case IDC_EDITTEXT:{return 0;}case ID_BUTTON18:{GetWindowText(hwndEdit,szString,1024);iLength=GetWindowTextLength(hwndEdit);// SetWindowText(hwndEdit,szString);strcpy(String,szString);memset(szBuffer, '\0', sizeof(szBuffer));// cout<<String<<endl;// cout<<iLength<<endl;while(isdigit(String[i])){ i++; }switch(String[i]){case '+': sscanf(String,"%f+%f",&FirstNumber,&NextNumber);ResultNumber=FirstNumber+NextNumber;break;case '-': sscanf(String,"%f-%f",&FirstNumber,&NextNumber);ResultNumber=FirstNumber-NextNumber;break;case '*': sscanf(String,"%f*%f",&FirstNumber,&NextNumber);ResultNumber=FirstNumber*NextNumber;break;case '/': sscanf(String,"%f/%f",&FirstNumber,&NextNumber);ResultNumber=FirstNumber/NextNumber;break;default: break;}// cout<<ResultNumber<<endl;sprintf(StringResult, "%f",ResultNumber );SetWindowText(hwndEdit,StringResult);FirstNumber=0;NextNumber=0;ResultNumber=0;memset(StringResult, '\0', sizeof(StringResult));memset(szString, '\0', sizeof(szString));memset(String, '\0', sizeof(String));return 0;}}case WM_DESTROY :PostQuitMessage (0) ;return 0 ;}return DefWindowProc (hwnd, message, wParam, lParam) ; }附录2:计算2*32的正弦:5的阶乘:。

相关文档
最新文档