zoukankan      html  css  js  c++  java
  • 面向对象程序设计课第六次作业

    面向对象程序设计课第六次作业

    此次作业是实现计算器的 GUI 界面。虽然看起来并不是很难,但深坑还是挺多。新建项目后把原来的输入、输出、计算等文件导入并 include 在新的 CalculatorDlg 类中。

    难点及解决

    • 焦点问题
      由于有三个 EDIT 框,启动后会自动将焦点聚焦于文件输入输出路径框,而无法响应主要计算的键盘输入,因此我添加了一个按钮来使另外两个 EDIT 框失焦,这样就可以用键盘输入了。

    • 键盘输入问题
      在网上了解到想要从键盘输入,需要调用 PreTranslateMessage 函数实现,对每一个按键进行 switch case 逻辑处理然后显示到输出框。这里需要使用到虚拟键码,还需要判断 shift 键是否按下等等。而主键盘的按键没有虚拟键码,只有对应的值。

    • 输入格式问题
      这个问题很复杂,需要使输入的式子满足计算的要求,因此,不能多个小数点/加减乘除(除了减号)同时上屏,若按下需要忽略,所以,我声明了一个 bool 变量 noPoint 来标记是否输入了小数点,用一个 int 变量 typedSign 来累计输入的符号,若大于 1 则不可输入除减号外的符号,用一个 bool 变量 clickedEqual 来标记是否按下了等于号,按下后,不可输入数字,可以输入符号(除了小数点),以便进一步计算,若按下数字则清屏。

    Github 链接

    https://github.com/ladit/object-oriented/tree/master/Calculator GUI

    参考链接

    以及其他未记录的博客/问答……

  • 相关阅读:
    java后端
    2017-12-11
    二叉树与分治法整理
    javaweb
    安装docker
    爬虫
    lintcode
    DEEPlearning
    剑指offer_by牛客网
    DFS
  • 原文地址:https://www.cnblogs.com/ladit/p/Assignment_6.html
Copyright © 2011-2022 走看看