├── res
├── 图标.png
├── 图标.psd
├── lview.bmp
├── qview.bmp
├── store.bmp
├── Toolbar.bmp
├── QuickQuiz.aps
├── QuickQuiz.ico
├── QuickQuiz.rc
├── QuickQuiz.rc2
└── default1.bin
├── src
├── AES.h
├── Doc.h
├── Item.h
├── List.h
├── Text.h
├── View.h
├── AES.cpp
├── Base64.h
├── Blank.cpp
├── Blank.h
├── Choise.h
├── Doc.cpp
├── EditDlg.h
├── Item.cpp
├── Judge.cpp
├── Judge.h
├── List.cpp
├── Paper.cpp
├── Paper.h
├── QEdit.cpp
├── QError.h
├── QList.cpp
├── QList.h
├── StdAfx.h
├── Test.cpp
├── TestBar.h
├── Text.cpp
├── View.cpp
├── ViewDlg.h
├── XmlTags.h
├── define.h
├── Base64.cpp
├── Choise.cpp
├── DataList.h
├── EditDlg.cpp
├── EditFrame.h
├── ItemGroup.h
├── ListFrame.h
├── MainFrm.cpp
├── QButton.cpp
├── StdAfx.cpp
├── TempList.h
├── TestFrame.h
├── TestMaker.h
├── TestPara.h
├── ViewDlg.cpp
├── ClrCommon.cpp
├── ClrDialog.cpp
├── DataList.cpp
├── EditFrame.cpp
├── FindText.cpp
├── ImageFrame.cpp
├── ImageFrame.h
├── ImageManager.h
├── ItemGroup.cpp
├── ItemGroupDlg.h
├── ItemShowWnd.h
├── LeftView.cpp
├── ListFrame.cpp
├── PaperMaker.cpp
├── PaperMaker.h
├── PaperSave.cpp
├── PaperUndo.cpp
├── QComboBox.cpp
├── QGroupBox.cpp
├── QTabCtrl.cpp
├── QuickQuiz.cpp
├── ShowManager.h
├── StopWatch.cpp
├── TempList.cpp
├── TestFrame.cpp
├── TestMaker.cpp
├── TextManager.h
├── TxtOutDlg.cpp
├── WordByWord.cpp
├── AllBuildDlg.cpp
├── ImageManager.cpp
├── ItemGroupDlg.cpp
├── ItemShowWnd.cpp
├── JpegCoverDlg.cpp
├── PasswordDlg.cpp
├── ShowManager.cpp
├── TMessageBox.cpp
├── TextManager.cpp
├── BlkTxtCheckDlg.cpp
├── ChildBlankDlg.cpp
├── ChildMChoiseDlg.cpp
├── ChildSChoiseDlg.cpp
├── FixedSharedFile.h
├── TestSetCommDlg.cpp
├── TextSimilarity.cpp
├── TestCompetitiveDlg.h
├── TypePropertiesDlg.cpp
├── FixedRecentFileList.cpp
├── TestCompetitiveDlg.cpp
├── MD5.h
├── ClrCommon.h
├── QError.cpp
├── AnsiCEx.h
├── FixedRecentFileList.h
├── StopWatch.h
├── TextSimilarity.h
├── ItemPtr.h
├── MemBmp.h
├── FindText.h
├── CopyExDlg.cpp
├── QComboBox.h
├── AddTypeDlg.h
├── TabPage.h
├── CodeDlg.h
├── CopyExDlg.h
├── SummaryLenDlg.h
├── ClrDialog.h
├── QColorSetter.h
├── AddTypeDlg.cpp
├── CodeDlg.cpp
├── QButton.h
├── BatchSetDlg.h
├── TabPage.cpp
├── QuickQuiz.h
├── SummaryLenDlg.cpp
├── QColorSetter.cpp
├── ChooseTypeDlg.h
├── TMessageBox.h
├── WordByWord.h
├── QTabCtrl.h
├── TxtOutDlg.h
├── ImageBar.h
├── BlkTxtCheckDlg.h
├── XmlTags.cpp
├── JpegCoverDlg.h
├── MainFrm.h
├── ChildJudgeDlg.cpp
├── QEdit.h
├── BatchSetDlg.cpp
├── ChildTextDlg.cpp
├── AnsiCEx.cpp
├── QGroupBox.h
├── TestSetDlg.cpp
├── PasswordDlg.h
├── PaperPropertiesDlg.cpp
└── TestSetBlkTxtDlg.cpp
├── docs
├── images
│ ├── bg.png
│ ├── info.png
│ ├── lock.png
│ ├── save.png
│ ├── text.png
│ ├── view.png
│ ├── blank.png
│ ├── compok.png
│ ├── copyex.png
│ ├── demo.jpeg
│ ├── error.png
│ ├── itemp.png
│ ├── judge.png
│ ├── maketxt.png
│ ├── mchoise.png
│ ├── netspy.png
│ ├── nettest.png
│ ├── netview.png
│ ├── newitem.png
│ ├── newtool.png
│ ├── paperc.png
│ ├── papero.png
│ ├── paperp.png
│ ├── parse.png
│ ├── schoise.png
│ ├── score.png
│ ├── setpass.png
│ ├── storec.png
│ ├── storeo.png
│ ├── testgo.png
│ ├── testgo2.png
│ ├── testset.png
│ ├── title.png
│ ├── typec.png
│ ├── typeg.png
│ ├── typep.png
│ ├── types.png
│ ├── viewset.png
│ ├── win95.png
│ ├── addcustom.png
│ ├── batchset.png
│ ├── compshow.png
│ ├── copycover.png
│ ├── darkview.png
│ ├── duplicate.png
│ ├── editframe.png
│ ├── edititem.png
│ ├── editmenu.png
│ ├── filemenu.png
│ ├── greenview.png
│ ├── groupshow.png
│ ├── interface.png
│ ├── itemimage.png
│ ├── makehtml1.png
│ ├── makehtml2.png
│ ├── makelist.png
│ ├── newgroup.png
│ ├── papermenu.png
│ ├── setcover.png
│ ├── setcustom.png
│ ├── showimage.png
│ ├── storeicon.png
│ ├── storeitem.png
│ ├── testmenu.png
│ ├── testshow.png
│ ├── txtcheck.png
│ ├── viewmenu.png
│ ├── background.jpg
│ ├── competitive.png
│ ├── custommenu.png
│ ├── makeanswerin.png
│ ├── makeformat.png
│ ├── netinterface.png
│ ├── nettestset.png
│ ├── nettestview.png
│ ├── testtxtset.png
│ ├── makeansweronly.png
│ ├── testchoiseset.png
│ └── competitiveshow.gif
├── 4.0.3_spy.html
├── 1.1.0_toolbar.html
├── 0.0.2_whatsnew.html
├── 0.0.4_index.html
├── 2.1.2_extern.html
├── 1.2.3_itemimage.html
├── 2.1.1_check.html
├── 1.0.5_testmenu.html
├── 2.0.0_develop.html
├── 1.2.1_storeitem.html
├── 0.0.1_about.html
├── 0.0.3_inold.html
├── 2.0.5_saveformat.html
├── 1.3.1_view.html
├── 4.0.1_view.html
├── index.html
├── 1.2.2_edititem.html
├── 4.0.0_net.html
├── 1.2.7_customtype.html
├── 4.0.2_test.html
├── 2.0.1_code.html
├── 1.0.6_viewmenu.html
├── 1.0.0_content.html
├── 1.3.3_competitive.html
├── css
│ └── style.css
├── 1.2.5_batchset.html
├── 2.0.2_binformat.html
├── 1.2.4_setcover.html
└── 1.0.1_interface.html
├── lib
├── libjpeg
│ ├── jpeg.dsw
│ ├── jversion.h
│ └── jconfig.h
├── original_package
│ ├── 库使用说明.txt
│ ├── jpegsr9d.zip
│ ├── lpng1422.zip
│ ├── lpng1637.zip
│ ├── zlib-1.2.11.tar.gz
│ ├── zlib-1.2.5.2.tar.gz
│ └── tinyxml_2_6_2.tar.gz
├── zlib
│ ├── inffast.h
│ ├── project
│ │ └── visualc6
│ │ │ └── zlib.dsw
│ ├── gzclose.c
│ ├── win32
│ │ ├── zlib1.rc
│ │ └── zlib.def
│ ├── compress.c
│ └── inftrees.h
├── libpng
│ └── projects
│ │ └── visualc6
│ │ └── libpng.dsw
└── tinyxml
│ ├── tinyxmlerror.cpp
│ └── tinystr.cpp
├── Bin
├── 2.0.0.0
│ ├── 学习强国500题.qux
│ ├── 2021高考全国I语文.qux
│ ├── MBCS
│ │ └── QuickQuiz.exe
│ ├── Unicode
│ │ └── QuickQuiz.exe
│ ├── MBCS_Debug
│ │ └── QuickQuiz.exe
│ └── Unicode_Debug
│ │ └── QuickQuiz.exe
└── 1.2.4_52发布版
│ ├── MBCS
│ └── QuickQuiz.exe
│ └── Unicode
│ └── QuickQuiz.exe
├── README.md
└── QuickQuiz.dsw
/res/图标.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/res/图标.png
--------------------------------------------------------------------------------
/res/图标.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/res/图标.psd
--------------------------------------------------------------------------------
/src/AES.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/AES.h
--------------------------------------------------------------------------------
/src/Doc.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Doc.h
--------------------------------------------------------------------------------
/src/Item.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Item.h
--------------------------------------------------------------------------------
/src/List.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/List.h
--------------------------------------------------------------------------------
/src/Text.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Text.h
--------------------------------------------------------------------------------
/src/View.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/View.h
--------------------------------------------------------------------------------
/res/lview.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/res/lview.bmp
--------------------------------------------------------------------------------
/res/qview.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/res/qview.bmp
--------------------------------------------------------------------------------
/res/store.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/res/store.bmp
--------------------------------------------------------------------------------
/src/AES.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/AES.cpp
--------------------------------------------------------------------------------
/src/Base64.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Base64.h
--------------------------------------------------------------------------------
/src/Blank.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Blank.cpp
--------------------------------------------------------------------------------
/src/Blank.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Blank.h
--------------------------------------------------------------------------------
/src/Choise.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Choise.h
--------------------------------------------------------------------------------
/src/Doc.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Doc.cpp
--------------------------------------------------------------------------------
/src/EditDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/EditDlg.h
--------------------------------------------------------------------------------
/src/Item.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Item.cpp
--------------------------------------------------------------------------------
/src/Judge.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Judge.cpp
--------------------------------------------------------------------------------
/src/Judge.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Judge.h
--------------------------------------------------------------------------------
/src/List.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/List.cpp
--------------------------------------------------------------------------------
/src/Paper.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Paper.cpp
--------------------------------------------------------------------------------
/src/Paper.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Paper.h
--------------------------------------------------------------------------------
/src/QEdit.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/QEdit.cpp
--------------------------------------------------------------------------------
/src/QError.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/QError.h
--------------------------------------------------------------------------------
/src/QList.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/QList.cpp
--------------------------------------------------------------------------------
/src/QList.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/QList.h
--------------------------------------------------------------------------------
/src/StdAfx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/StdAfx.h
--------------------------------------------------------------------------------
/src/Test.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Test.cpp
--------------------------------------------------------------------------------
/src/TestBar.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TestBar.h
--------------------------------------------------------------------------------
/src/Text.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Text.cpp
--------------------------------------------------------------------------------
/src/View.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/View.cpp
--------------------------------------------------------------------------------
/src/ViewDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ViewDlg.h
--------------------------------------------------------------------------------
/src/XmlTags.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/XmlTags.h
--------------------------------------------------------------------------------
/src/define.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/define.h
--------------------------------------------------------------------------------
/res/Toolbar.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/res/Toolbar.bmp
--------------------------------------------------------------------------------
/src/Base64.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Base64.cpp
--------------------------------------------------------------------------------
/src/Choise.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Choise.cpp
--------------------------------------------------------------------------------
/src/DataList.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/DataList.h
--------------------------------------------------------------------------------
/src/EditDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/EditDlg.cpp
--------------------------------------------------------------------------------
/src/EditFrame.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/EditFrame.h
--------------------------------------------------------------------------------
/src/ItemGroup.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ItemGroup.h
--------------------------------------------------------------------------------
/src/ListFrame.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ListFrame.h
--------------------------------------------------------------------------------
/src/MainFrm.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/MainFrm.cpp
--------------------------------------------------------------------------------
/src/QButton.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/QButton.cpp
--------------------------------------------------------------------------------
/src/StdAfx.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/StdAfx.cpp
--------------------------------------------------------------------------------
/src/TempList.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TempList.h
--------------------------------------------------------------------------------
/src/TestFrame.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TestFrame.h
--------------------------------------------------------------------------------
/src/TestMaker.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TestMaker.h
--------------------------------------------------------------------------------
/src/TestPara.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TestPara.h
--------------------------------------------------------------------------------
/src/ViewDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ViewDlg.cpp
--------------------------------------------------------------------------------
/docs/images/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/bg.png
--------------------------------------------------------------------------------
/res/QuickQuiz.aps:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/res/QuickQuiz.aps
--------------------------------------------------------------------------------
/res/QuickQuiz.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/res/QuickQuiz.ico
--------------------------------------------------------------------------------
/res/QuickQuiz.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/res/QuickQuiz.rc
--------------------------------------------------------------------------------
/src/ClrCommon.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ClrCommon.cpp
--------------------------------------------------------------------------------
/src/ClrDialog.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ClrDialog.cpp
--------------------------------------------------------------------------------
/src/DataList.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/DataList.cpp
--------------------------------------------------------------------------------
/src/EditFrame.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/EditFrame.cpp
--------------------------------------------------------------------------------
/src/FindText.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/FindText.cpp
--------------------------------------------------------------------------------
/src/ImageFrame.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ImageFrame.cpp
--------------------------------------------------------------------------------
/src/ImageFrame.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ImageFrame.h
--------------------------------------------------------------------------------
/src/ImageManager.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ImageManager.h
--------------------------------------------------------------------------------
/src/ItemGroup.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ItemGroup.cpp
--------------------------------------------------------------------------------
/src/ItemGroupDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ItemGroupDlg.h
--------------------------------------------------------------------------------
/src/ItemShowWnd.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ItemShowWnd.h
--------------------------------------------------------------------------------
/src/LeftView.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/LeftView.cpp
--------------------------------------------------------------------------------
/src/ListFrame.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ListFrame.cpp
--------------------------------------------------------------------------------
/src/PaperMaker.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/PaperMaker.cpp
--------------------------------------------------------------------------------
/src/PaperMaker.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/PaperMaker.h
--------------------------------------------------------------------------------
/src/PaperSave.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/PaperSave.cpp
--------------------------------------------------------------------------------
/src/PaperUndo.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/PaperUndo.cpp
--------------------------------------------------------------------------------
/src/QComboBox.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/QComboBox.cpp
--------------------------------------------------------------------------------
/src/QGroupBox.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/QGroupBox.cpp
--------------------------------------------------------------------------------
/src/QTabCtrl.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/QTabCtrl.cpp
--------------------------------------------------------------------------------
/src/QuickQuiz.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/QuickQuiz.cpp
--------------------------------------------------------------------------------
/src/ShowManager.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ShowManager.h
--------------------------------------------------------------------------------
/src/StopWatch.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/StopWatch.cpp
--------------------------------------------------------------------------------
/src/TempList.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TempList.cpp
--------------------------------------------------------------------------------
/src/TestFrame.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TestFrame.cpp
--------------------------------------------------------------------------------
/src/TestMaker.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TestMaker.cpp
--------------------------------------------------------------------------------
/src/TextManager.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TextManager.h
--------------------------------------------------------------------------------
/src/TxtOutDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TxtOutDlg.cpp
--------------------------------------------------------------------------------
/src/WordByWord.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/WordByWord.cpp
--------------------------------------------------------------------------------
/docs/images/info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/info.png
--------------------------------------------------------------------------------
/docs/images/lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/lock.png
--------------------------------------------------------------------------------
/docs/images/save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/save.png
--------------------------------------------------------------------------------
/docs/images/text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/text.png
--------------------------------------------------------------------------------
/docs/images/view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/view.png
--------------------------------------------------------------------------------
/lib/libjpeg/jpeg.dsw:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/lib/libjpeg/jpeg.dsw
--------------------------------------------------------------------------------
/src/AllBuildDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/AllBuildDlg.cpp
--------------------------------------------------------------------------------
/src/ImageManager.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ImageManager.cpp
--------------------------------------------------------------------------------
/src/ItemGroupDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ItemGroupDlg.cpp
--------------------------------------------------------------------------------
/src/ItemShowWnd.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ItemShowWnd.cpp
--------------------------------------------------------------------------------
/src/JpegCoverDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/JpegCoverDlg.cpp
--------------------------------------------------------------------------------
/src/PasswordDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/PasswordDlg.cpp
--------------------------------------------------------------------------------
/src/ShowManager.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ShowManager.cpp
--------------------------------------------------------------------------------
/src/TMessageBox.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TMessageBox.cpp
--------------------------------------------------------------------------------
/src/TextManager.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TextManager.cpp
--------------------------------------------------------------------------------
/docs/images/blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/blank.png
--------------------------------------------------------------------------------
/docs/images/compok.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/compok.png
--------------------------------------------------------------------------------
/docs/images/copyex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/copyex.png
--------------------------------------------------------------------------------
/docs/images/demo.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/demo.jpeg
--------------------------------------------------------------------------------
/docs/images/error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/error.png
--------------------------------------------------------------------------------
/docs/images/itemp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/itemp.png
--------------------------------------------------------------------------------
/docs/images/judge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/judge.png
--------------------------------------------------------------------------------
/docs/images/maketxt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/maketxt.png
--------------------------------------------------------------------------------
/docs/images/mchoise.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/mchoise.png
--------------------------------------------------------------------------------
/docs/images/netspy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/netspy.png
--------------------------------------------------------------------------------
/docs/images/nettest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/nettest.png
--------------------------------------------------------------------------------
/docs/images/netview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/netview.png
--------------------------------------------------------------------------------
/docs/images/newitem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/newitem.png
--------------------------------------------------------------------------------
/docs/images/newtool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/newtool.png
--------------------------------------------------------------------------------
/docs/images/paperc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/paperc.png
--------------------------------------------------------------------------------
/docs/images/papero.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/papero.png
--------------------------------------------------------------------------------
/docs/images/paperp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/paperp.png
--------------------------------------------------------------------------------
/docs/images/parse.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/parse.png
--------------------------------------------------------------------------------
/docs/images/schoise.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/schoise.png
--------------------------------------------------------------------------------
/docs/images/score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/score.png
--------------------------------------------------------------------------------
/docs/images/setpass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/setpass.png
--------------------------------------------------------------------------------
/docs/images/storec.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/storec.png
--------------------------------------------------------------------------------
/docs/images/storeo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/storeo.png
--------------------------------------------------------------------------------
/docs/images/testgo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/testgo.png
--------------------------------------------------------------------------------
/docs/images/testgo2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/testgo2.png
--------------------------------------------------------------------------------
/docs/images/testset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/testset.png
--------------------------------------------------------------------------------
/docs/images/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/title.png
--------------------------------------------------------------------------------
/docs/images/typec.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/typec.png
--------------------------------------------------------------------------------
/docs/images/typeg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/typeg.png
--------------------------------------------------------------------------------
/docs/images/typep.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/typep.png
--------------------------------------------------------------------------------
/docs/images/types.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/types.png
--------------------------------------------------------------------------------
/docs/images/viewset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/viewset.png
--------------------------------------------------------------------------------
/docs/images/win95.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/win95.png
--------------------------------------------------------------------------------
/src/BlkTxtCheckDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/BlkTxtCheckDlg.cpp
--------------------------------------------------------------------------------
/src/ChildBlankDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ChildBlankDlg.cpp
--------------------------------------------------------------------------------
/src/ChildMChoiseDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ChildMChoiseDlg.cpp
--------------------------------------------------------------------------------
/src/ChildSChoiseDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ChildSChoiseDlg.cpp
--------------------------------------------------------------------------------
/src/FixedSharedFile.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/FixedSharedFile.h
--------------------------------------------------------------------------------
/src/TestSetCommDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TestSetCommDlg.cpp
--------------------------------------------------------------------------------
/src/TextSimilarity.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TextSimilarity.cpp
--------------------------------------------------------------------------------
/Bin/2.0.0.0/学习强国500题.qux:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/Bin/2.0.0.0/学习强国500题.qux
--------------------------------------------------------------------------------
/docs/images/addcustom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/addcustom.png
--------------------------------------------------------------------------------
/docs/images/batchset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/batchset.png
--------------------------------------------------------------------------------
/docs/images/compshow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/compshow.png
--------------------------------------------------------------------------------
/docs/images/copycover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/copycover.png
--------------------------------------------------------------------------------
/docs/images/darkview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/darkview.png
--------------------------------------------------------------------------------
/docs/images/duplicate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/duplicate.png
--------------------------------------------------------------------------------
/docs/images/editframe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/editframe.png
--------------------------------------------------------------------------------
/docs/images/edititem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/edititem.png
--------------------------------------------------------------------------------
/docs/images/editmenu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/editmenu.png
--------------------------------------------------------------------------------
/docs/images/filemenu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/filemenu.png
--------------------------------------------------------------------------------
/docs/images/greenview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/greenview.png
--------------------------------------------------------------------------------
/docs/images/groupshow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/groupshow.png
--------------------------------------------------------------------------------
/docs/images/interface.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/interface.png
--------------------------------------------------------------------------------
/docs/images/itemimage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/itemimage.png
--------------------------------------------------------------------------------
/docs/images/makehtml1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/makehtml1.png
--------------------------------------------------------------------------------
/docs/images/makehtml2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/makehtml2.png
--------------------------------------------------------------------------------
/docs/images/makelist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/makelist.png
--------------------------------------------------------------------------------
/docs/images/newgroup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/newgroup.png
--------------------------------------------------------------------------------
/docs/images/papermenu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/papermenu.png
--------------------------------------------------------------------------------
/docs/images/setcover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/setcover.png
--------------------------------------------------------------------------------
/docs/images/setcustom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/setcustom.png
--------------------------------------------------------------------------------
/docs/images/showimage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/showimage.png
--------------------------------------------------------------------------------
/docs/images/storeicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/storeicon.png
--------------------------------------------------------------------------------
/docs/images/storeitem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/storeitem.png
--------------------------------------------------------------------------------
/docs/images/testmenu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/testmenu.png
--------------------------------------------------------------------------------
/docs/images/testshow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/testshow.png
--------------------------------------------------------------------------------
/docs/images/txtcheck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/txtcheck.png
--------------------------------------------------------------------------------
/docs/images/viewmenu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/viewmenu.png
--------------------------------------------------------------------------------
/src/TestCompetitiveDlg.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TestCompetitiveDlg.h
--------------------------------------------------------------------------------
/src/TypePropertiesDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TypePropertiesDlg.cpp
--------------------------------------------------------------------------------
/Bin/2.0.0.0/2021高考全国I语文.qux:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/Bin/2.0.0.0/2021高考全国I语文.qux
--------------------------------------------------------------------------------
/docs/images/background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/background.jpg
--------------------------------------------------------------------------------
/docs/images/competitive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/competitive.png
--------------------------------------------------------------------------------
/docs/images/custommenu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/custommenu.png
--------------------------------------------------------------------------------
/docs/images/makeanswerin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/makeanswerin.png
--------------------------------------------------------------------------------
/docs/images/makeformat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/makeformat.png
--------------------------------------------------------------------------------
/docs/images/netinterface.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/netinterface.png
--------------------------------------------------------------------------------
/docs/images/nettestset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/nettestset.png
--------------------------------------------------------------------------------
/docs/images/nettestview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/nettestview.png
--------------------------------------------------------------------------------
/docs/images/testtxtset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/testtxtset.png
--------------------------------------------------------------------------------
/src/FixedRecentFileList.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/FixedRecentFileList.cpp
--------------------------------------------------------------------------------
/src/TestCompetitiveDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TestCompetitiveDlg.cpp
--------------------------------------------------------------------------------
/Bin/2.0.0.0/MBCS/QuickQuiz.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/Bin/2.0.0.0/MBCS/QuickQuiz.exe
--------------------------------------------------------------------------------
/docs/images/makeansweronly.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/makeansweronly.png
--------------------------------------------------------------------------------
/docs/images/testchoiseset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/testchoiseset.png
--------------------------------------------------------------------------------
/lib/original_package/库使用说明.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/lib/original_package/库使用说明.txt
--------------------------------------------------------------------------------
/Bin/2.0.0.0/Unicode/QuickQuiz.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/Bin/2.0.0.0/Unicode/QuickQuiz.exe
--------------------------------------------------------------------------------
/docs/images/competitiveshow.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/competitiveshow.gif
--------------------------------------------------------------------------------
/lib/original_package/jpegsr9d.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/lib/original_package/jpegsr9d.zip
--------------------------------------------------------------------------------
/lib/original_package/lpng1422.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/lib/original_package/lpng1422.zip
--------------------------------------------------------------------------------
/lib/original_package/lpng1637.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/lib/original_package/lpng1637.zip
--------------------------------------------------------------------------------
/Bin/1.2.4_52发布版/MBCS/QuickQuiz.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/Bin/1.2.4_52发布版/MBCS/QuickQuiz.exe
--------------------------------------------------------------------------------
/Bin/1.2.4_52发布版/Unicode/QuickQuiz.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/Bin/1.2.4_52发布版/Unicode/QuickQuiz.exe
--------------------------------------------------------------------------------
/Bin/2.0.0.0/MBCS_Debug/QuickQuiz.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/Bin/2.0.0.0/MBCS_Debug/QuickQuiz.exe
--------------------------------------------------------------------------------
/Bin/2.0.0.0/Unicode_Debug/QuickQuiz.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/Bin/2.0.0.0/Unicode_Debug/QuickQuiz.exe
--------------------------------------------------------------------------------
/lib/original_package/zlib-1.2.11.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/lib/original_package/zlib-1.2.11.tar.gz
--------------------------------------------------------------------------------
/lib/original_package/zlib-1.2.5.2.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/lib/original_package/zlib-1.2.5.2.tar.gz
--------------------------------------------------------------------------------
/lib/original_package/tinyxml_2_6_2.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/lib/original_package/tinyxml_2_6_2.tar.gz
--------------------------------------------------------------------------------
/src/MD5.h:
--------------------------------------------------------------------------------
1 | #ifndef MD5_H
2 | #define MD5_H
3 |
4 | #define MD5FUNC __stdcall
5 |
6 | void MD5FUNC MakeMD5(unsigned char* inputBytes, int byteLen, unsigned char digest[16]);
7 | void MD5FUNC MakeMD5Hex(unsigned char digest[16], char* hexStr);
8 |
9 | #endif
--------------------------------------------------------------------------------
/res/QuickQuiz.rc2:
--------------------------------------------------------------------------------
1 | //
2 | // QUICKQUIZ.RC2 - resources Microsoft Visual C++ does not edit directly
3 | //
4 |
5 | #ifdef APSTUDIO_INVOKED
6 | #error this file is not editable by Microsoft Visual C++
7 | #endif //APSTUDIO_INVOKED
8 |
9 |
10 | /////////////////////////////////////////////////////////////////////////////
11 | // Add manually edited resources here...
12 |
13 | /////////////////////////////////////////////////////////////////////////////
14 |
--------------------------------------------------------------------------------
/lib/libjpeg/jversion.h:
--------------------------------------------------------------------------------
1 | /*
2 | * jversion.h
3 | *
4 | * Copyright (C) 1991-2020, Thomas G. Lane, Guido Vollbeding.
5 | * This file is part of the Independent JPEG Group's software.
6 | * For conditions of distribution and use, see the accompanying README file.
7 | *
8 | * This file contains software version identification.
9 | */
10 |
11 |
12 | #define JVERSION "9d 12-Jan-2020"
13 |
14 | #define JCOPYRIGHT "Copyright (C) 2020, Thomas G. Lane, Guido Vollbeding"
15 |
--------------------------------------------------------------------------------
/lib/zlib/inffast.h:
--------------------------------------------------------------------------------
1 | /* inffast.h -- header to use inffast.c
2 | * Copyright (C) 1995-2003, 2010 Mark Adler
3 | * For conditions of distribution and use, see copyright notice in zlib.h
4 | */
5 |
6 | /* WARNING: this file should *not* be used by applications. It is
7 | part of the implementation of the compression library and is
8 | subject to change. Applications should only use zlib.h.
9 | */
10 |
11 | void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start));
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # QuickQuiz
2 | 答题软件
3 |
4 | ## 更新日志
5 | #### 2021/8/20提交最初版本V2.0
6 | 1. 取消了智能识别功能中,选项号后有空格也识别为新的选项(避免在识别全英文题目时错误识别)
7 | 2. 修正了批量生成中答案可能探测不到的问题(题干中有多个括号时)
8 | 3. 删除了不适合公开的内容
9 |
10 | #### 2021/8/22提交修改V2.0
11 | 感谢52网友swagger的测试
12 | 修正以下问题:
13 | 1. 新建题目时无法批量删除的问题
14 | 2. 去掉了编辑题目时不允许新增和删除题目的限制
15 | 3. 修正了新建选择题不输入选项而新建时导致假死的问题
16 | 4. 新建题目时切换单选题和多选题自动拷贝选项内容
17 |
18 | #### 2021/8/26提交修改V2.0
19 | 感谢52网友sky9131986的测试
20 | 修正以下问题:
21 | 1. 修正了对类似“12.345”题目去题号时,会将点号后面的数字一起去掉的问题
22 | 2. 修正了新建题库后收藏题目,不保存题库仍会生成收藏夹文件的问题
23 | 3. 复制题目将复制收藏信息
24 |
25 | #### 2021/9/13提交修改V2.0
26 | 感谢网友ahit976的测试
27 | 修正以下问题:
28 | 1. 添加自定义类型题目会导致闪退的问题。
29 |
--------------------------------------------------------------------------------
/lib/zlib/project/visualc6/zlib.dsw:
--------------------------------------------------------------------------------
1 | Microsoft Developer Studio Workspace File, Format Version 6.00
2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
3 |
4 | ###############################################################################
5 |
6 | Project: "zlib"=".\zlib.dsp" - Package Owner=<4>
7 |
8 | Package=<5>
9 | {{{
10 | }}}
11 |
12 | Package=<4>
13 | {{{
14 | }}}
15 |
16 | ###############################################################################
17 |
18 | Global:
19 |
20 | Package=<5>
21 | {{{
22 | }}}
23 |
24 | Package=<3>
25 | {{{
26 | }}}
27 |
28 | ###############################################################################
29 |
30 |
--------------------------------------------------------------------------------
/src/ClrCommon.h:
--------------------------------------------------------------------------------
1 | #ifndef _CLRCOMMON_H_
2 | #define _CLRCOMMON_H_
3 |
4 | #define CLRTYPE_DEFAULT 0
5 | #define CLRTYPE_GREEN 1
6 | #define CLRTYPE_DARK 2
7 |
8 | enum QColor {
9 | QCOLOR_FACE = 0,
10 | QCOLOR_EDITFACE,
11 | QCOLOR_SHADOW,
12 | QCOLOR_HIGHLIGHT,
13 | QCOLOR_BORDER,
14 | QCOLOR_TEXT,
15 | QCOLOR_TEXTDISABLE,
16 | QCOLOR_TEXTHIGHLIGHT,
17 | QCOLOR_TEXTFOCUS,
18 | QCOLOR_TEXTSELECTBACK
19 | };
20 |
21 | extern int g_nColorType;
22 | extern HBRUSH g_hGreenBrush;
23 | extern HBRUSH g_hDarkBrush;
24 |
25 | void FUNCCALL AfxInitGlobalBrush();
26 | void FUNCCALL AfxDestroyGlobalBrush();
27 |
28 | COLORREF FUNCCALL AfxGetQColor(UINT uColorIndex);
29 | HBRUSH FUNCCALL AfxGetQBrush();
30 |
31 | #endif // #define _CLRCOMMON_H_
--------------------------------------------------------------------------------
/res/default1.bin:
--------------------------------------------------------------------------------
1 |
2 |
4 |
10 | YourApplication
11 |
12 |
13 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/src/QError.cpp:
--------------------------------------------------------------------------------
1 |
2 | #include "StdAfx.h"
3 | #include "QError.h"
4 |
5 | typedef struct _tagError
6 | {
7 | long lErrorCode;
8 | BOOL bFatal;
9 | }QERROR;
10 |
11 | static QERROR error = {ERROR_NO_ERROR, FALSE};
12 |
13 | BOOL FUNCCALL ClearError()
14 | {
15 | error.lErrorCode = ERROR_NO_ERROR;
16 | error.bFatal = FALSE;
17 | return TRUE;
18 | }
19 |
20 | BOOL FUNCCALL SetError(long lCode, BOOL bFatal)
21 | {
22 | if (error.lErrorCode != ERROR_NO_ERROR)
23 | {
24 | if (!bFatal || error.bFatal)
25 | {
26 | return FALSE;
27 | }
28 | }
29 |
30 | error.lErrorCode = lCode;
31 | error.bFatal = bFatal;
32 | return FALSE;
33 | }
34 |
35 | long FUNCCALL GetError()
36 | {
37 | return error.lErrorCode;
38 | }
39 |
40 | BOOL FUNCCALL IsFatal()
41 | {
42 | return error.bFatal;
43 | }
--------------------------------------------------------------------------------
/lib/zlib/gzclose.c:
--------------------------------------------------------------------------------
1 | /* gzclose.c -- zlib gzclose() function
2 | * Copyright (C) 2004, 2010 Mark Adler
3 | * For conditions of distribution and use, see copyright notice in zlib.h
4 | */
5 |
6 | #include "gzguts.h"
7 |
8 | /* gzclose() is in a separate file so that it is linked in only if it is used.
9 | That way the other gzclose functions can be used instead to avoid linking in
10 | unneeded compression or decompression routines. */
11 | int ZEXPORT gzclose(file)
12 | gzFile file;
13 | {
14 | #ifndef NO_GZCOMPRESS
15 | gz_statep state;
16 |
17 | if (file == NULL)
18 | return Z_STREAM_ERROR;
19 | state = (gz_statep)file;
20 |
21 | return state->mode == GZ_READ ? gzclose_r(file) : gzclose_w(file);
22 | #else
23 | return gzclose_r(file);
24 | #endif
25 | }
26 |
--------------------------------------------------------------------------------
/src/AnsiCEx.h:
--------------------------------------------------------------------------------
1 | #ifndef _ANSI_C_EX_H_
2 | #define _ANSI_C_EX_H_
3 |
4 | wchar_t* __cdecl wcsrchr_e(const wchar_t *string, const wchar_t *end, int c);
5 | wchar_t* __cdecl wcscpyn(wchar_t *strDest, const wchar_t *strSource, int iMaxLength);
6 | wchar_t* __cdecl wcsstri(const wchar_t *string, const wchar_t *search);
7 |
8 | char* __cdecl strrchr_e(const char *string, const char *end, int c);
9 | char* __cdecl strstri(const char *string, const char *search);
10 | char* __cdecl strcpyn(char *strDest, const char *strSource, int iMaxLength);
11 |
12 | #ifdef _UNICODE
13 |
14 | #define _tcsrchr_e wcsrchr_e
15 | #define _tcsstri wcsstri
16 | #define _tcscpyn wcscpyn
17 |
18 | #else // #ifndef _UNICODE
19 |
20 | #define _tcsrchr_e strrchr_e
21 | #define _tcsstri strstri
22 | #define _tcscpyn strcpyn
23 |
24 | #endif // #ifdef _UNICODE
25 |
26 | #endif // #ifndef _ANSI_C_EX_H_
--------------------------------------------------------------------------------
/src/FixedRecentFileList.h:
--------------------------------------------------------------------------------
1 | // FixedRecentFileList.h: interface for the CFixedRecentFileList class.
2 | //
3 | //////////////////////////////////////////////////////////////////////
4 |
5 | #if !defined(AFX_FIXEDRECENTFILELIST_H__19A79829_C769_4C48_B824_0E1AC10DE3B6__INCLUDED_)
6 | #define AFX_FIXEDRECENTFILELIST_H__19A79829_C769_4C48_B824_0E1AC10DE3B6__INCLUDED_
7 |
8 | #if _MSC_VER > 1000
9 | #pragma once
10 | #endif // _MSC_VER > 1000
11 |
12 | class CFixedRecentFileList : public CRecentFileList
13 | {
14 | public:
15 | CFixedRecentFileList(UINT nStart, LPCTSTR lpszSection,
16 | LPCTSTR lpszEntryFormat, int nSize,
17 | int nMaxDispLen = AFX_ABBREV_FILENAME_LEN);
18 | virtual ~CFixedRecentFileList();
19 |
20 | virtual void UpdateMenu(CCmdUI* pCmdUI);
21 | void ClearList();
22 | };
23 |
24 | #endif // !defined(AFX_FIXEDRECENTFILELIST_H__19A79829_C769_4C48_B824_0E1AC10DE3B6__INCLUDED_)
25 |
--------------------------------------------------------------------------------
/src/StopWatch.h:
--------------------------------------------------------------------------------
1 | // StopWatch.h: interface for the CStopWatch class.
2 | //
3 | //////////////////////////////////////////////////////////////////////
4 |
5 | #if !defined(AFX_STOPWATCH_H__1F8FCC79_1865_4750_BC33_DD77207E56CF__INCLUDED_)
6 | #define AFX_STOPWATCH_H__1F8FCC79_1865_4750_BC33_DD77207E56CF__INCLUDED_
7 |
8 | #if _MSC_VER > 1000
9 | #pragma once
10 | #endif // _MSC_VER > 1000
11 |
12 | class CStopWatch
13 | {
14 | public:
15 | CStopWatch();
16 | virtual ~CStopWatch();
17 |
18 | void Start();
19 | void End();
20 |
21 | double GetDur() { return m_lfDur; }
22 |
23 | protected:
24 | double m_lfDur;
25 |
26 | BOOL m_bHighResolution;
27 |
28 | LARGE_INTEGER m_lnFreq;
29 | LARGE_INTEGER m_lnStart;
30 | LARGE_INTEGER m_lnEnd;
31 |
32 | clock_t m_clkStart;
33 | clock_t m_clkEnd;
34 |
35 | long GetTimeDur(PSYSTEMTIME pTime1, PSYSTEMTIME pTime2);
36 | };
37 |
38 | #endif // !defined(AFX_STOPWATCH_H__1F8FCC79_1865_4750_BC33_DD77207E56CF__INCLUDED_)
39 |
--------------------------------------------------------------------------------
/lib/libpng/projects/visualc6/libpng.dsw:
--------------------------------------------------------------------------------
1 | Microsoft Developer Studio Workspace File, Format Version 6.00
2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
3 |
4 | ###############################################################################
5 |
6 | Project: "libpng"=.\libpng.dsp - Package Owner=<4>
7 |
8 | Package=<5>
9 | {{{
10 | }}}
11 |
12 | Package=<4>
13 | {{{
14 | Begin Project Dependency
15 | Project_Dep_Name zlib
16 | End Project Dependency
17 | }}}
18 |
19 | ###############################################################################
20 |
21 | Project: "zlib"=..\..\..\zlib\project\visualc6\zlib.dsp - Package Owner=<4>
22 |
23 | Package=<5>
24 | {{{
25 | }}}
26 |
27 | Package=<4>
28 | {{{
29 | }}}
30 |
31 | ###############################################################################
32 |
33 | Global:
34 |
35 | Package=<5>
36 | {{{
37 | }}}
38 |
39 | Package=<3>
40 | {{{
41 | }}}
42 |
43 | ###############################################################################
44 |
45 |
--------------------------------------------------------------------------------
/src/TextSimilarity.h:
--------------------------------------------------------------------------------
1 | // TextSimilarity.h: interface for the CTextSimilarity class.
2 | //
3 | //////////////////////////////////////////////////////////////////////
4 |
5 | #if !defined(AFX_TEXTSIMILARITY_H__C0473336_4885_4626_A4CD_1B37AF52DCFF__INCLUDED_)
6 | #define AFX_TEXTSIMILARITY_H__C0473336_4885_4626_A4CD_1B37AF52DCFF__INCLUDED_
7 |
8 | #if _MSC_VER > 1000
9 | #pragma once
10 | #endif // _MSC_VER > 1000
11 |
12 | class CTextSimilarity
13 | {
14 | public:
15 | CTextSimilarity();
16 | virtual ~CTextSimilarity();
17 |
18 | BOOL Compare(LPCTSTR szStr1, LPCTSTR szStr2);
19 | void ClearInfo() { m_nNum = m_nDenom = 0; }
20 | float GetInfo() { return (1 - (float)m_nNum / m_nDenom); }
21 |
22 | protected:
23 | BOOL CheckBuffSize(int nNewSize);
24 | int Min3(int a, int b, int c) { return (min(min(a, b), c)); }
25 |
26 | int *m_pRight;
27 | int m_nSize;
28 |
29 | int m_nNum;
30 | int m_nDenom;
31 | };
32 |
33 | #endif // !defined(AFX_TEXTSIMILARITY_H__C0473336_4885_4626_A4CD_1B37AF52DCFF__INCLUDED_)
34 |
--------------------------------------------------------------------------------
/src/ItemPtr.h:
--------------------------------------------------------------------------------
1 | // ItemPtr.h: interface for the CItemPtr class.
2 | //
3 | //////////////////////////////////////////////////////////////////////
4 |
5 | #if !defined(AFX_ITEMPTR_H__D281B8A9_DAA7_4D5E_80EB_C9C2D1B290BD__INCLUDED_)
6 | #define AFX_ITEMPTR_H__D281B8A9_DAA7_4D5E_80EB_C9C2D1B290BD__INCLUDED_
7 |
8 | #if _MSC_VER > 1000
9 | #pragma once
10 | #endif // _MSC_VER > 1000
11 |
12 | class CItemPtr : public CItem
13 | {
14 | public:
15 | CItemPtr() : m_pItem(NULL) {}
16 | virtual ~CItemPtr() {}
17 |
18 | virtual BOOL IsItemPtr() { return TRUE; }
19 |
20 | virtual void SetType(int nType)
21 | {
22 | m_nType = nType;
23 | }
24 | virtual void SetItemState(UINT nState, UINT nMark)
25 | {
26 | if (m_pItem)
27 | {
28 | m_pItem->SetItemState(nState, nMark);
29 | }
30 | }
31 | virtual UINT GetItemState(UINT nMark)
32 | {
33 | if (m_pItem)
34 | {
35 | return m_pItem->GetItemState(nMark);
36 | }
37 |
38 | return ITEMMARK_NULL;
39 | }
40 | virtual CItem* GetItemFrom()
41 | {
42 | return m_pItem->GetItemFrom();
43 | }
44 |
45 | CItem *m_pItem;
46 | };
47 |
48 | #endif // !defined(AFX_ITEMPTR_H__D281B8A9_DAA7_4D5E_80EB_C9C2D1B290BD__INCLUDED_)
49 |
--------------------------------------------------------------------------------
/docs/4.0.3_spy.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
2 | #include "../zlib.h"
3 |
4 | #ifdef GCC_WINDRES
5 | VS_VERSION_INFO VERSIONINFO
6 | #else
7 | VS_VERSION_INFO VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE
8 | #endif
9 | FILEVERSION ZLIB_VER_MAJOR,ZLIB_VER_MINOR,ZLIB_VER_REVISION,0
10 | PRODUCTVERSION ZLIB_VER_MAJOR,ZLIB_VER_MINOR,ZLIB_VER_REVISION,0
11 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
12 | #ifdef _DEBUG
13 | FILEFLAGS 1
14 | #else
15 | FILEFLAGS 0
16 | #endif
17 | FILEOS VOS__WINDOWS32
18 | FILETYPE VFT_DLL
19 | FILESUBTYPE 0 // not used
20 | BEGIN
21 | BLOCK "StringFileInfo"
22 | BEGIN
23 | BLOCK "040904E4"
24 | //language ID = U.S. English, char set = Windows, Multilingual
25 | BEGIN
26 | VALUE "FileDescription", "zlib data compression library\0"
27 | VALUE "FileVersion", ZLIB_VERSION "\0"
28 | VALUE "InternalName", "zlib1.dll\0"
29 | VALUE "LegalCopyright", "(C) 1995-2017 Jean-loup Gailly & Mark Adler\0"
30 | VALUE "OriginalFilename", "zlib1.dll\0"
31 | VALUE "ProductName", "zlib\0"
32 | VALUE "ProductVersion", ZLIB_VERSION "\0"
33 | VALUE "Comments", "For more information visit http://www.zlib.net/\0"
34 | END
35 | END
36 | BLOCK "VarFileInfo"
37 | BEGIN
38 | VALUE "Translation", 0x0409, 1252
39 | END
40 | END
41 |
--------------------------------------------------------------------------------
/docs/1.1.0_toolbar.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 工具栏、状态栏、右键菜单
16 |
17 |
18 |
19 |
20 |
21 | 工具栏的各项功能在各菜单说明中已有详细描述,请参考状态栏左侧的说明进行探索。
22 |
23 |
24 |
25 |
26 | 状态栏的最右侧显示当前主界面右侧窗格的题目数量。
27 |
28 |
29 |
30 |
31 | 各右键菜单在各菜单说明中已有详细描述,请参考状态栏左侧的说明自行探索。
32 |
33 |
34 |
37 |
38 |
39 | GX Software 2020-2021
40 | V2.0
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/src/QComboBox.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_QCOMBOBOX_H__CBB3F044_76F0_4B72_BED6_9F6762B8CC88__INCLUDED_)
2 | #define AFX_QCOMBOBOX_H__CBB3F044_76F0_4B72_BED6_9F6762B8CC88__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // QComboBox.h : header file
8 | //
9 |
10 | /////////////////////////////////////////////////////////////////////////////
11 | // CQComboBox window
12 |
13 | class CQComboBox : public CComboBox
14 | {
15 | // Construction
16 | public:
17 | CQComboBox();
18 |
19 | // Attributes
20 | public:
21 |
22 | // Operations
23 | public:
24 |
25 | // Overrides
26 | // ClassWizard generated virtual function overrides
27 | //{{AFX_VIRTUAL(CQComboBox)
28 | //}}AFX_VIRTUAL
29 |
30 | // Implementation
31 | public:
32 | virtual ~CQComboBox();
33 |
34 | // Generated message map functions
35 | protected:
36 | //{{AFX_MSG(CQComboBox)
37 | afx_msg void OnPaint();
38 | afx_msg BOOL OnEraseBkgnd(CDC* pDC);
39 | //}}AFX_MSG
40 | void GetPoints(LPRECT rc, LPPOINT pt);
41 |
42 | DECLARE_MESSAGE_MAP()
43 | };
44 |
45 | /////////////////////////////////////////////////////////////////////////////
46 |
47 | //{{AFX_INSERT_LOCATION}}
48 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
49 |
50 | #endif // !defined(AFX_QCOMBOBOX_H__CBB3F044_76F0_4B72_BED6_9F6762B8CC88__INCLUDED_)
51 |
--------------------------------------------------------------------------------
/src/AddTypeDlg.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_ADDTYPEDLG_H__6E558DB1_48D3_40D7_B652_7B2746600FA2__INCLUDED_)
2 | #define AFX_ADDTYPEDLG_H__6E558DB1_48D3_40D7_B652_7B2746600FA2__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // AddTypeDlg.h : header file
8 | //
9 |
10 | /////////////////////////////////////////////////////////////////////////////
11 | // CAddTypeDlg dialog
12 |
13 | class CAddTypeDlg : public CClrDialog
14 | {
15 | // Construction
16 | public:
17 | CAddTypeDlg(CWnd* pParent = NULL); // standard constructor
18 |
19 | // Dialog Data
20 | //{{AFX_DATA(CAddTypeDlg)
21 | enum { IDD = IDD_ADDTYPE_DLG };
22 | CQButton m_cBtnOK;
23 | CQComboBox m_cCombo;
24 | //}}AFX_DATA
25 |
26 |
27 | // Overrides
28 | // ClassWizard generated virtual function overrides
29 | //{{AFX_VIRTUAL(CAddTypeDlg)
30 | protected:
31 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
32 | //}}AFX_VIRTUAL
33 |
34 | // Implementation
35 | protected:
36 |
37 | // Generated message map functions
38 | //{{AFX_MSG(CAddTypeDlg)
39 | virtual void OnOK();
40 | virtual void OnCancel();
41 | virtual BOOL OnInitDialog();
42 | //}}AFX_MSG
43 | DECLARE_MESSAGE_MAP()
44 | };
45 |
46 | //{{AFX_INSERT_LOCATION}}
47 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
48 |
49 | #endif // !defined(AFX_ADDTYPEDLG_H__6E558DB1_48D3_40D7_B652_7B2746600FA2__INCLUDED_)
50 |
--------------------------------------------------------------------------------
/src/TabPage.h:
--------------------------------------------------------------------------------
1 | // TabPage.h: interface for the CTabPage class.
2 | //
3 | //////////////////////////////////////////////////////////////////////
4 |
5 | #if !defined(AFX_TABPAGE_H__EAEDC1DC_F8D9_43ED_9E2F_83CDDB460BB7__INCLUDED_)
6 | #define AFX_TABPAGE_H__EAEDC1DC_F8D9_43ED_9E2F_83CDDB460BB7__INCLUDED_
7 |
8 | #if _MSC_VER > 1000
9 | #pragma once
10 | #endif // _MSC_VER > 1000
11 |
12 | #include "ClrDialog.h"
13 |
14 | class CTabPage : public CClrDialog
15 | {
16 | public:
17 | CTabPage(UINT nIDTemplate, CWnd* pParentWnd = NULL);
18 | virtual ~CTabPage();
19 |
20 | BOOL Create(UINT nIDTemplate, CWnd* pParentWnd = NULL);
21 |
22 | virtual void OnSetActive() {}
23 | virtual BOOL OnKillActive(BOOL bIsDestroy) { return TRUE; }
24 | virtual void SetShow(const CItem *pItem) { ASSERT(FALSE); }
25 |
26 | virtual BOOL IsModify() { return (m_bModify); }
27 | virtual int CheckSaveable() { ASSERT(FALSE); return 0; }
28 |
29 | protected:
30 | // Generated message map functions
31 | //{{AFX_MSG(CTabPage)
32 | virtual void OnOK() {}
33 | virtual void OnCancel() {}
34 | //}}AFX_MSG
35 | DECLARE_MESSAGE_MAP()
36 |
37 | virtual BOOL OnInitDialog();
38 | HRESULT EnableDialogTexture();
39 |
40 | BOOL m_bModify;
41 | };
42 |
43 | //{{AFX_INSERT_LOCATION}}
44 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
45 |
46 | #endif // !defined(AFX_TABPAGE_H__EAEDC1DC_F8D9_43ED_9E2F_83CDDB460BB7__INCLUDED_)
47 |
--------------------------------------------------------------------------------
/docs/0.0.2_whatsnew.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 2.0版本的新特性
16 |
17 |
18 |
19 |
20 | 更高兼容性的新版标准题库文件(*.qux),且仍可管理1.x旧版应用程序生成的题库文件;
21 | 题库文件更小巧;
22 | 支持在题目中插入图片;
23 | 全新的答题界面与学习界面,支持调整显示文字的大小;
24 | 更实用的批量操作 功能;
25 | 可为题库设置封面 ,设置后,题库被封装在jpeg图片中,便于管理和传输至移动设备;
26 | 题库内容可高强度加密,保障您的权利;
27 | 支持生成标准HTML格式试卷;
28 | 删除了与Microsoft Office有关的功能,降低了应用程序对运行环境的依赖性;
29 |
30 |
31 |
34 |
35 |
36 | GX Software 2020-2021
37 | V2.0
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/src/CodeDlg.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_CODEDLG_H__F192A421_7A3C_4ECC_8C53_CD15E4A0167E__INCLUDED_)
2 | #define AFX_CODEDLG_H__F192A421_7A3C_4ECC_8C53_CD15E4A0167E__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // CodeDlg.h : header file
8 | //
9 |
10 | #include "ClrDialog.h"
11 |
12 | /////////////////////////////////////////////////////////////////////////////
13 | // CCodeDlg dialog
14 |
15 | class CCodeDlg : public CClrDialog
16 | {
17 | // Construction
18 | public:
19 | CCodeDlg(CWnd* pParent = NULL); // standard constructor
20 |
21 | // Dialog Data
22 | //{{AFX_DATA(CCodeDlg)
23 | enum { IDD = IDD_CODE_DLG };
24 | CQButton m_cBtnOK;
25 | CQComboBox m_cCombo;
26 | //}}AFX_DATA
27 |
28 | inline int GetCS() { return m_nCS; }
29 |
30 | // Overrides
31 | // ClassWizard generated virtual function overrides
32 | //{{AFX_VIRTUAL(CCodeDlg)
33 | protected:
34 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
35 | //}}AFX_VIRTUAL
36 |
37 | // Implementation
38 | protected:
39 | int m_nCS;
40 |
41 | // Generated message map functions
42 | //{{AFX_MSG(CCodeDlg)
43 | virtual BOOL OnInitDialog();
44 | virtual void OnOK();
45 | //}}AFX_MSG
46 | DECLARE_MESSAGE_MAP()
47 | };
48 |
49 | //{{AFX_INSERT_LOCATION}}
50 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
51 |
52 | #endif // !defined(AFX_CODEDLG_H__F192A421_7A3C_4ECC_8C53_CD15E4A0167E__INCLUDED_)
53 |
--------------------------------------------------------------------------------
/src/CopyExDlg.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_COPYEXDLG_H__7D594A0F_EB6A_40B6_B9A8_DA9869D769B4__INCLUDED_)
2 | #define AFX_COPYEXDLG_H__7D594A0F_EB6A_40B6_B9A8_DA9869D769B4__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // CopyExDlg.h : header file
8 | //
9 |
10 | /////////////////////////////////////////////////////////////////////////////
11 | // CCopyExDlg dialog
12 |
13 | class CCopyExDlg : public CClrDialog
14 | {
15 | // Construction
16 | public:
17 | CCopyExDlg(CWnd* pParent = NULL); // standard constructor
18 |
19 | // Dialog Data
20 | //{{AFX_DATA(CCopyExDlg)
21 | enum { IDD = IDD_COPYEX_DLG };
22 | CQButton m_cRadioAsw;
23 | CQButton m_cRadioQ;
24 | CQButton m_cRadioAll;
25 | CQButton m_cBtnOK;
26 | int m_nSel;
27 | //}}AFX_DATA
28 |
29 |
30 | // Overrides
31 | // ClassWizard generated virtual function overrides
32 | //{{AFX_VIRTUAL(CCopyExDlg)
33 | protected:
34 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
35 | //}}AFX_VIRTUAL
36 |
37 | // Implementation
38 | protected:
39 |
40 | // Generated message map functions
41 | //{{AFX_MSG(CCopyExDlg)
42 | // NOTE: the ClassWizard will add member functions here
43 | //}}AFX_MSG
44 | DECLARE_MESSAGE_MAP()
45 | };
46 |
47 | //{{AFX_INSERT_LOCATION}}
48 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
49 |
50 | #endif // !defined(AFX_COPYEXDLG_H__7D594A0F_EB6A_40B6_B9A8_DA9869D769B4__INCLUDED_)
51 |
--------------------------------------------------------------------------------
/src/SummaryLenDlg.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_SUMMARYLENDLG_H__2EC0764D_AE48_48C9_8F05_F2990C3E9B4C__INCLUDED_)
2 | #define AFX_SUMMARYLENDLG_H__2EC0764D_AE48_48C9_8F05_F2990C3E9B4C__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // SummaryLenDlg.h : header file
8 | //
9 |
10 | /////////////////////////////////////////////////////////////////////////////
11 | // CSummaryLenDlg dialog
12 |
13 | class CSummaryLenDlg : public CClrDialog
14 | {
15 | // Construction
16 | public:
17 | CSummaryLenDlg(int nLen, CWnd* pParent = NULL); // standard constructor
18 |
19 | int m_nLen;
20 |
21 | // Dialog Data
22 | //{{AFX_DATA(CSummaryLenDlg)
23 | enum { IDD = IDD_SUMMARYLEN_DLG };
24 | CQButton m_cBtnOK;
25 | CQEdit m_cEditLen;
26 | //}}AFX_DATA
27 |
28 |
29 | // Overrides
30 | // ClassWizard generated virtual function overrides
31 | //{{AFX_VIRTUAL(CSummaryLenDlg)
32 | protected:
33 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
34 | //}}AFX_VIRTUAL
35 |
36 | // Implementation
37 | protected:
38 |
39 | // Generated message map functions
40 | //{{AFX_MSG(CSummaryLenDlg)
41 | virtual void OnOK();
42 | virtual BOOL OnInitDialog();
43 | //}}AFX_MSG
44 | DECLARE_MESSAGE_MAP()
45 | };
46 |
47 | //{{AFX_INSERT_LOCATION}}
48 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
49 |
50 | #endif // !defined(AFX_SUMMARYLENDLG_H__2EC0764D_AE48_48C9_8F05_F2990C3E9B4C__INCLUDED_)
51 |
--------------------------------------------------------------------------------
/docs/0.0.4_index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 快速索引
16 |
17 |
18 |
19 |
20 | 使用说明
21 |
22 | 在大部分情况下,您不需要详细阅读使用说明也可以快速上手本应用程序的常用功能,但本说明可以帮助您全面了解本应用程序。
23 |
24 | 开发资料
25 |
26 | 写给开发者的一些文档,包含了应用程序部分功能的实现方法及兼容性建议。
27 |
28 | 使用者Q&A
29 |
30 | 当您在使用本应用程序产生疑问时,读我。
31 |
32 | 简易网页版
33 |
34 | 轻量化的学习自测工具,您可以在手机、平板等智能设备上使用。
35 |
36 |
37 |
38 |
41 |
42 |
43 | GX Software 2020-2021
44 | V2.0
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/docs/2.1.2_extern.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 外部库
16 |
17 |
18 |
19 | 题库压缩
20 |
21 | 采用zlib,版本号1.2.11,静态链接方式,编译环境Microsoft Visual C++ 6.0 Professional Edition。
22 |
23 |
24 | XML解析
25 |
26 | 采用tinyxml,版本号2.6.2,代码直接嵌入工程。
27 |
28 |
29 | JPEG图像读写
30 |
31 | 采用libjpeg,版本号9d,静态链接方式,编译环境Microsoft Visual C++ 6.0 Professional Edition。
32 |
33 |
34 | PNG图像显示
35 |
36 | 采用libpng,版本号1.6.37,静态链接方式,编译环境Microsoft Visual C++ 6.0 Professional Edition。
37 |
38 |
39 |
42 |
43 |
44 | GX Software 2020-2021
45 | V2.0
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/src/ClrDialog.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_CLRDIALOG_H__5C025795_F6AB_417F_BEF7_579AF050D5D0__INCLUDED_)
2 | #define AFX_CLRDIALOG_H__5C025795_F6AB_417F_BEF7_579AF050D5D0__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // ClrDialog.h : header file
8 | //
9 |
10 | #include "QButton.h"
11 | #include "QEdit.h"
12 | #include "QGroupBox.h"
13 | #include "QTabCtrl.h"
14 | #include "QComboBox.h"
15 | #include "QColorSetter.h"
16 |
17 | /////////////////////////////////////////////////////////////////////////////
18 | // CClrDialog dialog
19 |
20 | class CClrDialog : public CDialog
21 | {
22 | // Construction
23 | public:
24 | CClrDialog(UINT nIDTemplate, CWnd* pParent = NULL);
25 |
26 | // Dialog Data
27 | //{{AFX_DATA(CClrDialog)
28 | // NOTE: the ClassWizard will add data members here
29 | //}}AFX_DATA
30 |
31 |
32 | // Overrides
33 | // ClassWizard generated virtual function overrides
34 | //{{AFX_VIRTUAL(CClrDialog)
35 | protected:
36 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
37 | //}}AFX_VIRTUAL
38 |
39 | // Implementation
40 | protected:
41 |
42 | // Generated message map functions
43 | //{{AFX_MSG(CClrDialog)
44 | afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
45 | virtual BOOL OnInitDialog();
46 | //}}AFX_MSG
47 | DECLARE_MESSAGE_MAP()
48 | };
49 |
50 | //{{AFX_INSERT_LOCATION}}
51 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
52 |
53 | #endif // !defined(AFX_CLRDIALOG_H__5C025795_F6AB_417F_BEF7_579AF050D5D0__INCLUDED_)
54 |
--------------------------------------------------------------------------------
/src/QColorSetter.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_QCOLORSETTER_H__DBE098D6_BBC0_4715_A99C_EDF21379C0D8__INCLUDED_)
2 | #define AFX_QCOLORSETTER_H__DBE098D6_BBC0_4715_A99C_EDF21379C0D8__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // QColorSetter.h : header file
8 | //
9 |
10 | /////////////////////////////////////////////////////////////////////////////
11 | // CQColorSetter window
12 |
13 | class CQColorSetter : public CWnd
14 | {
15 | // Construction
16 | public:
17 | CQColorSetter();
18 |
19 | // Attributes
20 | public:
21 |
22 | // Operations
23 | public:
24 | void SetColor(COLORREF clr);
25 | void SetReadOnly(BOOL bReadOnly) { m_bReadOnly = bReadOnly; }
26 |
27 | // Overrides
28 | // ClassWizard generated virtual function overrides
29 | //{{AFX_VIRTUAL(CQColorSetter)
30 | protected:
31 | virtual void PreSubclassWindow();
32 | //}}AFX_VIRTUAL
33 |
34 | // Implementation
35 | public:
36 | virtual ~CQColorSetter();
37 |
38 | CRect m_rcClient;
39 | COLORREF m_clr;
40 | BOOL m_bReadOnly;
41 |
42 | // Generated message map functions
43 | protected:
44 | //{{AFX_MSG(CQColorSetter)
45 | afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
46 | afx_msg void OnPaint();
47 | //}}AFX_MSG
48 |
49 | DECLARE_MESSAGE_MAP()
50 | };
51 |
52 | /////////////////////////////////////////////////////////////////////////////
53 |
54 | //{{AFX_INSERT_LOCATION}}
55 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
56 |
57 | #endif // !defined(AFX_QCOLORSETTER_H__DBE098D6_BBC0_4715_A99C_EDF21379C0D8__INCLUDED_)
58 |
--------------------------------------------------------------------------------
/docs/1.2.3_itemimage.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 题目图片
16 |
17 |
18 |
19 |
20 | 题目中题干、解析中的图片将通过以下窗口进行管理。
21 |
22 |
23 |
24 |
25 |
26 |
27 | 点击“添加图片”可新增一张图片,支持添加bmp、jpeg、png格式图片,像素值不超过640×640,文件大小不限 ;点击“重设图片”可将当前图片修改为其他图片;点击“删除图片”可将当前显示图片删除;当添加了多张图片时,可利用“上一张”“下一张”翻动查看。
28 |
29 |
30 |
31 | 您可以为每张图片设置一个标题,最多支持32个字符,标题设置后立即生效。
32 |
33 |
34 |
35 | 在显示带有图片的题目时,图片将在题干之后依次显示,并显示图片序号及标题。
36 |
37 |
38 |
41 |
42 |
43 | GX Software 2020-2021
44 | V2.0
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/src/AddTypeDlg.cpp:
--------------------------------------------------------------------------------
1 | // AddTypeDlg.cpp : implementation file
2 | //
3 |
4 | #include "stdafx.h"
5 | #include "quickquiz.h"
6 | #include "AddTypeDlg.h"
7 |
8 | #ifdef _DEBUG
9 | #define new DEBUG_NEW
10 | #undef THIS_FILE
11 | static char THIS_FILE[] = __FILE__;
12 | #endif
13 |
14 | /////////////////////////////////////////////////////////////////////////////
15 | // CAddTypeDlg dialog
16 |
17 |
18 | CAddTypeDlg::CAddTypeDlg(CWnd* pParent /*=NULL*/) :
19 | CClrDialog(CAddTypeDlg::IDD, pParent)
20 | {
21 | //{{AFX_DATA_INIT(CAddTypeDlg)
22 | // NOTE: the ClassWizard will add member initialization here
23 | //}}AFX_DATA_INIT
24 | }
25 |
26 |
27 | void CAddTypeDlg::DoDataExchange(CDataExchange* pDX)
28 | {
29 | CDialog::DoDataExchange(pDX);
30 | //{{AFX_DATA_MAP(CAddTypeDlg)
31 | DDX_Control(pDX, IDOK, m_cBtnOK);
32 | DDX_Control(pDX, IDC_COMBO_TYPE, m_cCombo);
33 | //}}AFX_DATA_MAP
34 | }
35 |
36 |
37 | BEGIN_MESSAGE_MAP(CAddTypeDlg, CClrDialog)
38 | //{{AFX_MSG_MAP(CAddTypeDlg)
39 | //}}AFX_MSG_MAP
40 | END_MESSAGE_MAP()
41 |
42 | /////////////////////////////////////////////////////////////////////////////
43 | // CAddTypeDlg message handlers
44 |
45 | void CAddTypeDlg::OnOK()
46 | {
47 | EndDialog(m_cCombo.GetCurSel() + TYPE_SCHOISE);
48 | }
49 |
50 | void CAddTypeDlg::OnCancel()
51 | {
52 | EndDialog(TYPE_DEFAULT);
53 | }
54 |
55 | BOOL CAddTypeDlg::OnInitDialog()
56 | {
57 | CClrDialog::OnInitDialog();
58 |
59 | m_cCombo.SetCurSel(0);
60 |
61 | return TRUE; // return TRUE unless you set the focus to a control
62 | // EXCEPTION: OCX Property Pages should return FALSE
63 | }
64 |
--------------------------------------------------------------------------------
/src/CodeDlg.cpp:
--------------------------------------------------------------------------------
1 | // CodeDlg.cpp : implementation file
2 | //
3 |
4 | #include "stdafx.h"
5 | #include "quickquiz.h"
6 | #include "CodeDlg.h"
7 |
8 | #ifdef _DEBUG
9 | #define new DEBUG_NEW
10 | #undef THIS_FILE
11 | static char THIS_FILE[] = __FILE__;
12 | #endif
13 |
14 | /////////////////////////////////////////////////////////////////////////////
15 | // CCodeDlg dialog
16 |
17 |
18 | CCodeDlg::CCodeDlg(CWnd* pParent /*=NULL*/) :
19 | CClrDialog(CCodeDlg::IDD, pParent)
20 | {
21 | //{{AFX_DATA_INIT(CCodeDlg)
22 | // NOTE: the ClassWizard will add member initialization here
23 | //}}AFX_DATA_INIT
24 |
25 | #ifdef _UNICODE
26 | m_nCS = CS_UTF16;
27 | #else
28 | m_nCS = CS_ANSI;
29 | #endif
30 | }
31 |
32 |
33 | void CCodeDlg::DoDataExchange(CDataExchange* pDX)
34 | {
35 | CDialog::DoDataExchange(pDX);
36 | //{{AFX_DATA_MAP(CCodeDlg)
37 | DDX_Control(pDX, IDOK, m_cBtnOK);
38 | DDX_Control(pDX, IDC_COMBO_CODE, m_cCombo);
39 | //}}AFX_DATA_MAP
40 | }
41 |
42 |
43 | BEGIN_MESSAGE_MAP(CCodeDlg, CClrDialog)
44 | //{{AFX_MSG_MAP(CCodeDlg)
45 | //}}AFX_MSG_MAP
46 | END_MESSAGE_MAP()
47 |
48 | /////////////////////////////////////////////////////////////////////////////
49 | // CCodeDlg message handlers
50 |
51 | BOOL CCodeDlg::OnInitDialog()
52 | {
53 | CClrDialog::OnInitDialog();
54 |
55 | ((CComboBox*)GetDlgItem(IDC_COMBO_CODE))->SetCurSel(0);
56 |
57 | return TRUE; // return TRUE unless you set the focus to a control
58 | // EXCEPTION: OCX Property Pages should return FALSE
59 | }
60 |
61 |
62 | void CCodeDlg::OnOK()
63 | {
64 | m_nCS = ((CComboBox*)GetDlgItem(IDC_COMBO_CODE))->GetCurSel();
65 |
66 | CDialog::OnOK();
67 | }
68 |
69 |
--------------------------------------------------------------------------------
/src/QButton.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_QBUTTON_H__2A1AD1FD_A49D_4A91_AC40_E31C8FC5FAA9__INCLUDED_)
2 | #define AFX_QBUTTON_H__2A1AD1FD_A49D_4A91_AC40_E31C8FC5FAA9__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // QButton.h : header file
8 | //
9 |
10 | /////////////////////////////////////////////////////////////////////////////
11 | // CQButton window
12 |
13 | class CQButton : public CButton
14 | {
15 | // Construction
16 | public:
17 | CQButton();
18 |
19 | // Attributes
20 | public:
21 |
22 | // Operations
23 | public:
24 | static void FUNCCALL DrawButton(HWND hWnd, HDC hWndDC, BOOL bDown);
25 |
26 | // Overrides
27 | // ClassWizard generated virtual function overrides
28 | //{{AFX_VIRTUAL(CQButton)
29 | public:
30 | virtual BOOL PreTranslateMessage(MSG* pMsg);
31 | //}}AFX_VIRTUAL
32 |
33 | // Implementation
34 | public:
35 | virtual ~CQButton();
36 |
37 | // Generated message map functions
38 | protected:
39 | //{{AFX_MSG(CQButton)
40 | afx_msg UINT OnGetDlgCode();
41 | afx_msg void OnPaint();
42 | afx_msg void OnMouseMove(UINT nFlags, CPoint point);
43 | afx_msg void OnEnable(BOOL bEnable);
44 | afx_msg BOOL OnEraseBkgnd(CDC* pDC);
45 | //}}AFX_MSG
46 | afx_msg LRESULT OnSetText(WPARAM wParam, LPARAM lParam);
47 |
48 | DECLARE_MESSAGE_MAP()
49 |
50 | protected:
51 | BOOL m_bDown;
52 | };
53 |
54 | /////////////////////////////////////////////////////////////////////////////
55 |
56 | //{{AFX_INSERT_LOCATION}}
57 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
58 |
59 | #endif // !defined(AFX_QBUTTON_H__2A1AD1FD_A49D_4A91_AC40_E31C8FC5FAA9__INCLUDED_)
60 |
--------------------------------------------------------------------------------
/src/BatchSetDlg.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_BATCHSETDLG_H__BE06B25B_B3D3_47B8_8C64_068B17793538__INCLUDED_)
2 | #define AFX_BATCHSETDLG_H__BE06B25B_B3D3_47B8_8C64_068B17793538__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // BatchSetDlg.h : header file
8 | //
9 |
10 | /////////////////////////////////////////////////////////////////////////////
11 | // CBatchSetDlg dialog
12 |
13 | class CBatchSetDlg : public CClrDialog
14 | {
15 | // Construction
16 | public:
17 | CBatchSetDlg(BOOL bEditFlag, CWnd* pParent = NULL); // standard constructor
18 |
19 | // Dialog Data
20 | //{{AFX_DATA(CBatchSetDlg)
21 | enum { IDD = IDD_BATCHSET_DLG };
22 | CQButton m_cBtnOK;
23 | CQButton m_cRadioMToS;
24 | CQButton m_cRadioSToM;
25 | CQButton m_cRadioSelDuplicate;
26 | CQEdit m_cEditSimilar;
27 | CQButton m_cRadioCToJ;
28 | int m_nIndex;
29 | int m_nSimilar;
30 | //}}AFX_DATA
31 |
32 | // Overrides
33 | // ClassWizard generated virtual function overrides
34 | //{{AFX_VIRTUAL(CBatchSetDlg)
35 | protected:
36 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
37 | virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
38 | //}}AFX_VIRTUAL
39 |
40 | // Implementation
41 | protected:
42 | BOOL m_bEditFlag;
43 |
44 | BOOL CheckInput(UINT nID = 0);
45 |
46 | // Generated message map functions
47 | //{{AFX_MSG(CBatchSetDlg)
48 | virtual BOOL OnInitDialog();
49 | //}}AFX_MSG
50 | DECLARE_MESSAGE_MAP()
51 | };
52 |
53 | //{{AFX_INSERT_LOCATION}}
54 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
55 |
56 | #endif // !defined(AFX_BATCHSETDLG_H__BE06B25B_B3D3_47B8_8C64_068B17793538__INCLUDED_)
57 |
--------------------------------------------------------------------------------
/docs/2.1.1_check.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 题目校验算法
16 |
17 |
18 |
19 |
20 | 题目的校验算法采用16位累加校验算法,即计算题目内容的累加和,超出16位的部分自动舍弃,最终得出校验码。
21 |
22 |
23 | 单选题/多选题的校验
24 |
25 | 校验码=题目类型编码+题干中每字UTF-16编码的累加和+每个选项中每字UTF-16编码的累加和。
26 |
27 |
28 | 判断题的校验
29 |
30 | 校验码=题目类型编码+题干中每字UTF-16编码的累加和。
31 |
32 |
33 | 填空题的校验
34 |
35 | 校验码=题目类型编码+题干中每字UTF-16编码的累加和+每个空白的起始位置偏移量+每个空白的结束位置偏移量+每个空白答案中每字UTF-16编码的累加和。
36 |
37 |
38 | 简答题的校验
39 |
40 | 校验码=题目类型编码+题干中每字UTF-16编码的累加和+答案中每字UTF-16编码的累加和。
41 |
42 |
43 | 题目组的校验
44 |
45 | 校验码=题目类型编码+题干中每字UTF-16编码的累加和+每个子题目的校验码。
46 |
47 |
48 |
51 |
52 |
53 | GX Software 2020-2021
54 | V2.0
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/docs/1.0.5_testmenu.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | “测试”菜单
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | “测试”菜单的相关说明如下:
25 |
26 |
27 |
28 |
29 | 启动一次自我测试,详见
开始考试 。
30 |
31 |
32 |
33 |
36 |
37 |
38 |
39 | 根据设定,生成一份可以用于打印的试卷,详见
生成试卷 。
40 |
41 |
42 |
43 |
44 | 启动一次当前题库的抢答练习,详见
抢答练习 。
45 |
46 |
47 |
50 |
51 |
52 | GX Software 2020-2021
53 | V2.0
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/src/TabPage.cpp:
--------------------------------------------------------------------------------
1 | // TabPage.cpp: implementation of the CTabPage class.
2 | //
3 | //////////////////////////////////////////////////////////////////////
4 |
5 | #include "stdafx.h"
6 | #include "TabPage.h"
7 |
8 | #ifdef _DEBUG
9 | #undef THIS_FILE
10 | static char THIS_FILE[]=__FILE__;
11 | #define new DEBUG_NEW
12 | #endif
13 |
14 | //////////////////////////////////////////////////////////////////////
15 | // Construction/Destruction
16 | //////////////////////////////////////////////////////////////////////
17 |
18 | CTabPage::CTabPage(UINT nIDTemplate, CWnd* pParentWnd /* = NULL */) :
19 | CClrDialog(nIDTemplate, pParentWnd),
20 | m_bModify(FALSE)
21 | {
22 |
23 | }
24 |
25 | CTabPage::~CTabPage()
26 | {
27 |
28 | }
29 |
30 | BEGIN_MESSAGE_MAP(CTabPage, CClrDialog)
31 | //{{AFX_MSG_MAP(CTabPage)
32 | //}}AFX_MSG_MAP
33 | END_MESSAGE_MAP()
34 |
35 | BOOL CTabPage::Create(UINT nIDTemplate, CWnd* pParentWnd /* = NULL */)
36 | {
37 | if (!CDialog::Create(nIDTemplate, pParentWnd))
38 | {
39 | return FALSE;
40 | }
41 |
42 | return TRUE;
43 | }
44 |
45 | BOOL CTabPage::OnInitDialog()
46 | {
47 | CClrDialog::OnInitDialog();
48 |
49 | EnableDialogTexture();
50 |
51 | return TRUE;
52 | }
53 |
54 | typedef HRESULT (WINAPI *PFNETDT)(HWND, DWORD);
55 | #define ETDT_USETABTEXTURE 0x00000004
56 | LRESULT CTabPage::EnableDialogTexture()
57 | {
58 | PFNETDT pfn;
59 | HMODULE hModule;
60 | hModule = LoadLibrary(TEXT("uxtheme.dll"));
61 | if (hModule != NULL)
62 | {
63 | pfn = (PFNETDT)GetProcAddress(hModule, "EnableThemeDialogTexture");
64 | FreeLibrary(hModule);
65 | if (pfn != NULL)
66 | {
67 | return (*pfn)(GetSafeHwnd(), ETDT_USETABTEXTURE);
68 | }
69 | }
70 | return E_FAIL;
71 | }
72 |
--------------------------------------------------------------------------------
/src/QuickQuiz.h:
--------------------------------------------------------------------------------
1 | // QuickQuiz.h : main header file for the QUICKQUIZ application
2 | //
3 |
4 | #if !defined(AFX_QUICKQUIZ_H__FA1CD5BC_C553_4600_94ED_11F1F68500BD__INCLUDED_)
5 | #define AFX_QUICKQUIZ_H__FA1CD5BC_C553_4600_94ED_11F1F68500BD__INCLUDED_
6 |
7 | #if _MSC_VER > 1000
8 | #pragma once
9 | #endif // _MSC_VER > 1000
10 |
11 | #ifndef __AFXWIN_H__
12 | #error include 'stdafx.h' before including this file for PCH
13 | #endif
14 |
15 | #include "resource.h"
16 | #include "FixedRecentFileList.h"
17 |
18 | class CDoc;
19 |
20 | /////////////////////////////////////////////////////////////////////////////
21 | // CApp:
22 | // See QuickQuiz.cpp for the implementation of this class
23 | //
24 |
25 | class CApp : public CWinApp
26 | {
27 | public:
28 | CApp();
29 |
30 | void OnUpdateMRUFile(CCmdUI *pCmdUI);
31 | BOOL OpenRecentFile(CDoc *pDoc, UINT nID);
32 | BOOL IsAnyRecentFile();
33 |
34 | // Overrides
35 | // ClassWizard generated virtual function overrides
36 | //{{AFX_VIRTUAL(CApp)
37 | public:
38 | virtual BOOL InitInstance();
39 | virtual int ExitInstance();
40 | //}}AFX_VIRTUAL
41 |
42 | // Implementation
43 | //{{AFX_MSG(CApp)
44 | afx_msg void OnAppAbout();
45 | afx_msg void OnClearMRU();
46 | //}}AFX_MSG
47 | DECLARE_MESSAGE_MAP()
48 |
49 | protected:
50 | void LoadStdProfileSettings(UINT nMaxMRU = _AFX_MRU_COUNT);
51 | void ResetRegisterKey();
52 |
53 | BOOL CheckSimple();
54 | };
55 |
56 |
57 | /////////////////////////////////////////////////////////////////////////////
58 |
59 | //{{AFX_INSERT_LOCATION}}
60 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
61 |
62 | #endif // !defined(AFX_QUICKQUIZ_H__FA1CD5BC_C553_4600_94ED_11F1F68500BD__INCLUDED_)
63 |
--------------------------------------------------------------------------------
/src/SummaryLenDlg.cpp:
--------------------------------------------------------------------------------
1 | // SummaryLenDlg.cpp : implementation file
2 | //
3 |
4 | #include "stdafx.h"
5 | #include "quickquiz.h"
6 | #include "SummaryLenDlg.h"
7 |
8 | #ifdef _DEBUG
9 | #define new DEBUG_NEW
10 | #undef THIS_FILE
11 | static char THIS_FILE[] = __FILE__;
12 | #endif
13 |
14 | /////////////////////////////////////////////////////////////////////////////
15 | // CSummaryLenDlg dialog
16 |
17 |
18 | CSummaryLenDlg::CSummaryLenDlg(int nLen, CWnd* pParent /*=NULL*/) :
19 | CClrDialog(CSummaryLenDlg::IDD, pParent),
20 | m_nLen(nLen)
21 | {
22 | //{{AFX_DATA_INIT(CSummaryLenDlg)
23 | // NOTE: the ClassWizard will add member initialization here
24 | //}}AFX_DATA_INIT
25 | }
26 |
27 |
28 | void CSummaryLenDlg::DoDataExchange(CDataExchange* pDX)
29 | {
30 | CClrDialog::DoDataExchange(pDX);
31 | //{{AFX_DATA_MAP(CSummaryLenDlg)
32 | DDX_Control(pDX, IDOK, m_cBtnOK);
33 | DDX_Control(pDX, IDC_EDIT_SUMMARYLEN, m_cEditLen);
34 | //}}AFX_DATA_MAP
35 | }
36 |
37 |
38 | BEGIN_MESSAGE_MAP(CSummaryLenDlg, CClrDialog)
39 | //{{AFX_MSG_MAP(CSummaryLenDlg)
40 | //}}AFX_MSG_MAP
41 | END_MESSAGE_MAP()
42 |
43 | /////////////////////////////////////////////////////////////////////////////
44 | // CSummaryLenDlg message handlers
45 |
46 | void CSummaryLenDlg::OnOK()
47 | {
48 | m_nLen = GetDlgItemInt(IDC_EDIT_SUMMARYLEN);
49 | m_nLen = max(20, min(120, m_nLen));
50 |
51 | CClrDialog::OnOK();
52 | }
53 |
54 | BOOL CSummaryLenDlg::OnInitDialog()
55 | {
56 | CClrDialog::OnInitDialog();
57 |
58 | m_cEditLen.SetLimitText(3);
59 | SetDlgItemInt(IDC_EDIT_SUMMARYLEN, m_nLen);
60 |
61 | return TRUE; // return TRUE unless you set the focus to a control
62 | // EXCEPTION: OCX Property Pages should return FALSE
63 | }
64 |
--------------------------------------------------------------------------------
/src/QColorSetter.cpp:
--------------------------------------------------------------------------------
1 | // QColorSetter.cpp : implementation file
2 | //
3 |
4 | #include "stdafx.h"
5 | #include "QColorSetter.h"
6 |
7 | #ifdef _DEBUG
8 | #define new DEBUG_NEW
9 | #undef THIS_FILE
10 | static char THIS_FILE[] = __FILE__;
11 | #endif
12 |
13 | /////////////////////////////////////////////////////////////////////////////
14 | // CQColorSetter
15 |
16 | CQColorSetter::CQColorSetter() :
17 | m_bReadOnly(FALSE)
18 | {
19 | }
20 |
21 | CQColorSetter::~CQColorSetter()
22 | {
23 | }
24 |
25 |
26 | BEGIN_MESSAGE_MAP(CQColorSetter, CWnd)
27 | //{{AFX_MSG_MAP(CQColorSetter)
28 | ON_WM_SETCURSOR()
29 | ON_WM_PAINT()
30 | //}}AFX_MSG_MAP
31 | END_MESSAGE_MAP()
32 |
33 | /////////////////////////////////////////////////////////////////////////////
34 | // CQColorSetter message handlers
35 |
36 | void CQColorSetter::PreSubclassWindow()
37 | {
38 | GetClientRect(m_rcClient);
39 | ModifyStyle(NULL, SS_NOTIFY);
40 |
41 | CWnd::PreSubclassWindow();
42 | }
43 |
44 | BOOL CQColorSetter::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
45 | {
46 | if (m_bReadOnly)
47 | {
48 | return 0;
49 | }
50 | else
51 | {
52 | ::SetCursor(LoadCursor(NULL, IDC_HAND));
53 | return 1;
54 | }
55 | }
56 |
57 | void CQColorSetter::OnPaint()
58 | {
59 | CPaintDC dc(this); // device context for painting
60 | HPEN pen = ::CreatePen(PS_SOLID, 1, 0);
61 |
62 | dc.SelectObject(pen);
63 | dc.SelectObject(GetStockObject(NULL_BRUSH));
64 |
65 | dc.FillSolidRect(0, 0, m_rcClient.Width(), m_rcClient.Height(), m_clr);
66 | dc.Rectangle(m_rcClient);
67 |
68 | DeleteObject(pen);
69 |
70 | // Do not call CWnd::OnPaint() for painting messages
71 | }
72 |
73 | void CQColorSetter::SetColor(COLORREF clr)
74 | {
75 | m_clr = clr;
76 | Invalidate(TRUE);
77 | }
--------------------------------------------------------------------------------
/QuickQuiz.dsw:
--------------------------------------------------------------------------------
1 | Microsoft Developer Studio Workspace File, Format Version 6.00
2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
3 |
4 | ###############################################################################
5 |
6 | Project: "QuickQuiz"=.\QuickQuiz.dsp - Package Owner=<4>
7 |
8 | Package=<5>
9 | {{{
10 | }}}
11 |
12 | Package=<4>
13 | {{{
14 | Begin Project Dependency
15 | Project_Dep_Name jpeg
16 | End Project Dependency
17 | Begin Project Dependency
18 | Project_Dep_Name libpng
19 | End Project Dependency
20 | Begin Project Dependency
21 | Project_Dep_Name zlib
22 | End Project Dependency
23 | }}}
24 |
25 | ###############################################################################
26 |
27 | Project: "jpeg"=.\lib\libjpeg\jpeg.dsp - Package Owner=<4>
28 |
29 | Package=<5>
30 | {{{
31 | }}}
32 |
33 | Package=<4>
34 | {{{
35 | }}}
36 |
37 | ###############################################################################
38 |
39 | Project: "libpng"=.\lib\libpng\projects\visualc6\libpng.dsp - Package Owner=<4>
40 |
41 | Package=<5>
42 | {{{
43 | }}}
44 |
45 | Package=<4>
46 | {{{
47 | Begin Project Dependency
48 | Project_Dep_Name zlib
49 | End Project Dependency
50 | }}}
51 |
52 | ###############################################################################
53 |
54 | Project: "zlib"=.\lib\zlib\project\visualc6\zlib.dsp - Package Owner=<4>
55 |
56 | Package=<5>
57 | {{{
58 | }}}
59 |
60 | Package=<4>
61 | {{{
62 | }}}
63 |
64 | ###############################################################################
65 |
66 | Global:
67 |
68 | Package=<5>
69 | {{{
70 | }}}
71 |
72 | Package=<3>
73 | {{{
74 | }}}
75 |
76 | ###############################################################################
77 |
78 |
--------------------------------------------------------------------------------
/lib/libjpeg/jconfig.h:
--------------------------------------------------------------------------------
1 | /* jconfig.vc --- jconfig.h for Microsoft Visual C++ on Windows 9x or NT. */
2 | /* This file also works for Borland C++ 32-bit (bcc32) on Windows 9x or NT. */
3 | /* see jconfig.txt for explanations */
4 |
5 | #define HAVE_PROTOTYPES
6 | #define HAVE_UNSIGNED_CHAR
7 | #define HAVE_UNSIGNED_SHORT
8 | /* #define void char */
9 | /* #define const */
10 | #undef CHAR_IS_UNSIGNED
11 | #define HAVE_STDDEF_H
12 | #define HAVE_STDLIB_H
13 | #undef NEED_BSD_STRINGS
14 | #undef NEED_SYS_TYPES_H
15 | #undef NEED_FAR_POINTERS /* we presume a 32-bit flat memory model */
16 | #undef NEED_SHORT_EXTERNAL_NAMES
17 | #undef INCOMPLETE_TYPES_BROKEN
18 |
19 | /* Define "boolean" as unsigned char, not enum, per Windows custom */
20 | #ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */
21 | typedef unsigned char boolean;
22 | #endif
23 | #ifndef FALSE /* in case these macros already exist */
24 | #define FALSE 0 /* values of boolean */
25 | #endif
26 | #ifndef TRUE
27 | #define TRUE 1
28 | #endif
29 | #define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */
30 |
31 |
32 | #ifdef JPEG_INTERNALS
33 |
34 | #undef RIGHT_SHIFT_IS_UNSIGNED
35 |
36 | #endif /* JPEG_INTERNALS */
37 |
38 | #ifdef JPEG_CJPEG_DJPEG
39 |
40 | #define BMP_SUPPORTED /* BMP image file format */
41 | #define GIF_SUPPORTED /* GIF image file format */
42 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */
43 | #undef RLE_SUPPORTED /* Utah RLE image file format */
44 | #define TARGA_SUPPORTED /* Targa image file format */
45 |
46 | #define TWO_FILE_COMMANDLINE /* optional */
47 | #define USE_SETMODE /* Microsoft has setmode() */
48 | #undef NEED_SIGNAL_CATCHER
49 | #undef DONT_USE_B_MODE
50 | #undef PROGRESS_REPORT /* optional */
51 |
52 | #endif /* JPEG_CJPEG_DJPEG */
53 |
--------------------------------------------------------------------------------
/src/ChooseTypeDlg.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_CHOOSETYPEDLG_H__323A5A94_9E0A_48AC_8AF7_8FC324AEB100__INCLUDED_)
2 | #define AFX_CHOOSETYPEDLG_H__323A5A94_9E0A_48AC_8AF7_8FC324AEB100__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // ChooseTypeDlg.h : header file
8 | //
9 | #include "ClrDialog.h"
10 |
11 | #define LASTVIEWLISTSIZE 10
12 |
13 | /////////////////////////////////////////////////////////////////////////////
14 | // CChooseTypeDlg dialog
15 |
16 | class CChooseTypeDlg : public CClrDialog
17 | {
18 | // Construction
19 | public:
20 | CChooseTypeDlg(PTYPEPARA pPara, CPaper *pPaper,
21 | CWnd* pParent = NULL); // standard constructor
22 |
23 | // Dialog Data
24 | //{{AFX_DATA(CChooseTypeDlg)
25 | enum { IDD = IDD_CHOOSETYPE_DLG };
26 | CListCtrl m_cList;
27 | CQButton m_cBtnOK;
28 | CQGroupBox m_cGroup1;
29 | CQButton m_cCheckRandom;
30 | BOOL m_bRandom;
31 | //}}AFX_DATA
32 |
33 |
34 | // Overrides
35 | // ClassWizard generated virtual function overrides
36 | //{{AFX_VIRTUAL(CChooseTypeDlg)
37 | protected:
38 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
39 | //}}AFX_VIRTUAL
40 |
41 | // Implementation
42 | protected:
43 |
44 | // Generated message map functions
45 | //{{AFX_MSG(CChooseTypeDlg)
46 | virtual void OnOK();
47 | virtual BOOL OnInitDialog();
48 | afx_msg void OnClickType(NMHDR* pNMHDR, LRESULT* pResult);
49 | //}}AFX_MSG
50 | DECLARE_MESSAGE_MAP()
51 |
52 | void InitShow();
53 |
54 | protected:
55 | PTYPEPARA m_pPara;
56 | CPaper *m_pPaper;
57 | };
58 |
59 | //{{AFX_INSERT_LOCATION}}
60 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
61 |
62 | #endif // !defined(AFX_CHOOSETYPEDLG_H__323A5A94_9E0A_48AC_8AF7_8FC324AEB100__INCLUDED_)
63 |
--------------------------------------------------------------------------------
/docs/2.0.0_develop.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 开发资料
16 |
17 |
18 |
19 |
20 | 本部分供本程序源码的维护者及兼容程序的开发者参考,如果您为应用程序的使用者,不需要关注此部分。
21 |
22 |
23 |
24 | 本开发资料包含以下内容:
25 |
26 |
27 |
37 |
38 |
39 | 本开发资料假设维护者及开发者对程序设计语言、文件系统及相关算法已有足够了解,同时受限于篇幅及个人精力,恕不对本应用程序的源码进行解读,也不对算法做原理性解释。
40 |
41 |
42 |
45 |
46 |
47 | GX Software 2020-2021
48 | V2.0
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/docs/1.2.1_storeitem.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 收藏题目
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | 被收藏的题目将在主界面右侧窗格的左端显示一个收藏记号
,可以在每个题库内的“收藏夹”中查看全部被收藏的题目。
25 |
26 |
27 | 题目组 也可被收藏,视为收藏题目组中全部题目。 在“收藏夹”列表中,仅可以查看题目或取消收藏,不可对题目进行任何编辑操作。
28 |
29 |
30 |
31 | 收藏信息保存在收藏夹文件中。收藏夹文件名和题库文件名相同,扩展名*.sav,和题库文件在同一路径时可以自动载入。删除收藏夹文件不会影响题库的正常载入,但会丢失收藏信息。
32 |
33 |
34 | 关闭题库时,应用程序将自动保存收藏夹文件,保存路径和题库相同(不支持修改路径),若没有收藏题目,将不会生成收藏夹文件(若之前创建过收藏夹文件,之后又取消了全部收藏,则收藏夹文件会被删除)。
35 |
36 |
37 | 每个题库的收藏夹仅能保存本题库的题目。
38 |
39 |
40 |
43 |
44 |
45 | GX Software 2020-2021
46 | V2.0
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/lib/zlib/win32/zlib.def:
--------------------------------------------------------------------------------
1 | ; zlib data compression library
2 | EXPORTS
3 | ; basic functions
4 | zlibVersion
5 | deflate
6 | deflateEnd
7 | inflate
8 | inflateEnd
9 | ; advanced functions
10 | deflateSetDictionary
11 | deflateGetDictionary
12 | deflateCopy
13 | deflateReset
14 | deflateParams
15 | deflateTune
16 | deflateBound
17 | deflatePending
18 | deflatePrime
19 | deflateSetHeader
20 | inflateSetDictionary
21 | inflateGetDictionary
22 | inflateSync
23 | inflateCopy
24 | inflateReset
25 | inflateReset2
26 | inflatePrime
27 | inflateMark
28 | inflateGetHeader
29 | inflateBack
30 | inflateBackEnd
31 | zlibCompileFlags
32 | ; utility functions
33 | compress
34 | compress2
35 | compressBound
36 | uncompress
37 | uncompress2
38 | gzopen
39 | gzdopen
40 | gzbuffer
41 | gzsetparams
42 | gzread
43 | gzfread
44 | gzwrite
45 | gzfwrite
46 | gzprintf
47 | gzvprintf
48 | gzputs
49 | gzgets
50 | gzputc
51 | gzgetc
52 | gzungetc
53 | gzflush
54 | gzseek
55 | gzrewind
56 | gztell
57 | gzoffset
58 | gzeof
59 | gzdirect
60 | gzclose
61 | gzclose_r
62 | gzclose_w
63 | gzerror
64 | gzclearerr
65 | ; large file functions
66 | gzopen64
67 | gzseek64
68 | gztell64
69 | gzoffset64
70 | adler32_combine64
71 | crc32_combine64
72 | ; checksum functions
73 | adler32
74 | adler32_z
75 | crc32
76 | crc32_z
77 | adler32_combine
78 | crc32_combine
79 | ; various hacks, don't look :)
80 | deflateInit_
81 | deflateInit2_
82 | inflateInit_
83 | inflateInit2_
84 | inflateBackInit_
85 | gzgetc_
86 | zError
87 | inflateSyncPoint
88 | get_crc_table
89 | inflateUndermine
90 | inflateValidate
91 | inflateCodesUsed
92 | inflateResetKeep
93 | deflateResetKeep
94 | gzopen_w
95 |
--------------------------------------------------------------------------------
/src/TMessageBox.h:
--------------------------------------------------------------------------------
1 | // TMessageBox.h: interface for the CTMessageBox class.
2 | //
3 | //////////////////////////////////////////////////////////////////////
4 |
5 | #if !defined(AFX_TMESSAGEBOX_H__AC2090E6_92B4_4C09_BDE7_FACF6CD71268__INCLUDED_)
6 | #define AFX_TMESSAGEBOX_H__AC2090E6_92B4_4C09_BDE7_FACF6CD71268__INCLUDED_
7 |
8 | #if _MSC_VER > 1000
9 | #pragma once
10 | #endif // _MSC_VER > 1000
11 |
12 | #include "ClrDialog.h"
13 |
14 | #define MESSAGE_MAXLEN 255
15 |
16 | #define MB_CANCELTRYCONTINUE 0x00000006L
17 | #define IDTRYAGAIN 10
18 | #define IDCONTINUE 11
19 |
20 | class CTMessageBox
21 | {
22 | public:
23 | CTMessageBox();
24 | virtual ~CTMessageBox();
25 |
26 | int SuperMessageBox(HWND hWnd,
27 | UINT nFormatID,
28 | UINT nCaptionID,
29 | UINT uType,
30 | UINT uDefaultType,
31 | UINT dwSecond, ...);
32 | int SuperMessageBox(HWND hWnd,
33 | LPCTSTR lpText,
34 | UINT nCaptionID,
35 | UINT uType,
36 | UINT uDefaultType,
37 | UINT dwSecond);
38 |
39 | protected:
40 | int SuperMessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType, UINT uDefaultType, UINT dwSecond);
41 |
42 | static LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam);
43 | static LRESULT WINAPI BoxProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
44 | static LRESULT WINAPI BtnProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
45 | static void CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT idEvent, DWORD dwTime);
46 |
47 | static int HandleResult(int nResult, LPARAM hCtrl);
48 |
49 | static TCHAR m_strMessage[MESSAGE_MAXLEN + 1];
50 | static TCHAR m_strCaption[MESSAGE_MAXLEN + 1];
51 | static UINT m_uType;
52 |
53 | static HHOOK m_hWndHook;
54 | static HWND m_hWnd;
55 | static HWND m_hTxtWnd;
56 |
57 | static int m_nTime;
58 | static UINT m_uDefault;
59 | };
60 |
61 | #endif // !defined(AFX_TMESSAGEBOX_H__AC2090E6_92B4_4C09_BDE7_FACF6CD71268__INCLUDED_)
62 |
--------------------------------------------------------------------------------
/docs/0.0.1_about.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 基本参数
16 |
17 |
18 |
19 | 表1 应用程序基本参数
20 |
21 | 程序名称 QuickQuiz (中文名“快考”)
22 | 程序类型 Windows 32位应用程序
23 | 运行环境 Windows 95及更新版本 操作系统,不需另外安装其他运行库;
24 |
25 | 当运行在Windows 95操作系统上时,Unicode版程序无法运行,仅可使用MBCS版程序,详情请参照在旧版本系统上使用本程序 ; 在Windows 2000及更新版本系统上,建议您使用Unicode版程序,以获得最高的执行效率
26 |
27 |
28 | 默认语言 简体中文
29 | 支持的题目类型 单项选择题(每题最多8个选项) 多项选择题(每题最多8个选项) 判断题 填空题(每题最多32个空白) 简答题 基于以上各类型的自定义类型 题目组(每组最多200道子题目)
30 | 单题库题目数量限制 5000
31 |
32 |
33 |
36 |
37 |
38 | GX Software 2020-2021
39 | V2.0
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/docs/0.0.3_inold.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 在旧版本系统上使用本程序
16 |
17 |
18 |
19 |
20 | 尽管您很可能正在使用Windows XP或者更新版本的操作系统,但QuickQuiz在某些旧操作系统(Windows 95/98)上仍然可以运行,但在使用中,您需要注意以下几个问题:
21 |
22 |
23 |
24 | 当您在Windows 95上使用本应用程序时,请选用MBCS版,经测试,在原生Windows 95操作系统下,Unicode版无法运行。
25 | 当您在Windows 98上使用本应用程序时,建议选用MBCS版,经测试,在原生Windows 98操作系统下执行Unicode版程序时,缺少mfc42u.dll,您可以自行下载mfc42u.dll至程序路径。
26 | 当您为运行于Windows 95上的QuickQuiz制作题库时,建议您保存为兼容题库文件,并勾选“兼容Windows 95”选项 ;您也可以保存为“适用于1.x版本的题库文件”,但这会丢失题库封面,题目图像等信息;您无法在Windows 95操作系统下存取标准题库文件(*.qux)。
27 |
28 |
29 |
30 |
31 |
32 | 当勾选“兼容Windows 95”时,保存的题库将失去最大的兼容性,很可能无法在使用其它语言的操作系统上读取或正确显示,若非必要,请勿勾选此选项; 关于“最大兼容”选项,参见保存题库 。
33 |
34 |
35 | 在Windows 98及更新操作系统上,保存兼容题库文件时均默认不兼容Windows 95,若您需要兼容Windows 95,请使用“另存为”。
36 |
37 |
38 |
41 |
42 |
43 | GX Software 2020-2021
44 | V2.0
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/src/WordByWord.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_WORDBYWORD_H__71C23541_FA74_47BF_96E1_98DE16A1CBD6__INCLUDED_)
2 | #define AFX_WORDBYWORD_H__71C23541_FA74_47BF_96E1_98DE16A1CBD6__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // WordByWord.h : header file
8 | //
9 |
10 | #define WWN_SHOWEND 0
11 |
12 | /////////////////////////////////////////////////////////////////////////////
13 | // CWordByWord window
14 |
15 | class CWordByWord : public CWnd
16 | {
17 | // Construction
18 | public:
19 | CWordByWord();
20 |
21 | // Attributes
22 | public:
23 |
24 | // Operations
25 | public:
26 | void SetText(LPCTSTR string);
27 | void Show(int nInter, int nMaxLineCount = 0);
28 | void Stop();
29 | inline BOOL IsEnd() { return m_bIsEnd; }
30 |
31 | // Overrides
32 | // ClassWizard generated virtual function overrides
33 | //{{AFX_VIRTUAL(CWordByWord)
34 | protected:
35 | virtual void PreSubclassWindow();
36 | //}}AFX_VIRTUAL
37 |
38 | // Implementation
39 | public:
40 | virtual ~CWordByWord();
41 |
42 | // Generated message map functions
43 | protected:
44 | //{{AFX_MSG(CWordByWord)
45 | afx_msg void OnPaint();
46 | afx_msg void OnTimer(UINT nIDEvent);
47 | //}}AFX_MSG
48 |
49 | DECLARE_MESSAGE_MAP()
50 |
51 | void DisplayText(HDC dc);
52 | void InCreateReturnList(int nNeedLen);
53 | BOOL SetNextWord();
54 |
55 | protected:
56 | LPTSTR m_strText;
57 |
58 | CRect m_rcClient;
59 | int m_nHeight;
60 | int *m_ReturnIndex;
61 | int m_nReturnListCount;
62 | int m_nLineCount;
63 |
64 | int m_nMaxLineCount;
65 | int m_nFirstShowIndex;
66 | int m_nCurLine;
67 | int m_nCurIndex;
68 | int m_nCurLineFirst;
69 |
70 | BOOL m_bIsShowing;
71 | BOOL m_bIsEnd;
72 | };
73 |
74 | /////////////////////////////////////////////////////////////////////////////
75 |
76 | //{{AFX_INSERT_LOCATION}}
77 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
78 |
79 | #endif // !defined(AFX_WORDBYWORD_H__71C23541_FA74_47BF_96E1_98DE16A1CBD6__INCLUDED_)
80 |
--------------------------------------------------------------------------------
/lib/tinyxml/tinyxmlerror.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | www.sourceforge.net/projects/tinyxml
3 | Original code (2.0 and earlier )copyright (c) 2000-2006 Lee Thomason (www.grinninglizard.com)
4 |
5 | This software is provided 'as-is', without any express or implied
6 | warranty. In no event will the authors be held liable for any
7 | damages arising from the use of this software.
8 |
9 | Permission is granted to anyone to use this software for any
10 | purpose, including commercial applications, and to alter it and
11 | redistribute it freely, subject to the following restrictions:
12 |
13 | 1. The origin of this software must not be misrepresented; you must
14 | not claim that you wrote the original software. If you use this
15 | software in a product, an acknowledgment in the product documentation
16 | would be appreciated but is not required.
17 |
18 | 2. Altered source versions must be plainly marked as such, and
19 | must not be misrepresented as being the original software.
20 |
21 | 3. This notice may not be removed or altered from any source
22 | distribution.
23 | */
24 |
25 | #include "StdAfx.h"
26 | #include "tinyxml.h"
27 |
28 | // The goal of the seperate error file is to make the first
29 | // step towards localization. tinyxml (currently) only supports
30 | // english error messages, but the could now be translated.
31 | //
32 | // It also cleans up the code a bit.
33 | //
34 |
35 | const char* TiXmlBase::errorString[ TiXmlBase::TIXML_ERROR_STRING_COUNT ] =
36 | {
37 | "No error",
38 | "Error",
39 | "Failed to open file",
40 | "Error parsing Element.",
41 | "Failed to read Element name",
42 | "Error reading Element value.",
43 | "Error reading Attributes.",
44 | "Error: empty tag.",
45 | "Error reading end tag.",
46 | "Error parsing Unknown.",
47 | "Error parsing Comment.",
48 | "Error parsing Declaration.",
49 | "Error document empty.",
50 | "Error null (0) or unexpected EOF found in input stream.",
51 | "Error parsing CDATA.",
52 | "Error when TiXmlDocument added to document, because TiXmlDocument can only be at the root.",
53 | };
54 |
--------------------------------------------------------------------------------
/src/QTabCtrl.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_QTABCTRL_H__67849A40_66AF_4A80_9932_B24E59CC1F33__INCLUDED_)
2 | #define AFX_QTABCTRL_H__67849A40_66AF_4A80_9932_B24E59CC1F33__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // QTabCtrl.h : header file
8 | //
9 |
10 | class CTabPage;
11 |
12 | #define MAXPAGENUM 6
13 |
14 | /////////////////////////////////////////////////////////////////////////////
15 | // CQTabCtrl window
16 |
17 | class CQTabCtrl : public CTabCtrl
18 | {
19 | // Construction
20 | public:
21 | CQTabCtrl();
22 |
23 | // Attributes
24 | public:
25 |
26 | // Operations
27 | public:
28 | BOOL AddPage(UINT nIDTemplate, CTabPage *pPage, LPCTSTR szTitle);
29 |
30 | CTabPage* GetPage(int nIndex);
31 | int GetPageCount() { return m_nPageCount; }
32 |
33 | void SwitchPage(int nIndex);
34 | void SetChangeable(BOOL bIsChangeable) { m_bCanChangeType = bIsChangeable; }
35 |
36 | // Overrides
37 | // ClassWizard generated virtual function overrides
38 | //{{AFX_VIRTUAL(CQTabCtrl)
39 | protected:
40 | virtual void PreSubclassWindow();
41 | //}}AFX_VIRTUAL
42 |
43 | // Implementation
44 | public:
45 | virtual ~CQTabCtrl();
46 |
47 | // Generated message map functions
48 | protected:
49 | //{{AFX_MSG(CQTabCtrl)
50 | afx_msg void OnSelChange(NMHDR* pNMHDR, LRESULT* pResult);
51 | afx_msg BOOL OnEraseBkgnd(CDC* pDC);
52 | afx_msg void OnDestroy();
53 | afx_msg void OnPaint();
54 | //}}AFX_MSG
55 | DECLARE_MESSAGE_MAP()
56 |
57 | void SetChildPos(CTabPage *pPage);
58 | BOOL SwitchShow(int nIndex);
59 |
60 | void Paint(HDC hDC);
61 |
62 | protected:
63 | int m_nPageCount;
64 | int m_nShowingPage;
65 |
66 | CTabPage *m_pPageList[MAXPAGENUM];
67 |
68 | BOOL m_bCanChangeType;
69 | };
70 |
71 | /////////////////////////////////////////////////////////////////////////////
72 |
73 | //{{AFX_INSERT_LOCATION}}
74 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
75 |
76 | #endif // !defined(AFX_QTABCTRL_H__67849A40_66AF_4A80_9932_B24E59CC1F33__INCLUDED_)
77 |
--------------------------------------------------------------------------------
/docs/2.0.5_saveformat.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 收藏夹文件格式
16 |
17 |
18 |
19 |
20 | 用于记录题库收藏信息的文件,扩展名*.sav,此文件丢失也不应影响题库的正常读取。
21 |
22 |
23 | 表16 收藏夹文件格式
24 |
25 | 段序号 段描述 长度 说明
26 |
27 | 1 收藏夹开始标记 14Bytes
28 | ASCII编码方式的“QuickQuiz_Save”字串,区分大小写。
29 |
30 |
31 | 收藏信息段开始,此段的个数为题库中题目总数量(题目组中每个子题目均各占一段)
32 | 2 题目是否收藏 1Byte
33 | 0为未收藏,1为收藏。
34 |
35 |
36 | 题目校验码 2Bytes
37 | 用于校验题目,计算方法详见题目校验算法
38 |
39 | 收藏信息段结束
40 |
41 |
42 |
43 |
44 | 收藏夹文件中各收藏信息的顺序与题库中题目的顺序完全一致,读完全部题目内容后才读取收藏信息;读取时将判断题目的校验码是否正确,如果某题的校验码错误,将立即停止读取。
45 |
46 |
47 |
50 |
51 |
52 | GX Software 2020-2021
53 | V2.0
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/docs/1.3.1_view.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 开始学习
16 |
17 |
18 |
19 |
20 | 学习当前被选中题库的题目。
21 |
22 |
23 |
24 |
25 |
26 |
27 | “学习模式”采用“默想+浏览 ”的学习方法,即首先查看题目并在心中默想答案,然后浏览正确答案进行自我验证 。
28 |
29 |
30 | 双击右侧题目列表中的题目可以快速跳转。
31 |
32 |
33 |
34 |
35 | 逐步显示答案。以下说明的初始状态为:“题目”窗格中显示题目文本,“答案”与“题目解析”窗格中没有显示。
36 |
37 |
38 | 单选题/多选题/判断题 :点击一次显示答案与解析(如果有),再点击一次显示下一道题目;
39 | 填空题 :每点击一次显示一个空白的答案,显示最后一个空白答案的同时显示解析(如果有),再点击一次显示下一道题目;
40 | 简答题 :每点击一次显示一个自然段的答案,显示最后一个自然段的同时显示解析(如果有),再点击一次显示下一道题目。
41 |
42 |
43 | 浏览完最后一道题目后,将重新定位至第一道题目 。
44 |
45 |
46 |
47 |
48 | 仅针对填空题和简答题,勾选后,点击一次“下一步”即显示完整的答案,不再每次只显示一部分答案。
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 | 勾选希望学习的题目类型。勾选“随机看题”后,会将题目打乱顺序,且每次浏览完最后一道题目后均会再次打乱。
57 |
58 |
59 |
62 |
63 |
64 | GX Software 2020-2021
65 | V2.0
66 |
67 |
68 |
69 |
--------------------------------------------------------------------------------
/docs/4.0.1_view.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 学习模式
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | 滚动显示各题目。
25 |
26 |
27 | 切换显示答案与隐藏答案。
28 |
29 |
30 | 将当前题目收藏或取消收藏。
31 |
32 | 收藏的题目保存在当前设备的缓存中,清理缓存后收藏信息将丢失。 本收藏与桌面版应用程序的收藏夹没有任何关系。
33 |
34 |
35 |
36 | 输入题目序号,快速跳转至指定题目。
37 |
38 |
39 | 勾选您希望浏览的题目类型,自定义类型题目及题目组中的题目也将按照其基本类型显示(自定义类型名称及题目组类型名称将在顶部显示)。
40 |
41 |
42 | 打乱题目显示的顺序,“随机范围”用于设置打乱顺序的题目范围。
43 |
44 |
45 | 一段任意字串,用来控制题目的显示顺序,输入相同的随机Key将获得相同顺序的题目。
46 |
47 |
48 | 选择希望浏览的题目类型与乱序后,点击“更新题目”使设置生效。
49 |
50 |
51 | 查找包含有关键字的题目,多次点击“查找”可以依次浏览符合条件的题目。
52 |
53 |
56 |
57 |
58 | GX Software 2020-2021
59 | V2.0
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | QuickQuiz帮助文档
16 |
17 |
18 |
19 |
20 | 欢迎您使用QuickQuiz!
21 |
22 |
23 |
24 |
QuickQuiz (中文名称“快考”)是一部用于
自学、备考、备赛 的应用程序,包含
题库制作、题目管理、题库浏览、自我测验、试卷生成 等诸多功能,请参考
使用说明 获取更多信息。
25 |
26 |
27 |
28 | 本应用程序没有任何版权限制(本声明仅包含应用程序本身、源码以及本帮助文档),您可以
免费使用与无限制传播 ,您也可以访问作者的
Git库 获取源码,并对其进行
修正、任意修改与二次开发 。
若您将本应用程序用于商业用途,造成的一切后果与作者无关 。
29 |
30 |
31 |
32 | 本应用程序仅提供Windows系统(Win32)支持,若您有兴趣和能力在其它系统开发兼容版本,请参考
开发资料 获取更多开发信息,
33 |
34 |
35 |
36 | 本应用程序不收取任何费用,不会以任何形式联网,不会以任何形式推送广告,不会触发任何杀毒软件报警,若您在使用中发现联网或报毒现象,则证明本软件已被篡改,请立即删除并重新下载。
37 |
38 |
39 |
42 |
43 |
46 |
47 |
48 | (本帮助文档基于QuickQuiz Desktop 2.0Beta 版本编写,如后续版本有功能上的更新,恕不另行通知)
49 | GX Software 2020-2021
50 | V2.0
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/src/TxtOutDlg.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_TXTOUTDLG_H__9F181BA5_0FBE_49DF_9C50_0D861870C716__INCLUDED_)
2 | #define AFX_TXTOUTDLG_H__9F181BA5_0FBE_49DF_9C50_0D861870C716__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // TxtOutDlg.h : header file
8 | //
9 |
10 | /////////////////////////////////////////////////////////////////////////////
11 | // CTxtOutDlg dialog
12 |
13 | class CTxtOutDlg : public CClrDialog
14 | {
15 | // Construction
16 | public:
17 | CTxtOutDlg(CPaper *pPaper, CWnd* pParent = NULL); // standard constructor
18 |
19 | CString m_sAnsiFont;
20 | CString m_sMainFont;
21 | CString m_sPreFont;
22 |
23 | // Dialog Data
24 | //{{AFX_DATA(CTxtOutDlg)
25 | enum { IDD = IDD_TXTOUT_DLG };
26 | CQButton m_cCheckRes;
27 | CQButton m_cRadioWithQ;
28 | CQButton m_cRadioOnly;
29 | CQComboBox m_cComboPre;
30 | CQComboBox m_cComboMain;
31 | CQComboBox m_cComboAnsi;
32 | CQEdit m_cEditPath;
33 | CQButton m_cBtnPath;
34 | CListBox m_cList;
35 | CQButton m_cBtnOK;
36 | int m_nSel;
37 | CString m_sFileFullPath;
38 | int m_nAswStyle;
39 | BOOL m_bWithRes;
40 | //}}AFX_DATA
41 |
42 |
43 | // Overrides
44 | // ClassWizard generated virtual function overrides
45 | //{{AFX_VIRTUAL(CTxtOutDlg)
46 | protected:
47 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
48 | //}}AFX_VIRTUAL
49 |
50 | // Implementation
51 | protected:
52 | CPaper *m_pPaper;
53 | CString m_sFilePath;
54 | CString m_sFileTitle;
55 |
56 | void SaveSettings();
57 |
58 | void FillFileInfo(LPCTSTR pPath);
59 | void FillFontList();
60 |
61 | static int CALLBACK EnumFontFamExProc(
62 | ENUMLOGFONTEX *lpelfe,
63 | NEWTEXTMETRICEX *lpntme,
64 | DWORD FontType,
65 | LPARAM lParam
66 | );
67 |
68 |
69 | // Generated message map functions
70 | //{{AFX_MSG(CTxtOutDlg)
71 | virtual BOOL OnInitDialog();
72 | virtual void OnOK();
73 | afx_msg void OnDblClkList();
74 | afx_msg void OnFilePath();
75 | afx_msg void OnSelChange();
76 | //}}AFX_MSG
77 | DECLARE_MESSAGE_MAP()
78 | };
79 |
80 | //{{AFX_INSERT_LOCATION}}
81 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
82 |
83 | #endif // !defined(AFX_TXTOUTDLG_H__9F181BA5_0FBE_49DF_9C50_0D861870C716__INCLUDED_)
84 |
--------------------------------------------------------------------------------
/docs/1.2.2_edititem.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 编辑题目
16 |
17 |
18 |
19 |
20 | 编辑题目界面与
新建题目 类似,功能大体相同。
21 |
22 |
23 |
24 |
25 |
26 |
27 | 在主界面右侧窗格中选中若干个需要编辑的题目,然后进行编辑。在编辑状态下,“新建题目”“删除题目”“批量生成”功能均为禁用状态。
28 |
29 |
30 | 选中的题目组不会进入编辑状态。
31 |
32 |
33 |
34 | 若在题库页面选取题目并进行编辑,允许对题目的类型进行修改;若在类型页面选取题目并进行编辑,不允许对题目的类型进行修改
35 |
36 |
37 | 若需要编辑自定义类型题目,必须在各自定义类型对应的类型窗格 中进行选取;若在题库窗格 中选取了若干自定义类型题目,则编辑功能不可用。 编辑后题目的收藏状态不变。
38 |
39 |
40 |
41 | 在编辑状态下,“新建题目”“批量生成”均为无效状态。
42 |
43 |
44 |
45 | 编辑结束后,点击“确认”保存所有修改,退出界面,并将所有修改在题库中生效。
46 |
47 | 若部分题目编辑后不符合有效题目 的要求,视为未编辑过这些题目。
48 |
49 |
50 |
51 | 不点击“确认”而退出视为未编辑任何题目。
52 |
53 |
56 |
57 |
58 | GX Software 2020-2021
59 | V2.0
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/docs/4.0.0_net.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 简易网页版
16 |
17 |
18 |
19 | 简易网页版旨在方便于移动设备上进行学习自测,请访问:https://gxsoftware.gitee.io/quickquiz-m 。
20 |
21 |
22 |
23 |
24 |
25 |
26 | 将页面主题颜色切换为深色/浅色模式。
27 |
28 | 您对主题颜色的选择将被记录。 每日23时至次日7时,夜间模式默认开启。
29 |
30 |
31 |
32 | 本工具支持打开本地的兼容题库文件 及带封面的兼容题库文件 (不支持兼容Windows 95格式),打开后,将在主界面显示被打开的题库名称,后述功能在打开题库后才能使用。
33 |
34 | 如果您在移动设备上使用本工具,推荐使用带封面的兼容题库文件,可以将题库保存在相册中,管理方便。将图片题库传输至移动设备时,必须传输原图,保存时也必须为原图,不可对图片进行压缩或编辑,否则极易损坏题库文件。
35 |
36 |
37 |
38 | 全部类型题目的“默想+浏览”方式自学,详见学习模式 。
39 |
40 |
41 | 单选题、多选题、判断题的自我测试及评分,详见测试模式 。
42 |
43 |
44 | 快速查找题库中含有关键字的题目及答案,详见速查模式 。
45 |
46 |
49 |
50 |
51 | GX Software 2020-2021
52 | V2.0
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/docs/1.2.7_customtype.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 自定义类型
16 |
17 |
18 |
19 |
20 | 自定义类型 指的是给某个默认题目类型设定一个新的名称,并添加一个新的类型列表保存题目。例如,基于“多选题”类型的“不定项选择”类型,用来区分两者。
21 |
22 |
23 | 可以为自定义类型设置题号,参见
题号 。
24 |
25 |
26 |
27 |
28 | 点击菜单“题库——添加自定义类型”,或在主界面左侧窗格的题库节点上右键选择“添加自定义类型”;
29 |
30 |
31 |
32 | 选择基础类型,即设置当前自定义类型是属于哪种默认类型的。
33 |
34 |
35 |
36 | 设置自定义类型的名称,然后就可以向类型列表中添加题目了。
37 |
38 |
39 |
40 |
41 |
42 | 自定义类型一旦建立,便不可修改其基础类型,在类型列表中添加的题目也不可修改类型; 自定义类型的名称可以修改。
43 |
44 |
45 |
46 |
47 | 删除自定义类型时,将会删除自定义类型下全部题目。
48 |
49 |
50 |
51 |
52 | 向题库窗格 粘贴题目时,不可粘贴自定义类型题目;
53 | 向类型窗格 粘贴题目时,只要基础类型相同,就可以粘贴;
54 | 粘贴时,跳过不符合以上规则的题目。
55 |
56 |
57 |
60 |
61 |
62 | GX Software 2020-2021
63 | V2.0
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/docs/4.0.2_test.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 测试模式
16 |
17 |
18 |
19 | 进入测试模式后,首先进行设置:
20 |
21 |
22 |
23 |
24 |
25 | 测试模式支持测试单选题、多选题、判断题(包括基本类型为单选题、多选题、判断题的自定义类型题目,但不包括任何类型的题目组题目)。
26 |
27 |
28 | 输入考试时间,输入0或不输入为不限时。
29 |
30 |
31 | 与“随机Key ”功能相同,用来控制题目生成内容及顺序,相同的姓名将产生完全相同的测试题目。若不输入,则题目将完全随机。
32 |
33 |
34 | 设置完成后点击“开始答题”进入答题界面如下:
35 |
36 |
37 |
38 |
39 |
40 | 滚动显示各题目。
41 |
42 |
43 | 跳转至下一道未作答的题目。
44 |
45 |
46 | 给不确定答案的题目作上标记,点击“下个标记”可以依次显示被标记的题目。
47 |
48 |
49 | 隐藏答题界面,并暂停计时。
50 |
51 |
52 | 自动评分,弹窗显示正确率和用时,并进入答案浏览界面如下:
53 |
54 |
55 |
56 |
57 |
58 | 只显示做错的题目。
59 |
60 |
61 | 回到测试设置界面,准备开始下一次测试。
62 |
63 |
66 |
67 |
68 | GX Software 2020-2021
69 | V2.0
70 |
71 |
72 |
73 |
--------------------------------------------------------------------------------
/docs/2.0.1_code.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 源码概述
16 |
17 |
18 |
19 |
20 |
21 | IDE为Microsoft Visual C++ 6.0 Professional Edition,在Windows7 Ultimate x64系统下完美编译。
22 |
23 |
24 |
25 |
26 | 基于C++开发框架,但几乎全部以“C风格”写就。
27 |
28 |
29 |
30 |
31 | Platform SDK for Windows User Interface、MFC4.2。
32 |
33 |
34 |
35 |
36 | 使用“_UNICODE”或“_MBCS”宏,可编译为宽字符版或多字节版(不论何版本,生成题库文件均完全兼容)。
37 |
38 |
39 |
40 |
41 | .\Bin
42 | 已归档的可执行文件
43 |
44 | .\help
45 | html帮助文档
46 |
47 | .\lib
48 | 依赖的第三方库,包含:
49 | .\lib\libjpeg jpeg图像库
50 | .\lib\libpng png图像库
51 | .\lib\original_package 各库的原始压缩包
52 | .\lib\tinyxml xml读写库
53 | .\lib\zlib 压缩库
54 |
55 | .\res
56 | 主程序所使用的资源文件
57 |
58 | .\src
59 | 主程序的全部源码
60 |
61 | QuickQuiz.dsp
62 | 适用于Visual C++ 6.0的工程文件
63 |
64 | QuickQuiz.dsw
65 | 适用于Visual C++ 6.0的工作空间文件,包含全部工程
66 |
67 |
68 |
71 |
72 |
73 | GX Software 2020-2021
74 | V2.0
75 |
76 |
77 |
78 |
--------------------------------------------------------------------------------
/src/ImageBar.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_IMAGEBAR_H__B98CB020_4558_4F16_95F9_0FD7647EF97D__INCLUDED_)
2 | #define AFX_IMAGEBAR_H__B98CB020_4558_4F16_95F9_0FD7647EF97D__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // ImageBar.h : header file
8 | //
9 |
10 | #define WM_IMAGEBARNOTIFY (WM_USER + 1)
11 |
12 | enum ImageBarNodify {
13 | IMAGEBARNOTIFY_PRE = 0,
14 | IMAGEBARNOTIFY_NEXT,
15 | IMAGEBARNOTIFY_NEW,
16 | IMAGEBARNOTIFY_SET,
17 | IMAGEBARNOTIFY_DELETE
18 | };
19 |
20 | /////////////////////////////////////////////////////////////////////////////
21 | // CImageBar dialog
22 |
23 | class CImageBar : public CDialogBar
24 | {
25 | // Construction
26 | public:
27 | CImageBar(CWnd* pParent = NULL); // standard constructor
28 | ~CImageBar();
29 |
30 | BOOL CreateBar(CWnd* pParentWnd, UINT uID);
31 |
32 | int GetDefaultWidth() { return m_nWidth; }
33 | int GetDefaultHeight() { return m_nHeight; }
34 | void SetStatus(size_t ulCount, size_t ulCur, size_t ulMax, LPCTSTR lpTitle);
35 |
36 | void GetImageTitle(CString &string);
37 | BOOL IsModified();
38 |
39 | // Dialog Data
40 | //{{AFX_DATA(CImageBar)
41 | enum { IDD = IDD_IMAGESET_BAR };
42 | CQEdit m_cEditTitle;
43 | CQButton m_cBtnDelete;
44 | CQButton m_cBtnSet;
45 | CQButton m_cBtnNew;
46 | CQButton m_cBtnPre;
47 | CQButton m_cBtnNext;
48 | //}}AFX_DATA
49 |
50 |
51 | // Overrides
52 | // ClassWizard generated virtual function overrides
53 | //{{AFX_VIRTUAL(CImageBar)
54 | protected:
55 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
56 | //}}AFX_VIRTUAL
57 |
58 | // Implementation
59 | protected:
60 | int m_nWidth;
61 | int m_nHeight;
62 |
63 | BOOL m_bTitleModify;
64 |
65 | // Generated message map functions
66 | //{{AFX_MSG(CImageBar)
67 | virtual void OnOK() {}
68 | virtual void OnCancel() {}
69 | virtual BOOL OnInitDialog(UINT wParam, LONG lParam);
70 | afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
71 | afx_msg void OnPre();
72 | afx_msg void OnNext();
73 | afx_msg void OnNew();
74 | afx_msg void OnSet();
75 | afx_msg void OnDelete();
76 | //}}AFX_MSG
77 | DECLARE_MESSAGE_MAP()
78 | };
79 |
80 | //{{AFX_INSERT_LOCATION}}
81 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
82 |
83 | #endif // !defined(AFX_IMAGEBAR_H__B98CB020_4558_4F16_95F9_0FD7647EF97D__INCLUDED_)
84 |
--------------------------------------------------------------------------------
/src/BlkTxtCheckDlg.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_BLKTXTCHECKDLG_H__2615CBD0_AACC_4257_AFCD_2DE6B072CC28__INCLUDED_)
2 | #define AFX_BLKTXTCHECKDLG_H__2615CBD0_AACC_4257_AFCD_2DE6B072CC28__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // BlkTxtCheckDlg.h : header file
8 | //
9 |
10 | #include "ItemShowWnd.h"
11 |
12 | /////////////////////////////////////////////////////////////////////////////
13 | // CBlkTxtCheckDlg dialog
14 |
15 | typedef struct _tagBlkTxtScore
16 | {
17 | int nScore;
18 | BOOL bUser;
19 | }SCOREINFO;
20 |
21 | class CBlkTxtCheckDlg : public CClrDialog
22 | {
23 | // Construction
24 | public:
25 | CBlkTxtCheckDlg(CList *pList, CTestPara *pPara, CWnd* pParent = NULL); // standard constructor
26 | ~CBlkTxtCheckDlg();
27 |
28 | // Dialog Data
29 | //{{AFX_DATA(CBlkTxtCheckDlg)
30 | enum { IDD = IDD_BLKTXTCHECK_DLG };
31 | CQComboBox m_cComboFont;
32 | CQButton m_cBtnCancel;
33 | CQGroupBox m_cGroup2;
34 | CQGroupBox m_cGroup1;
35 | CQEdit m_cEditTxtScore;
36 | CQButton m_cBtnPre;
37 | CQButton m_cBtnNext;
38 | CItemShowWnd m_cUser;
39 | CItemShowWnd m_cReal;
40 | //}}AFX_DATA
41 |
42 |
43 | // Overrides
44 | // ClassWizard generated virtual function overrides
45 | //{{AFX_VIRTUAL(CBlkTxtCheckDlg)
46 | public:
47 | virtual int DoModal();
48 | protected:
49 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
50 | //}}AFX_VIRTUAL
51 |
52 | void InitTmpList();
53 | void SetShow();
54 | void SaveCurrent();
55 | float GetSimilarity(CItem *pItem);
56 | int GetMaxPoint();
57 |
58 | // Implementation
59 | protected:
60 | CTestPara *m_pPara;
61 | CList *m_pList;
62 |
63 | CTempList m_TmpList;
64 | int m_nCurShow;
65 | BOOL *m_pUserSet;
66 |
67 | CTextSimilarity m_cSimilarity;
68 |
69 | // Generated message map functions
70 | //{{AFX_MSG(CBlkTxtCheckDlg)
71 | virtual BOOL OnInitDialog();
72 | afx_msg void OnButtonPre();
73 | afx_msg void OnButtonNext();
74 | virtual void OnCancel();
75 | afx_msg void OnKillFocus();
76 | afx_msg void OnSelChangeFontSize();
77 | //}}AFX_MSG
78 | afx_msg LRESULT OnItemShowWndNotify(WPARAM wParam, LPARAM lParam);
79 | DECLARE_MESSAGE_MAP()
80 | };
81 |
82 | //{{AFX_INSERT_LOCATION}}
83 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
84 |
85 | #endif // !defined(AFX_BLKTXTCHECKDLG_H__2615CBD0_AACC_4257_AFCD_2DE6B072CC28__INCLUDED_)
86 |
--------------------------------------------------------------------------------
/docs/1.0.6_viewmenu.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | “界面”菜单
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | “界面”菜单的相关说明如下:
25 |
26 |
27 |
28 |
29 | 显示或隐藏工具栏。
30 |
31 |
32 |
33 |
34 | 显示或隐藏状态栏。
35 |
36 |
37 |
38 |
39 | 设定应用程序的主题颜色,可设置为默认(跟随系统主题)、护眼绿、夜间三种模式。
40 |
41 | 可被更改的颜色区域包括:
42 |
43 |
44 | 主界面左侧和右侧窗格
45 | 消息框
46 | 非系统对话框及其中全部元素
47 | 内置文本编辑器的编辑窗
48 |
49 |
50 | 以下分别为护眼绿和夜间模式的示例。
51 |
52 |
53 |
54 | 打开题库、保存题库、查找、替换等系统对话框不受界面颜色的限制。
55 |
56 |
57 |
58 |
59 | 设定主界面右侧窗格摘要的显示最大长度,可选20~120字符。
60 |
61 |
62 |
63 |
64 | 应用程序在关闭后,将自动在Windows注册表中保存窗口大小、界面颜色、测试设定、最近打开文件等用户信息。若您不再需要这些信息,勾选本项后,应用程序将在下一次退出后清理这些信息。
65 |
66 |
67 | 在退出应用程序前,您可以随时取消本项的勾选。
68 |
69 |
70 |
73 |
74 |
75 | GX Software 2020-2021
76 | V2.0
77 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/src/XmlTags.cpp:
--------------------------------------------------------------------------------
1 | #include "StdAfx.h"
2 |
3 | LPCSTR xml_lpszDeclar_Encoding = "UTF-8";
4 | LPCSTR xml_lpszDeclar_Encoding95 = "GBK";
5 |
6 | LPCSTR xml_lpszNode_Library = "library";
7 | LPCSTR xml_lpszNode_Version = "version";
8 | LPCSTR xml_lpszNode_Key = "key";
9 | LPCSTR xml_lpszNode_Title = "title";
10 | LPCSTR xml_lpszNode_Pswd = "pswd";
11 | LPCSTR xml_lpszNode_Custom = "cust";
12 | LPCSTR xml_lpszNode_Type = "type";
13 |
14 | LPCSTR xml_lpszNode_Cover = "cover";
15 |
16 | LPCSTR xml_lpszNode_Question = "qstn";
17 | LPCSTR xml_lpszNode_Description = "desc";
18 | LPCSTR xml_lpszNode_Resolve = "res";
19 | LPCSTR xml_lpszNode_Image = "img";
20 | LPCSTR xml_lpszNode_Option = "opt";
21 | LPCSTR xml_lpszNode_Answer = "ans";
22 | LPCSTR xml_lpszNode_Blank = "blk";
23 | LPCSTR xml_lpszNode_Group = "grp";
24 |
25 | LPCSTR xml_lpszAttribute_Type = "type";
26 | LPCSTR xml_lpszAttribute_Index = "index";
27 | LPCSTR xml_lpszAttribute_QNum = "qnum";
28 | LPCSTR xml_lpszAttribute_Custom = "cust";
29 | LPCSTR xml_lpszAttribute_Answer = "ans";
30 | LPCSTR xml_lpszAttribute_Begin = "beg";
31 | LPCSTR xml_lpszAttribute_End = "end";
32 | LPCSTR xml_lpszAttribute_Title = "title";
33 | LPCSTR xml_lpszAttribute_Loc = "loc";
34 |
35 | LPCSTR xml_lpszAttribute_Width = "width";
36 | LPCSTR xml_lpszAttribute_Height = "height";
37 | LPCSTR xml_lpszAttribute_ColorBk = "clrbk";
38 | LPCSTR xml_lpszAttribute_ColorText = "clrtxt";
39 | LPCSTR xml_lpszAttribute_Quality = "quality";
40 |
41 | LPCSTR xml_lpszText_ImageHead = "data:image/";
42 | LPCSTR xml_lpszText_ImageBmp = "bmp;base64,";
43 | LPCSTR xml_lpszText_ImageJpeg = "jpeg;base64,";
44 | LPCSTR xml_lpszText_ImageJpg = "jpg;base64,";
45 | LPCSTR xml_lpszText_ImagePng = "png;base64,";
46 |
47 | LPCSTR xml_lpszType[TYPE_DEFAULTCOUNT + 1] =
48 | {
49 | "unknown",
50 | "s-choise",
51 | "m-choise",
52 | "judge",
53 | "blank",
54 | "text",
55 | "group"
56 | };
57 |
58 | LPCSTR xml_lpszCommon_True = "t";
59 | LPCSTR xml_lpszCommon_False = "f";
60 |
61 | LPCSTR XMLGetTypeAttribute(int nType)
62 | {
63 | if (nType > TYPE_DEFAULTCOUNT)
64 | {
65 | return NULL;
66 | }
67 |
68 | return xml_lpszType[nType];
69 | }
70 |
71 | int XMLGetTypeIndex(LPCSTR lpszType)
72 | {
73 | int i;
74 | for (i = TYPE_SCHOISE; i <= TYPE_DEFAULTCOUNT; i++)
75 | {
76 | if (!strcmp(lpszType, xml_lpszType[i]))
77 | {
78 | return i;
79 | }
80 | }
81 |
82 | return TYPE_DEFAULT;
83 | }
--------------------------------------------------------------------------------
/src/JpegCoverDlg.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_JPEGCOVERDLG_H__57419B05_14EA_4BCA_AE78_F50E9D656A5D__INCLUDED_)
2 | #define AFX_JPEGCOVERDLG_H__57419B05_14EA_4BCA_AE78_F50E9D656A5D__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // JpegCoverDlg.h : header file
8 | //
9 |
10 | #include "MemBmp.h"
11 |
12 | class CImageFrame;
13 |
14 | /////////////////////////////////////////////////////////////////////////////
15 | // CJpegCoverDlg dialog
16 |
17 | class CJpegCoverDlg : public CClrDialog
18 | {
19 | // Construction
20 | public:
21 | CJpegCoverDlg(CPaper *pPaper, CWnd* pParent = NULL); // standard constructor
22 | ~CJpegCoverDlg();
23 |
24 | inline BOOL IsModify() { return m_bModify; }
25 | LPPAPERCOVERINFO GetCoverInfo();
26 |
27 | // Dialog Data
28 | //{{AFX_DATA(CJpegCoverDlg)
29 | enum { IDD = IDD_JPEGCOVER_DLG };
30 | CQEdit m_cEditQuality;
31 | CQButton m_cBtnView;
32 | CQColorSetter m_cTxtColor;
33 | CQColorSetter m_cBkColor;
34 | CQButton m_cRadioNo;
35 | CQButton m_cBtnOK;
36 | CQButton m_cBtnCancel;
37 | CQButton m_cRadioDefault;
38 | CQButton m_cRadioUser;
39 | CQEdit m_cEditWidth;
40 | CQEdit m_cEditTitle;
41 | CQEdit m_cEditJpegChoose;
42 | CQEdit m_cEditHeight;
43 | CQButton m_cBtnOpen;
44 | int m_nRadioType;
45 | //}}AFX_DATA
46 |
47 |
48 | // Overrides
49 | // ClassWizard generated virtual function overrides
50 | //{{AFX_VIRTUAL(CJpegCoverDlg)
51 | public:
52 | virtual int DoModal();
53 | protected:
54 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
55 | //}}AFX_VIRTUAL
56 |
57 | // Implementation
58 | protected:
59 | CString m_strTitle;
60 | int m_nWidth;
61 | int m_nHeight;
62 | COLORREF m_clrBk;
63 | COLORREF m_clrTxt;
64 | int m_nQuatlity;
65 | CString m_strJpegPath;
66 |
67 | CPaper *m_pPaper;
68 | BOOL m_bModify;
69 | PAPERCOVERINFO m_inf;
70 |
71 | CImageFrame *m_pImgFrame;
72 | CMemBmp m_Bmp;
73 |
74 | // Generated message map functions
75 | //{{AFX_MSG(CJpegCoverDlg)
76 | virtual BOOL OnInitDialog();
77 | virtual void OnOK();
78 | afx_msg void OnOpen();
79 | afx_msg void OnView();
80 | afx_msg void OnSetBkColor();
81 | afx_msg void OnSetTxtColor();
82 | afx_msg void OnRadio();
83 | afx_msg void OnChangeEdit();
84 | //}}AFX_MSG
85 | DECLARE_MESSAGE_MAP()
86 | };
87 |
88 | //{{AFX_INSERT_LOCATION}}
89 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
90 |
91 | #endif // !defined(AFX_JPEGLIBDLG_H__57419B05_14EA_4BCA_AE78_F50E9D656A5D__INCLUDED_)
92 |
--------------------------------------------------------------------------------
/docs/1.0.0_content.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 使用说明
16 |
17 |
18 |
19 |
20 | 本使用说明包含以下内容:
21 |
22 |
23 |
24 |
25 |
34 |
35 |
36 |
47 |
48 |
49 |
55 |
56 |
57 |
60 |
61 |
62 |
63 |
66 |
67 |
68 | GX Software 2020-2021
69 | V2.0
70 |
71 |
72 |
73 |
--------------------------------------------------------------------------------
/src/MainFrm.h:
--------------------------------------------------------------------------------
1 | // MainFrm.h : interface of the CMain class
2 | //
3 | /////////////////////////////////////////////////////////////////////////////
4 |
5 | #if !defined(AFX_MAINFRM_H__3631607F_09CE_49E2_8DBF_AD034D07DA63__INCLUDED_)
6 | #define AFX_MAINFRM_H__3631607F_09CE_49E2_8DBF_AD034D07DA63__INCLUDED_
7 |
8 | #if _MSC_VER > 1000
9 | #pragma once
10 | #endif // _MSC_VER > 1000
11 |
12 | #include "EditFrame.h"
13 |
14 | class CLView;
15 | class CQView;
16 |
17 | class CMain : public CFrameWnd
18 | {
19 |
20 | protected: // create from serialization only
21 | CMain();
22 | DECLARE_DYNCREATE(CMain)
23 |
24 | // Attributes
25 | protected:
26 | CSplitterWnd m_wndSplitter;
27 | public:
28 |
29 | // Operations
30 | public:
31 | void SetItemCount(int nCount);
32 |
33 | void SetShow(LPCTSTR strShow, UINT uTitle);
34 |
35 | // Overrides
36 | // ClassWizard generated virtual function overrides
37 | //{{AFX_VIRTUAL(CMain)
38 | public:
39 | virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
40 | virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
41 | virtual void ActivateFrame(int nCmdShow = -1);
42 | virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo);
43 | //}}AFX_VIRTUAL
44 |
45 | // Implementation
46 | public:
47 | virtual ~CMain();
48 | CQView* GetRightPane();
49 | #ifdef _DEBUG
50 | virtual void AssertValid() const;
51 | virtual void Dump(CDumpContext& dc) const;
52 | #endif
53 |
54 | protected: // control bar embedded members
55 | CStatusBar m_wndStatusBar;
56 | CToolBar m_wndToolBar;
57 |
58 | CEditFrame *m_pEditWnd;
59 |
60 | // Generated message map functions
61 | protected:
62 | //{{AFX_MSG(CMain)
63 | afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
64 | afx_msg void OnClose();
65 | afx_msg void OnUpdateCmdUI(CCmdUI* pCmdUI);
66 | afx_msg void OnColorNormal();
67 | afx_msg void OnColorGreen();
68 | afx_msg void OnColorDark();
69 | afx_msg void OnReset();
70 | //}}AFX_MSG
71 | DECLARE_MESSAGE_MAP()
72 |
73 | void LoadSettings();
74 | void SaveSettings();
75 |
76 | CLView* GetPaperView() { return (CLView*)m_wndSplitter.GetPane(0, 0); }
77 | CQView* GetItemView() { return (CQView*)m_wndSplitter.GetPane(0, 1); }
78 |
79 | private:
80 | BOOL m_bLoaded;
81 | };
82 |
83 | /////////////////////////////////////////////////////////////////////////////
84 |
85 | //{{AFX_INSERT_LOCATION}}
86 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
87 |
88 | #endif // !defined(AFX_MAINFRM_H__3631607F_09CE_49E2_8DBF_AD034D07DA63__INCLUDED_)
89 |
--------------------------------------------------------------------------------
/src/ChildJudgeDlg.cpp:
--------------------------------------------------------------------------------
1 | // ChildJudgeDlg.cpp : implementation file
2 | //
3 |
4 | #include "stdafx.h"
5 | #include "quickquiz.h"
6 | #include "EditDlg.h"
7 |
8 | #include "Judge.h"
9 |
10 | #ifdef _DEBUG
11 | #define new DEBUG_NEW
12 | #undef THIS_FILE
13 | static char THIS_FILE[] = __FILE__;
14 | #endif
15 |
16 | /////////////////////////////////////////////////////////////////////////////
17 | // CChildJudgeDlg dialog
18 |
19 |
20 | CChildJudgeDlg::CChildJudgeDlg(CWnd* pParent /*=NULL*/) :
21 | CTabPage(CChildJudgeDlg::IDD, pParent)
22 | {
23 | //{{AFX_DATA_INIT(CChildJudgeDlg)
24 | m_nAnswer = -1;
25 | //}}AFX_DATA_INIT
26 | }
27 |
28 |
29 | void CChildJudgeDlg::DoDataExchange(CDataExchange* pDX)
30 | {
31 | CDialog::DoDataExchange(pDX);
32 | //{{AFX_DATA_MAP(CChildJudgeDlg)
33 | DDX_Control(pDX, IDC_RADIO_TRUE, m_cRadioTrue);
34 | DDX_Control(pDX, IDC_RADIO_FALSE, m_cRadioFalse);
35 | DDX_Radio(pDX, IDC_RADIO_TRUE, m_nAnswer);
36 | //}}AFX_DATA_MAP
37 | }
38 |
39 |
40 | BEGIN_MESSAGE_MAP(CChildJudgeDlg, CTabPage)
41 | //{{AFX_MSG_MAP(CChildJudgeDlg)
42 | ON_BN_CLICKED(IDC_RADIO_TRUE, OnRadio)
43 | ON_BN_CLICKED(IDC_RADIO_FALSE, OnRadio)
44 | //}}AFX_MSG_MAP
45 | END_MESSAGE_MAP()
46 |
47 | /////////////////////////////////////////////////////////////////////////////
48 | // CChildJudgeDlg message handlers
49 |
50 | BOOL CChildJudgeDlg::OnInitDialog()
51 | {
52 | CTabPage::OnInitDialog();
53 |
54 | return TRUE; // return TRUE unless you set the focus to a control
55 | // EXCEPTION: OCX Property Pages should return FALSE
56 | }
57 |
58 | void CChildJudgeDlg::SetShow(const CItem *pJudge)
59 | {
60 | if (!pJudge)
61 | {
62 | m_nAnswer = -1;
63 | }
64 | else
65 | {
66 | CJudge *ptr = (CJudge*)pJudge;
67 |
68 | switch(((CJudge*)pJudge)->GetAnswer())
69 | {
70 | case -1:
71 | m_nAnswer = -1;
72 | break;
73 |
74 | case FALSE:
75 | m_nAnswer = 1;
76 | break;
77 |
78 | case TRUE:
79 | m_nAnswer = 0;
80 | break;
81 | }
82 | }
83 |
84 | UpdateData(FALSE);
85 | m_bModify = FALSE;
86 | }
87 |
88 | void CChildJudgeDlg::GetInfo(CJudge *pJudge)
89 | {
90 | if (!pJudge)
91 | {
92 | return;
93 | }
94 |
95 | UpdateData();
96 |
97 | switch(m_nAnswer)
98 | {
99 | case -1:
100 | pJudge->SetAnswer(-1);
101 | break;
102 |
103 | case 0:
104 | pJudge->SetAnswer(TRUE);
105 | break;
106 |
107 | case 1:
108 | pJudge->SetAnswer(FALSE);
109 | break;
110 | }
111 | }
112 |
113 | void CChildJudgeDlg::OnRadio()
114 | {
115 | m_bModify = TRUE;
116 | }
117 |
--------------------------------------------------------------------------------
/src/QEdit.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_QEDIT_H__ED5DB8E6_FEBF_483F_8615_4C5718DA9F68__INCLUDED_)
2 | #define AFX_QEDIT_H__ED5DB8E6_FEBF_483F_8615_4C5718DA9F68__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // QEdit.h : header file
8 | //
9 |
10 | #define WM_QEDITNOTIFY (WM_USER + 4)
11 | #define QEN_ESCAPE 0
12 | #define QEN_NEXT 1
13 | #define QEN_PREV 2
14 |
15 | /////////////////////////////////////////////////////////////////////////////
16 | // CQEdit window
17 |
18 | class CQEdit : public CEdit
19 | {
20 | // Construction
21 | public:
22 | CQEdit();
23 |
24 | // Attributes
25 | public:
26 |
27 | // Operations
28 | public:
29 | void SetTextColor(COLORREF clrTxt);
30 | COLORREF GetTextColor() { return m_clrTxt; }
31 |
32 | long GetText(int nStart, int nEnd, LPTSTR lpBuf);
33 | long GetSelText(LPTSTR lpBuf);
34 |
35 | void EnableCopy(BOOL bEnable) { m_bEnableCopy = bEnable; }
36 |
37 | void CheckSelChange(BOOL bCheck) { m_bCheckSelChange = bCheck; }
38 |
39 | // Overrides
40 | // ClassWizard generated virtual function overrides
41 | //{{AFX_VIRTUAL(CQEdit)
42 | protected:
43 | virtual void PreSubclassWindow();
44 | //}}AFX_VIRTUAL
45 |
46 | // Implementation
47 | public:
48 | virtual ~CQEdit();
49 |
50 | // Generated message map functions
51 | protected:
52 | //{{AFX_MSG(CQEdit)
53 | afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
54 | afx_msg void OnNcPaint();
55 | afx_msg void OnSetFocus(CWnd* pOldWnd);
56 | afx_msg void OnKillFocus(CWnd* pNewWnd);
57 | afx_msg void OnDropFiles(HDROP hDropInfo);
58 | afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
59 | afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
60 | afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
61 | afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
62 | //}}AFX_MSG
63 | afx_msg LRESULT OnMouseHover(WPARAM wParam, LPARAM lParam);
64 | afx_msg LRESULT OnMouseLeave(WPARAM wParam, LPARAM lParam);
65 | afx_msg LRESULT OnCopy(WPARAM wParam, LPARAM lParam);
66 | void DrawBorder();
67 |
68 | COLORREF GetClientEdgeClr();
69 | LRESULT NotifySelChange();
70 |
71 | protected:
72 | COLORREF m_clrTxt;
73 |
74 | HBRUSH m_hbrReadOnly;
75 | BOOL m_bFocus;
76 |
77 | BOOL m_bEnableCopy;
78 |
79 | BOOL m_bCheckSelChange;
80 | int m_nStart;
81 | int m_nEnd;
82 |
83 | DECLARE_MESSAGE_MAP()
84 | };
85 |
86 | /////////////////////////////////////////////////////////////////////////////
87 |
88 | //{{AFX_INSERT_LOCATION}}
89 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
90 |
91 | #endif // !defined(AFX_QEDIT_H__ED5DB8E6_FEBF_483F_8615_4C5718DA9F68__INCLUDED_)
92 |
--------------------------------------------------------------------------------
/docs/1.3.3_competitive.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 抢答练习
16 |
17 |
18 |
19 |
20 | 练习抢答,适用于知识竞赛等活动抢答环节的训练,界面如下。
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | 上图所示为每道题目的初始状态。
29 |
30 |
31 | 鼠标点击“抢答区”,或按下键盘上的数字键、字母键或空格键,开始抢答,显示区开始按照预设的速度逐字显示题目内容;
32 | 当显示的内容已经足以确认题目内容及答案了,鼠标点击“抢答区”,或按下键盘上的数字键、字母键或空格键,抢答题目;抢答练习支持多人抢答 ,当多人抢答时,可安排每个练习者按不同的数字键或字母键 ,最终显示结果时将显示按下哪个按键的抢答者抢答成功了; 抢答完成后,将显示抢答成功者及抢答用时。
33 |
34 |
35 |
36 | 鼠标点击“抢答区”,或按下键盘上的数字键、字母键或空格键,显示完整题目、答案及题目类型。
37 |
38 |
39 |
40 | 鼠标点击“抢答区”,或按下键盘上的数字键、字母键或空格键,开始下一题。
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | 勾选后,开始抢答前即显示当前题目的类型;若不勾选,则直到最后显示正确答案时才显示。
51 |
52 |
53 |
54 |
55 | 抢答练习的进程将被记录,执行“练新题”可直接跳至未练习过的题目。
56 |
57 |
58 |
59 |
60 | 设置抢答练习的题目类型及其他选项,与
学习模式 完全相同。
61 |
62 |
63 |
64 |
65 | 设置抢答时显示区每个字间的显示时间间隔,可设置0.1~2秒,默认0.2秒。
66 |
67 |
68 |
69 | 在抢答练习中,题目图片将不能显示。
70 |
71 |
72 |
75 |
76 |
77 | GX Software 2020-2021
78 | V2.0
79 |
80 |
81 |
82 |
--------------------------------------------------------------------------------
/src/BatchSetDlg.cpp:
--------------------------------------------------------------------------------
1 | // BatchSetDlg.cpp : implementation file
2 | //
3 |
4 | #include "stdafx.h"
5 | #include "BatchSetDlg.h"
6 |
7 | #ifdef _DEBUG
8 | #define new DEBUG_NEW
9 | #undef THIS_FILE
10 | static char THIS_FILE[] = __FILE__;
11 | #endif
12 |
13 | /////////////////////////////////////////////////////////////////////////////
14 | // CBatchSetDlg dialog
15 |
16 |
17 | CBatchSetDlg::CBatchSetDlg(BOOL bEditFlag, CWnd* pParent /*=NULL*/) :
18 | CClrDialog(CBatchSetDlg::IDD, pParent),
19 | m_bEditFlag(bEditFlag)
20 | {
21 | //{{AFX_DATA_INIT(CBatchSetDlg)
22 | m_nIndex = -1;
23 | m_nSimilar = 90;
24 | //}}AFX_DATA_INIT
25 | }
26 |
27 |
28 | void CBatchSetDlg::DoDataExchange(CDataExchange* pDX)
29 | {
30 | CClrDialog::DoDataExchange(pDX);
31 | //{{AFX_DATA_MAP(CBatchSetDlg)
32 | DDX_Control(pDX, IDOK, m_cBtnOK);
33 | DDX_Control(pDX, IDC_RADIO_MTOS, m_cRadioMToS);
34 | DDX_Control(pDX, IDC_RADIO_STOM, m_cRadioSToM);
35 | DDX_Control(pDX, IDC_RADIO_SELDUPLICATE, m_cRadioSelDuplicate);
36 | DDX_Radio(pDX, IDC_RADIO_STOM, m_nIndex);
37 | DDX_Text(pDX, IDC_EDIT_SIMILAR, m_nSimilar);
38 | DDX_Control(pDX, IDC_EDIT_SIMILAR, m_cEditSimilar);
39 | DDX_Control(pDX, IDC_RADIO_CTOJ, m_cRadioCToJ);
40 | //}}AFX_DATA_MAP
41 | }
42 |
43 |
44 | BEGIN_MESSAGE_MAP(CBatchSetDlg, CClrDialog)
45 | //{{AFX_MSG_MAP(CBatchSetDlg)
46 | //}}AFX_MSG_MAP
47 | END_MESSAGE_MAP()
48 |
49 | /////////////////////////////////////////////////////////////////////////////
50 | // CBatchSetDlg message handlers
51 |
52 | BOOL CBatchSetDlg::OnInitDialog()
53 | {
54 | CClrDialog::OnInitDialog();
55 |
56 | m_cRadioSToM.EnableWindow(m_bEditFlag);
57 | m_cRadioMToS.EnableWindow(m_bEditFlag);
58 | m_cRadioCToJ.EnableWindow(m_bEditFlag);
59 |
60 | m_cEditSimilar.SetLimitText(3);
61 | SetDlgItemInt(IDC_EDIT_SIMILAR, 99, FALSE);
62 |
63 | return TRUE; // return TRUE unless you set the focus to a control
64 | // EXCEPTION: OCX Property Pages should return FALSE
65 | }
66 |
67 | BOOL CBatchSetDlg::OnCommand(WPARAM wParam, LPARAM lParam)
68 | {
69 | WORD wCode = HIWORD(wParam);
70 | WORD wID = LOWORD(wParam);
71 |
72 | if (EN_KILLFOCUS == wCode)
73 | {
74 | return CheckInput(wID);
75 | }
76 |
77 | return CClrDialog::OnCommand(wParam, lParam);
78 | }
79 |
80 | BOOL CBatchSetDlg::CheckInput(UINT nID /* = 0 */)
81 | {
82 | if (nID)
83 | {
84 | int nNum = GetDlgItemInt(nID);
85 |
86 | switch(nID)
87 | {
88 | case IDC_EDIT_SIMILAR:
89 | nNum = max(80, min(nNum, 100));
90 | break;
91 |
92 | default:
93 | return !0;
94 | }
95 |
96 | SetDlgItemInt(nID, nNum);
97 | }
98 |
99 | return 0;
100 | }
101 |
--------------------------------------------------------------------------------
/src/ChildTextDlg.cpp:
--------------------------------------------------------------------------------
1 | // ChildTextDlg.cpp : implementation file
2 | //
3 |
4 | #include "stdafx.h"
5 | #include "quickquiz.h"
6 | #include "EditDlg.h"
7 |
8 | #include "Text.h"
9 |
10 | #ifdef _DEBUG
11 | #define new DEBUG_NEW
12 | #undef THIS_FILE
13 | static char THIS_FILE[] = __FILE__;
14 | #endif
15 |
16 | /////////////////////////////////////////////////////////////////////////////
17 | // CChildTextDlg dialog
18 |
19 |
20 | CChildTextDlg::CChildTextDlg(CWnd* pParent /*=NULL*/) :
21 | CTabPage(CChildTextDlg::IDD, pParent)
22 | {
23 | //{{AFX_DATA_INIT(CChildTextDlg)
24 | // NOTE: the ClassWizard will add member initialization here
25 | //}}AFX_DATA_INIT
26 | }
27 |
28 |
29 | void CChildTextDlg::DoDataExchange(CDataExchange* pDX)
30 | {
31 | CDialog::DoDataExchange(pDX);
32 | //{{AFX_DATA_MAP(CChildTextDlg)
33 | DDX_Control(pDX, IDC_BUTTON_ANSWER, m_cBtnAsw);
34 | DDX_Control(pDX, IDC_EDIT_ANSWER, m_cEditAnswer);
35 | DDX_Control(pDX, IDC_STATIC_GROUP1, m_cGroup1);
36 | //}}AFX_DATA_MAP
37 | }
38 |
39 |
40 | BEGIN_MESSAGE_MAP(CChildTextDlg, CTabPage)
41 | //{{AFX_MSG_MAP(CChildTextDlg)
42 | ON_EN_CHANGE(IDC_EDIT_ANSWER, OnChange)
43 | ON_BN_CLICKED(IDC_BUTTON_ANSWER, OnButtonAnswer)
44 | //}}AFX_MSG_MAP
45 | END_MESSAGE_MAP()
46 |
47 | /////////////////////////////////////////////////////////////////////////////
48 | // CChildTextDlg message handlers
49 |
50 | void CChildTextDlg::SetShow(const CItem *pItem)
51 | {
52 | if (!pItem)
53 | {
54 | SetDlgItemText(IDC_EDIT_ANSWER, _T(""));
55 | }
56 | else
57 | {
58 | SetDlgItemText(IDC_EDIT_ANSWER, ((CText*)pItem)->GetAnswer());
59 | }
60 |
61 | m_bModify = FALSE;
62 | }
63 |
64 | int CChildTextDlg::CheckSaveable()
65 | {
66 | if (!GetDlgItem(IDC_EDIT_ANSWER)->GetWindowTextLength())
67 | {
68 | CTMessageBox Box;
69 | switch(Box.SuperMessageBox(m_hWnd, IDS_EDITDLGT_NOASW, IDS_MSGCAPTION_ASK,
70 | MB_YESNO | MB_ICONQUESTION, 0, 0))
71 | {
72 | case IDYES:
73 | break;
74 |
75 | case IDNO:
76 | return SAVEABLE_DENY;
77 |
78 | default:
79 | ASSERT(FALSE);
80 | }
81 | }
82 |
83 | return SAVEABLE_OK;
84 | }
85 |
86 | void CChildTextDlg::GetInfo(CText *pText)
87 | {
88 | if (!pText || !m_bModify)
89 | {
90 | return;
91 | }
92 |
93 | CString string;
94 | GetDlgItemText(IDC_EDIT_ANSWER, string);
95 | pText->SetAnswer(string, -1);
96 | }
97 |
98 | void CChildTextDlg::OnChange()
99 | {
100 | m_bModify = TRUE;
101 | }
102 |
103 | void CChildTextDlg::OnButtonAnswer()
104 | {
105 | LPTSTR ptr = ((CEditDlg*)(GetParent()->GetParent()))->GetEditFrmSel();
106 | if (ptr)
107 | {
108 | SetDlgItemText(IDC_EDIT_ANSWER, ptr);
109 | free(ptr);
110 | }
111 |
112 | m_bModify = TRUE;
113 | }
114 |
--------------------------------------------------------------------------------
/docs/css/style.css:
--------------------------------------------------------------------------------
1 |
2 | /* 默认全局 */
3 | body {
4 | font-family: Helvetica, Arial, Microsoft Yahei, sans-serif;
5 | background-image: url("../images/bg.png");
6 | }
7 |
8 | p {
9 | text-indent: 2em;
10 | line-height: 1.6em;
11 | }
12 |
13 | div.p {
14 | text-indent: 2em;
15 | line-height: 1.6em;
16 | padding: 8px 0;
17 | }
18 | div.np {
19 | line-height: 1.6em;
20 | margin-top: 12px;
21 | }
22 | div.h4 {
23 | font-weight: bold;
24 | margin: 12px 0 5px 0;
25 | }
26 |
27 | ul, ol {
28 | margin: 0;
29 | padding: 0 20px;
30 |
31 | line-height: 1.6em;
32 | }
33 | li {
34 | margin-bottom: 6px;
35 | }
36 |
37 | .codefont {
38 | font-family: Courier;
39 | }
40 |
41 | img.info {
42 | height: 50px;
43 | }
44 |
45 | pre {
46 | font-family: Courier;
47 | font-size: 1em;
48 | margin-left: 2em;
49 | }
50 |
51 | /* 默认表格 */
52 | table {
53 | margin-left: 2em;
54 |
55 | border-spacing:0px;
56 | border-style: solid;
57 | border-color: #777777;
58 | border-width: 1px;
59 | border-collapse:collapse;
60 |
61 | line-height: 1.6em;
62 | }
63 |
64 | /* 表头默认左对齐 */
65 | th {
66 | border-style: solid;
67 | border-color: #777777;
68 | border-width: 1px;
69 |
70 | padding: 4px 8px;
71 | background: #cccccc;
72 | text-align: left;
73 | vertical-align: top;
74 | white-space: nowrap;
75 | }
76 |
77 | td {
78 | border-style: solid;
79 | border-color: #777777;
80 | border-width: 1px;
81 |
82 | padding: 4px 8px;
83 | background: #ffffff;
84 | vertical-align: top;
85 | }
86 |
87 | /* 警告框 */
88 | table.info {
89 | border-style: none;
90 | width: auto;
91 |
92 | margin: 5px 0 5px 40px;
93 | line-height: 1.6em;
94 | }
95 | table.info th {
96 | border-style: none;
97 |
98 | background-color: transparent;
99 | padding: 3px 15px 3px 0;
100 |
101 | vertical-align: top;
102 | }
103 | table.info td {
104 | border-style: none;
105 |
106 | font-weight: bold;
107 | background-color: transparent;
108 | padding: 3px 0px;
109 |
110 | vertical-align: top;
111 | }
112 |
113 | /* 底部导航 */
114 | table.guide {
115 | margin-left: 0;
116 |
117 | border-style: none;
118 | width: 100%;
119 |
120 | margin-top: 12px;
121 | }
122 | table.guide td {
123 | border-style: none;
124 |
125 | background-color: transparent;
126 | padding: 3px 15px;
127 | }
128 |
129 | /* 目录 */
130 | table.content {
131 | margin-left: 2em;
132 |
133 | border-style: none;
134 | width: 75%;
135 |
136 | margin-top: 16px;
137 | }
138 | table.content td {
139 | border-style: none;
140 |
141 | background-color: transparent;
142 | padding: 3px 15px;
143 | }
144 |
145 | /* 表格中交替显示灰色 */
146 | table.blank th {
147 | background: #FFFFFF;
148 | }
149 | tr.alt th, tr.alt td {
150 | background: #EAF2D3;
151 | }
152 |
--------------------------------------------------------------------------------
/src/AnsiCEx.cpp:
--------------------------------------------------------------------------------
1 | #include "StdAfx.h"
2 |
3 | wchar_t* __cdecl wcscpyn(wchar_t *strDest, const wchar_t *strSource, int iMaxLength)
4 | {
5 | if (!strDest || !strSource || !iMaxLength)
6 | {
7 | return NULL;
8 | }
9 |
10 | wchar_t *ret = wcsncpy(strDest, strSource, iMaxLength);
11 | strDest[iMaxLength - 1] = 0;
12 |
13 | return ret;
14 | }
15 |
16 | #ifdef _UNICODE
17 | wchar_t* __cdecl wcsrchr_e(const wchar_t *string, const wchar_t *end, int c)
18 | {
19 | register wchar_t *p = NULL;
20 |
21 | if (!string || !string[0])
22 | {
23 | return NULL;
24 | }
25 |
26 | if (end)
27 | {
28 | p = (wchar_t*)end;
29 | }
30 | else
31 | {
32 | p = (wchar_t*)string + wcslen(string) - 1;
33 | }
34 |
35 | while(p != string)
36 | {
37 | if (*p == c)
38 | {
39 | return p;
40 | }
41 | p--;
42 | }
43 |
44 | return NULL;
45 | }
46 |
47 | wchar_t* __cdecl wcsstri(const wchar_t *string, const wchar_t *search)
48 | {
49 | wchar_t *p = (wchar_t*)string;
50 | wchar_t *s1, *s2;
51 |
52 | if (!search || !*search)
53 | {
54 | return p;
55 | }
56 |
57 | while(*p)
58 | {
59 | s1 = p;
60 | s2 = (wchar_t*)search;
61 |
62 | while (*s1 && *s2 && (towlower(*s1) == towlower(*s2)))
63 | {
64 | s1++, s2++;
65 | }
66 |
67 | if (!*s2)
68 | {
69 | return p;
70 | }
71 |
72 | p++;
73 | }
74 |
75 | return NULL;
76 | }
77 |
78 | #else // #ifndef _UNICODE
79 | char* __cdecl strrchr_e(const char *string, const char *end, int c)
80 | {
81 | register char *p = NULL;
82 |
83 | if (!string || !string[0])
84 | {
85 | return NULL;
86 | }
87 |
88 | if (end)
89 | {
90 | p = (char*)end;
91 | }
92 | else
93 | {
94 | p = (char*)string + strlen(string) - 1;
95 | }
96 |
97 | while(p != string)
98 | {
99 | if (*p == c)
100 | {
101 | return p;
102 | }
103 | p--;
104 | }
105 |
106 | return NULL;
107 | }
108 |
109 | char* __cdecl strstri(const char *string, const char *search)
110 | {
111 | char *p = (char*)string;
112 | char *s1, *s2;
113 |
114 | if (!search || !*search)
115 | {
116 | return p;
117 | }
118 |
119 | while(*p)
120 | {
121 | s1 = p;
122 | s2 = (char*)search;
123 |
124 | while (*s1 && *s2 && (tolower(*s1) == tolower(*s2)))
125 | {
126 | s1++, s2++;
127 | }
128 |
129 | if (!*s2)
130 | {
131 | return p;
132 | }
133 |
134 | p++;
135 | }
136 |
137 | return NULL;
138 | }
139 |
140 | char* __cdecl strcpyn(char *strDest, const char *strSource, int iMaxLength)
141 | {
142 | if (!strDest || !strSource || !iMaxLength)
143 | {
144 | return NULL;
145 | }
146 |
147 | char *ret = _tcsncpy(strDest, strSource, iMaxLength);
148 | strDest[iMaxLength - 1] = 0;
149 |
150 | return ret;
151 | }
152 |
153 | #endif // #ifdef _UNICODE
--------------------------------------------------------------------------------
/src/QGroupBox.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_XPGROUPBOX_H__F70D755B_9C4B_4F4A_A1FB_AFF720C29717__INCLUDED_)
2 | #define AFX_XPGROUPBOX_H__F70D755B_9C4B_4F4A_A1FB_AFF720C29717__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // XPGroupBox.h : header file
8 | //
9 |
10 | /////////////////////////////////////////////////////////////////////////////
11 | // CQGroupBox window
12 |
13 | class CQGroupBox : public CButton
14 | {
15 | DECLARE_DYNAMIC(CQGroupBox);
16 |
17 | // Construction
18 | public:
19 | CQGroupBox();
20 |
21 | enum QGroupBoxStyle
22 | { XPGB_FRAME,
23 | XPGB_WINDOW};
24 |
25 | // Attributes
26 | public:
27 |
28 | // Operations
29 | public:
30 | virtual CQGroupBox& SetBorderColor(COLORREF clrBorder);
31 | virtual CQGroupBox& SetCatptionTextColor(COLORREF clrText);
32 | virtual CQGroupBox& SetBackgroundColor(COLORREF clrBKClient);
33 | virtual CQGroupBox& SetBackgroundColor(COLORREF clrBKTilte, COLORREF clrBKClient);
34 | virtual CQGroupBox& SetQGroupStyle(QGroupBoxStyle eStyle);
35 |
36 | virtual CQGroupBox& SetText(LPCTSTR lpszTitle);
37 | virtual CQGroupBox& SetFontBold(BOOL bBold);
38 | virtual CQGroupBox& SetFontName(const CString& strFont, BYTE byCharSet = ANSI_CHARSET);
39 | virtual CQGroupBox& SetFontUnderline(BOOL bSet);
40 | virtual CQGroupBox& SetFontItalic(BOOL bSet);
41 | virtual CQGroupBox& SetFontSize(int nSize);
42 | virtual CQGroupBox& SetFont(LOGFONT lf);
43 |
44 | virtual CQGroupBox& SetAlignment(DWORD dwType);
45 |
46 |
47 | // Overrides
48 | // ClassWizard generated virtual function overrides
49 | //{{AFX_VIRTUAL(CQGroupBox)
50 | public:
51 | virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
52 | protected:
53 | virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
54 | virtual void PreSubclassWindow();
55 | //}}AFX_VIRTUAL
56 |
57 | // Implementation
58 | public:
59 | virtual ~CQGroupBox();
60 |
61 | // Generated message map functions
62 | protected:
63 | void UpdateSurface();
64 | void ReconstructFont();
65 | //{{AFX_MSG(CQGroupBox)
66 | afx_msg void OnPaint();
67 | //}}AFX_MSG
68 |
69 | DECLARE_MESSAGE_MAP()
70 |
71 | private:
72 | CString m_strTitle;
73 |
74 | COLORREF m_clrBorder;
75 | COLORREF m_clrTitleBackground;
76 | COLORREF m_clrClientBackground;
77 | COLORREF m_clrTitleText;
78 |
79 | QGroupBoxStyle m_nType;
80 | DWORD m_dwAlignment;
81 |
82 | LOGFONT m_lf;
83 | CFont m_font;
84 |
85 | };
86 |
87 | /////////////////////////////////////////////////////////////////////////////
88 |
89 | //{{AFX_INSERT_LOCATION}}
90 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
91 |
92 | #endif // !defined(AFX_XPGROUPBOX_H__F70D755B_9C4B_4F4A_A1FB_AFF720C29717__INCLUDED_)
93 |
--------------------------------------------------------------------------------
/src/TestSetDlg.cpp:
--------------------------------------------------------------------------------
1 | // TestSetDlg.cpp : implementation file
2 | //
3 |
4 | #include "stdafx.h"
5 | #include "quickquiz.h"
6 | #include "TestSetDlg.h"
7 |
8 | #ifdef _DEBUG
9 | #define new DEBUG_NEW
10 | #undef THIS_FILE
11 | static char THIS_FILE[] = __FILE__;
12 | #endif
13 |
14 | static LPCTSTR lpszTestDlg = _T("Test Dialog");
15 | static LPCTSTR lpszTestPara = _T("Test Parameter");
16 |
17 | /////////////////////////////////////////////////////////////////////////////
18 | // CTestSetDlg
19 |
20 | CTestSetDlg::CTestSetDlg(UINT nIDCaption, CList *pPaperList, CPaper *pCurSelPaper, CWnd* pParent /*=NULL*/) :
21 | CClrDialog(CTestSetDlg::IDD, pParent),
22 | m_CommDlg(pPaperList, pCurSelPaper),
23 | m_nIDCaption(nIDCaption)
24 | {
25 | }
26 |
27 | CTestSetDlg::~CTestSetDlg()
28 | {
29 | }
30 |
31 | void CTestSetDlg::DoDataExchange(CDataExchange* pDX)
32 | {
33 | CDialog::DoDataExchange(pDX);
34 | //{{AFX_DATA_MAP(CTestSetDlg)
35 | DDX_Control(pDX, IDOK, m_cBtnOK);
36 | DDX_Control(pDX, IDCANCEL, m_cBtnCancel);
37 | DDX_Control(pDX, IDC_TAB, m_cTab);
38 | //}}AFX_DATA_MAP
39 | }
40 |
41 |
42 | BEGIN_MESSAGE_MAP(CTestSetDlg, CClrDialog)
43 | //{{AFX_MSG_MAP(CTestSetDlg)
44 | //}}AFX_MSG_MAP
45 | ON_COMMAND(IDOK, OnOK)
46 | END_MESSAGE_MAP()
47 |
48 | /////////////////////////////////////////////////////////////////////////////
49 | // CTestSetDlg message handlers
50 |
51 | void CTestSetDlg::OnOK()
52 | {
53 | if (m_CommDlg.CheckCanExit())
54 | {
55 | m_ChsDlg.UpdateData();
56 |
57 | CDialog::OnOK();
58 | }
59 | }
60 |
61 | int CTestSetDlg::DoModal()
62 | {
63 | m_CommDlg.SetChsDlg(&m_ChsDlg);
64 | LoadSetPara();
65 |
66 | int nRet = CDialog::DoModal();
67 | if (IDOK == nRet)
68 | {
69 | m_CommDlg.FillTestPara(&m_TestPara);
70 | m_ChsDlg.FillTestPara(&m_TestPara);
71 | m_BlkTxtDlg.FillTestPara(&m_TestPara);
72 |
73 | SaveSetPara();
74 | }
75 |
76 | return nRet;
77 | }
78 |
79 | BOOL CTestSetDlg::OnInitDialog()
80 | {
81 | CClrDialog::OnInitDialog();
82 |
83 | CString string;
84 | string.LoadString(IDS_TEST_TESTSET);
85 | SetWindowText(string);
86 |
87 | string.LoadString(IDS_TESTSET_COMMSET);
88 | m_cTab.AddPage(IDD_TESTSET_COMMDLG, &m_CommDlg, string);
89 |
90 | string.LoadString(IDS_TESTSET_CHSSET);
91 | m_cTab.AddPage(IDD_TESTSET_CHSDLG, &m_ChsDlg, string);
92 |
93 | string.LoadString(IDS_TESTSET_BLKTXTSET);
94 | m_cTab.AddPage(IDD_TESTSET_BLKTXTDLG, &m_BlkTxtDlg, string);
95 |
96 | return FALSE;
97 | }
98 |
99 | void CTestSetDlg::LoadSetPara()
100 | {
101 | if (m_TestPara.LoadTestPara())
102 | {
103 | m_CommDlg.InitTestPara(&m_TestPara);
104 | m_ChsDlg.InitTestPara(&m_TestPara);
105 | m_BlkTxtDlg.InitTestPara(&m_TestPara);
106 | }
107 | }
108 |
109 | void CTestSetDlg::SaveSetPara()
110 | {
111 | m_TestPara.SaveTestPara();
112 | }
--------------------------------------------------------------------------------
/docs/1.2.5_batchset.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 批量操作
16 |
17 |
18 |
19 |
20 | 批量操作界面如下:
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | 检测选中题目中的单选题,并将其转换为单个选项的多选题;若选中的题目中包含非单选题,跳过这些题目。
29 |
30 |
31 |
32 |
33 | 检测选中题目中单个答案的多选题,并将其转换为单选题;若选中的题目中包含非多选题或答案超过一个的多选题,跳过这些题目。
34 |
35 |
36 |
37 |
38 | 首先自动按照类型顺序对主界面右侧窗格中的所有题目进行排序,然后进行检测,若有多个题目相似度大于设定值(可设定为80%~100%),则选中相似题目中除排在最前的题目之外的所有相似题目。
39 |
40 |
41 | 例如 ,选中下图题库中相似度超过80%的重复题目,结果如下,即认为4道单选题相似度较高,为重复题目,并选中了后3道。
42 |
43 |
44 |
45 |
46 |
47 | 又例 :选中上图题库中相似度超过99%的重复题目,结果未选中任何一道题目,即认为均不相似。
48 |
49 |
50 | 本功能可用于剔除题库中的重复题目。
51 |
52 |
53 | 相似度仅供参考,若利用此方法剔除重复题目,剔除前一定要重复确认,以免误删。
54 |
55 |
56 | 重复题目的定义如下:
57 |
58 |
59 | 单项选择题/多项选择题:题干、各选项内容相似度不小于设定值,选项数量和答案完全相同;
60 | 判断题:题干相似度不小于设定值,答案完全相同;
61 | 填空题:题干、各答案的相似度不小于设定值,空白数量完全相同;
62 | 简答题:题干、答案的相似度不小于设定值。
63 |
64 |
65 | 对于选择题而言,若进行比较的两道题目答案不同,则不认为是重复题目;若选项内容相似,但选项顺序不同,也不认为是重复题目; 题目解析不参与相似度检查。
66 |
67 |
68 |
69 |
70 | 检测选中题目中的单选题和单个答案的多选题,并将其转换为判断题。有如下规则 :
71 |
72 |
73 | 选项中必须包含明确说明对错的内容(包括但不限于“正确”“对”“TRUE”“√”“错误”“WRONG”“×”等文字),才会被转换,否则跳过;
74 | 若选中的题目中包含非选择题或答案超过一个的多选题,跳过这些题目。
75 |
76 |
77 |
80 |
81 |
82 | GX Software 2020-2021
83 | V2.0
84 |
85 |
86 |
87 |
--------------------------------------------------------------------------------
/src/PasswordDlg.h:
--------------------------------------------------------------------------------
1 | #if !defined(AFX_PASSWORDDLG_H__C8E8754A_A523_451E_B21A_6BE18A6E05B3__INCLUDED_)
2 | #define AFX_PASSWORDDLG_H__C8E8754A_A523_451E_B21A_6BE18A6E05B3__INCLUDED_
3 |
4 | #if _MSC_VER > 1000
5 | #pragma once
6 | #endif // _MSC_VER > 1000
7 | // PasswordDlg.h : header file
8 | //
9 |
10 | /////////////////////////////////////////////////////////////////////////////
11 | // CPasswordDlg dialog
12 |
13 | class CPasswordDlg : public CClrDialog
14 | {
15 | // Construction
16 | public:
17 | CPasswordDlg(CWnd* pParent = NULL); // standard constructor
18 |
19 | void SetPara(BOOL bIsLocked, LPBYTE pOldPswd);
20 | LPBYTE GetPassword() { return m_uNewPswd; }
21 | LPCSTR GetPasswordText() { return m_sPswd; }
22 |
23 | // Dialog Data
24 | //{{AFX_DATA(CPasswordDlg)
25 | enum { IDD = IDD_PASSWORD_DLG };
26 | CQEdit m_cEditCheckPswd;
27 | CQEdit m_cEditNewPswd;
28 | CQEdit m_cEditOldPswd;
29 | CQButton m_cBtnOK;
30 | //}}AFX_DATA
31 |
32 |
33 | // Overrides
34 | // ClassWizard generated virtual function overrides
35 | //{{AFX_VIRTUAL(CPasswordDlg)
36 | protected:
37 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
38 | //}}AFX_VIRTUAL
39 |
40 | BOOL CheckInput();
41 |
42 | // Implementation
43 | protected:
44 | BOOL m_bIsLocked;
45 |
46 | BYTE m_uOldPswd[16];
47 | BYTE m_uNewPswd[16];
48 | char m_sPswd[MAX_PASSWORD_LEN + 1];
49 |
50 | // Generated message map functions
51 | //{{AFX_MSG(CPasswordDlg)
52 | virtual void OnOK();
53 | virtual BOOL OnInitDialog();
54 | //}}AFX_MSG
55 | DECLARE_MESSAGE_MAP()
56 | };
57 |
58 | /////////////////////////////////////////////////////////////////////////////
59 | // CUnlockDlg dialog
60 |
61 | class CUnlockDlg : public CClrDialog
62 | {
63 | // Construction
64 | public:
65 | CUnlockDlg(LPBYTE pPswd, CWnd* pParent = NULL); // standard constructor
66 |
67 | LPCSTR GetPasswordText() { return m_sPswd; }
68 |
69 | // Dialog Data
70 | //{{AFX_DATA(CUnlockDlg)
71 | enum { IDD = IDD_UNLOCK_DLG };
72 | CQButton m_cBtnOK;
73 | CQEdit m_cEditPswd;
74 | //}}AFX_DATA
75 |
76 |
77 | // Overrides
78 | // ClassWizard generated virtual function overrides
79 | //{{AFX_VIRTUAL(CUnlockDlg)
80 | protected:
81 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
82 | //}}AFX_VIRTUAL
83 | BOOL CheckInput();
84 |
85 | // Implementation
86 | protected:
87 | BYTE m_uTrue[16];
88 | char m_sPswd[MAX_PASSWORD_LEN + 1];
89 |
90 | // Generated message map functions
91 | //{{AFX_MSG(CUnlockDlg)
92 | virtual void OnOK();
93 | virtual BOOL OnInitDialog();
94 | //}}AFX_MSG
95 | DECLARE_MESSAGE_MAP()
96 | };
97 |
98 | //{{AFX_INSERT_LOCATION}}
99 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
100 |
101 | #endif // !defined(AFX_PASSWORDDLG_H__C8E8754A_A523_451E_B21A_6BE18A6E05B3__INCLUDED_)
102 |
--------------------------------------------------------------------------------
/lib/zlib/compress.c:
--------------------------------------------------------------------------------
1 | /* compress.c -- compress a memory buffer
2 | * Copyright (C) 1995-2005, 2014, 2016 Jean-loup Gailly, Mark Adler
3 | * For conditions of distribution and use, see copyright notice in zlib.h
4 | */
5 |
6 | /* @(#) $Id$ */
7 |
8 | #define ZLIB_INTERNAL
9 | #include "zlib.h"
10 |
11 | /* ===========================================================================
12 | Compresses the source buffer into the destination buffer. The level
13 | parameter has the same meaning as in deflateInit. sourceLen is the byte
14 | length of the source buffer. Upon entry, destLen is the total size of the
15 | destination buffer, which must be at least 0.1% larger than sourceLen plus
16 | 12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
17 |
18 | compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
19 | memory, Z_BUF_ERROR if there was not enough room in the output buffer,
20 | Z_STREAM_ERROR if the level parameter is invalid.
21 | */
22 | int ZEXPORT compress2 (dest, destLen, source, sourceLen, level)
23 | Bytef *dest;
24 | uLongf *destLen;
25 | const Bytef *source;
26 | uLong sourceLen;
27 | int level;
28 | {
29 | z_stream stream;
30 | int err;
31 | const uInt max = (uInt)-1;
32 | uLong left;
33 |
34 | left = *destLen;
35 | *destLen = 0;
36 |
37 | stream.zalloc = (alloc_func)0;
38 | stream.zfree = (free_func)0;
39 | stream.opaque = (voidpf)0;
40 |
41 | err = deflateInit(&stream, level);
42 | if (err != Z_OK) return err;
43 |
44 | stream.next_out = dest;
45 | stream.avail_out = 0;
46 | stream.next_in = (z_const Bytef *)source;
47 | stream.avail_in = 0;
48 |
49 | do {
50 | if (stream.avail_out == 0) {
51 | stream.avail_out = left > (uLong)max ? max : (uInt)left;
52 | left -= stream.avail_out;
53 | }
54 | if (stream.avail_in == 0) {
55 | stream.avail_in = sourceLen > (uLong)max ? max : (uInt)sourceLen;
56 | sourceLen -= stream.avail_in;
57 | }
58 | err = deflate(&stream, sourceLen ? Z_NO_FLUSH : Z_FINISH);
59 | } while (err == Z_OK);
60 |
61 | *destLen = stream.total_out;
62 | deflateEnd(&stream);
63 | return err == Z_STREAM_END ? Z_OK : err;
64 | }
65 |
66 | /* ===========================================================================
67 | */
68 | int ZEXPORT compress (dest, destLen, source, sourceLen)
69 | Bytef *dest;
70 | uLongf *destLen;
71 | const Bytef *source;
72 | uLong sourceLen;
73 | {
74 | return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION);
75 | }
76 |
77 | /* ===========================================================================
78 | If the default memLevel or windowBits for deflateInit() is changed, then
79 | this function needs to be updated.
80 | */
81 | uLong ZEXPORT compressBound (sourceLen)
82 | uLong sourceLen;
83 | {
84 | return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) +
85 | (sourceLen >> 25) + 13;
86 | }
87 |
--------------------------------------------------------------------------------
/src/PaperPropertiesDlg.cpp:
--------------------------------------------------------------------------------
1 | // PaperPropertiesDlg.cpp : implementation file
2 | //
3 |
4 | #include "stdafx.h"
5 | #include "quickquiz.h"
6 | #include "PropertiesDlg.h"
7 |
8 | #ifdef _DEBUG
9 | #define new DEBUG_NEW
10 | #undef THIS_FILE
11 | static char THIS_FILE[] = __FILE__;
12 | #endif
13 |
14 | /////////////////////////////////////////////////////////////////////////////
15 | // CPaperPropertiesDlg dialog
16 |
17 |
18 | CPaperPropertiesDlg::CPaperPropertiesDlg(CWnd* pParent /*=NULL*/) :
19 | CClrDialog(CPaperPropertiesDlg::IDD, pParent),
20 | m_pPaper(NULL), m_bShowStoreList(FALSE)
21 | {
22 | //{{AFX_DATA_INIT(CPaperPropertiesDlg)
23 | // NOTE: the ClassWizard will add member initialization here
24 | //}}AFX_DATA_INIT
25 | }
26 |
27 |
28 | void CPaperPropertiesDlg::DoDataExchange(CDataExchange* pDX)
29 | {
30 | CDialog::DoDataExchange(pDX);
31 | //{{AFX_DATA_MAP(CPaperPropertiesDlg)
32 | DDX_Control(pDX, IDC_STATIC_INFO, m_cGroup);
33 | DDX_Control(pDX, IDOK, m_cBtnOK);
34 | //}}AFX_DATA_MAP
35 | }
36 |
37 |
38 | BEGIN_MESSAGE_MAP(CPaperPropertiesDlg, CClrDialog)
39 | //{{AFX_MSG_MAP(CPaperPropertiesDlg)
40 | //}}AFX_MSG_MAP
41 | END_MESSAGE_MAP()
42 |
43 | /////////////////////////////////////////////////////////////////////////////
44 | // CPaperPropertiesDlg message handlers
45 |
46 | BOOL CPaperPropertiesDlg::OnInitDialog()
47 | {
48 | CClrDialog::OnInitDialog();
49 |
50 | if (m_pPaper)
51 | {
52 | SetDlgItemText(IDC_EDIT_PAPERNAME, m_pPaper->GetDescription());
53 |
54 | CString string1, string2;
55 | LPCTSTR ptr = m_pPaper->GetFilePath();
56 | if (ptr)
57 | {
58 | SetDlgItemText(IDC_EDIT_PAPERPATH, ptr);
59 | }
60 | else
61 | {
62 | string1.LoadString(IDS_PAPER_NOPATH);
63 | SetDlgItemText(IDC_EDIT_PAPERPATH, string1);
64 | }
65 |
66 | string1.LoadString(IDS_ITEM_YES);
67 | string2.LoadString(IDS_ITEM_NO);
68 | SetDlgItemText(IDC_EDIT_CANEDIT, m_pPaper->CanEdit() ? string2 : string1);
69 |
70 | switch(m_pPaper->GetDefSaveStyle())
71 | {
72 | case PAPER_FILETYPE_BIN:
73 | case PAPER_FILETYPE_JPEGBIN:
74 | string1.LoadString(IDS_PAPER_BIN);
75 | break;
76 |
77 | case PAPER_FILETYPE_OLDBIN:
78 | string1.LoadString(IDS_PAPER_OLDBIN);
79 | break;
80 |
81 | case PAPER_FILETYPE_XML:
82 | case PAPER_FILETYPE_JPEGXML:
83 | string1.LoadString(IDS_PAPER_XML);
84 | break;
85 |
86 | default:
87 | string1.LoadString(IDS_PAPER_UNKNOWN);
88 | }
89 | SetDlgItemText(IDC_EDIT_FILETYPE, string1);
90 |
91 | CString str;
92 | if (m_bShowStoreList)
93 | {
94 | m_pPaper->GetSaveList()->GetListInfo(str);
95 |
96 | string1.LoadString(IDS_PROPS_STORE);
97 | SetDlgItemText(IDC_STATIC_INFO, string1);
98 | }
99 | else
100 | {
101 | m_pPaper->GetPaperInfo(str);
102 | }
103 | SetDlgItemText(IDC_EDIT_PAPERINFO, str);
104 | }
105 |
106 | return TRUE; // return TRUE unless you set the focus to a control
107 | // EXCEPTION: OCX Property Pages should return FALSE
108 | }
109 |
--------------------------------------------------------------------------------
/docs/2.0.2_binformat.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 标准题库文件格式
16 |
17 |
18 |
19 |
20 | 标准题库文件是被V2.0及更新版QuickQuiz支持的题库文件,扩展名为*.qux,为序列化的二进制文件,推荐使用此格式。
21 |
22 |
23 | 表13 标准题库文件格式
24 |
25 | 段序号 段描述 段长度 是否必需 说明
26 |
27 | 1 题库开始标记 9Bytes 必需
28 | UTF-8编码方式的“QuickQuiz”字串,区分大小写。
29 |
30 |
31 | 2 题库版本信息 4Bytes 必需
32 | 用于识别quiz题库文件 的格式信息,在qux题库文件中,此段可为不低于4的任意值,建议为4。
33 |
34 |
35 | 3 加密方式 1Byte 必需
36 |
37 | 0:不加密
38 | 1:CBC模式的128位密钥AES加密
39 |
40 |
41 |
42 | 4 密码的MD5校验值 4Bytes 可选,若段3不为0,则有此段
43 | 若题库被加密,计算密码的MD5校验值并保存于此;若题库未加密,无此段。
44 |
45 |
46 | 5 压缩方式 1Byte 必需
47 |
48 | 0:不压缩
49 | 1:zlib压缩
50 |
51 |
52 |
53 | 6 数据块大小 4Bytes 必需
54 |
55 | 后续存储数据长度。若题库未压缩,此段为原始数据长度;若题库被压缩,此段为压缩后的数据长度。
56 | 若题库采用方式1加密,需要做128位补全,此长度仍为压缩后数据长度(未补全的长度) ,补全后的实际长度需要在读取时计算得出。
57 |
58 |
59 |
60 | 7 解压后数据长度 4Bytes 可选,若段5不为0,则有此段
61 | 若题库采用方式1压缩,此段为压缩前数据长度;若题库不压缩,无此段。
62 |
63 |
64 | 8 数据块内容 视内容而定 必需
65 |
66 | 实际的题库内容。
67 | 题库内容的原始数据格式与
兼容题库文件 格式基本相同,实际为XML字串,无BOM头,
字串末尾必须包含1字节的“\0”,且此“\0”也计算在原始数据长度中。
68 |
69 |
70 |
71 |
72 |
73 | 题库文件的开头和末尾允许添加无关数据,且不应影响题库内容的解析。
74 |
75 |
76 |
77 | 在读取文件时,凡不符合表13格式的文件,均视为损坏文件,不予读取。
78 |
79 |
80 |
83 |
84 |
85 | GX Software 2020-2021
86 | V2.0
87 |
88 |
89 |
90 |
--------------------------------------------------------------------------------
/lib/tinyxml/tinystr.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | www.sourceforge.net/projects/tinyxml
3 |
4 | This software is provided 'as-is', without any express or implied
5 | warranty. In no event will the authors be held liable for any
6 | damages arising from the use of this software.
7 |
8 | Permission is granted to anyone to use this software for any
9 | purpose, including commercial applications, and to alter it and
10 | redistribute it freely, subject to the following restrictions:
11 |
12 | 1. The origin of this software must not be misrepresented; you must
13 | not claim that you wrote the original software. If you use this
14 | software in a product, an acknowledgment in the product documentation
15 | would be appreciated but is not required.
16 |
17 | 2. Altered source versions must be plainly marked as such, and
18 | must not be misrepresented as being the original software.
19 |
20 | 3. This notice may not be removed or altered from any source
21 | distribution.
22 | */
23 |
24 |
25 | #include "StdAfx.h"
26 | #include "tinystr.h"
27 |
28 | #ifndef TIXML_USE_STL
29 |
30 | // Error value for find primitive
31 | const TiXmlString::size_type TiXmlString::npos = static_cast< TiXmlString::size_type >(-1);
32 |
33 |
34 | // Null rep.
35 | TiXmlString::Rep TiXmlString::nullrep_ = { 0, 0, { '\0' } };
36 |
37 |
38 | void TiXmlString::reserve (size_type cap)
39 | {
40 | if (cap > capacity())
41 | {
42 | TiXmlString tmp;
43 | tmp.init(length(), cap);
44 | memcpy(tmp.start(), data(), length());
45 | swap(tmp);
46 | }
47 | }
48 |
49 |
50 | TiXmlString& TiXmlString::assign(const char* str, size_type len)
51 | {
52 | size_type cap = capacity();
53 | if (len > cap || cap > 3*(len + 8))
54 | {
55 | TiXmlString tmp;
56 | tmp.init(len);
57 | memcpy(tmp.start(), str, len);
58 | swap(tmp);
59 | }
60 | else
61 | {
62 | memmove(start(), str, len);
63 | set_size(len);
64 | }
65 | return *this;
66 | }
67 |
68 |
69 | TiXmlString& TiXmlString::append(const char* str, size_type len)
70 | {
71 | size_type newsize = length() + len;
72 | if (newsize > capacity())
73 | {
74 | reserve (newsize + capacity());
75 | }
76 | memmove(finish(), str, len);
77 | set_size(newsize);
78 | return *this;
79 | }
80 |
81 |
82 | TiXmlString operator + (const TiXmlString & a, const TiXmlString & b)
83 | {
84 | TiXmlString tmp;
85 | tmp.reserve(a.length() + b.length());
86 | tmp += a;
87 | tmp += b;
88 | return tmp;
89 | }
90 |
91 | TiXmlString operator + (const TiXmlString & a, const char* b)
92 | {
93 | TiXmlString tmp;
94 | TiXmlString::size_type b_len = static_cast( strlen(b) );
95 | tmp.reserve(a.length() + b_len);
96 | tmp += a;
97 | tmp.append(b, b_len);
98 | return tmp;
99 | }
100 |
101 | TiXmlString operator + (const char* a, const TiXmlString & b)
102 | {
103 | TiXmlString tmp;
104 | TiXmlString::size_type a_len = static_cast( strlen(a) );
105 | tmp.reserve(a_len + b.length());
106 | tmp.append(a, a_len);
107 | tmp += b;
108 | return tmp;
109 | }
110 |
111 |
112 | #endif // TIXML_USE_STL
113 |
--------------------------------------------------------------------------------
/docs/1.2.4_setcover.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 题库封面
16 |
17 |
18 |
19 |
20 | 设置题库封面后,可以将题库封装在jpeg图片中。
21 |
22 |
23 |
24 |
25 |
26 |
27 | 切勿使用任何图像编辑软件对封装好的题库进行编辑或压缩,否则极易丢失题库信息!!!
28 |
29 |
30 |
31 |
32 | 删除所有的封面信息,且题库不可保存为带封面的题库文件。
33 |
34 |
35 |
36 |
37 | 生成默认格式的封面,可设定的内容包括:
38 |
39 |
40 |
41 | 封面文字:用于标识题库名称,长度不限,但可能受限于区域大小而无法全部显示,一般最多可显示20个汉字。
42 |
43 |
44 | 封面大小:jpeg图的像素值。(建议长宽均大于50像素,否则可能字迹不清)。
45 |
46 |
47 | 背景颜色/字体颜色:支持24位真彩色。
48 |
49 |
50 |
51 | 生成的封面样例如下(下图实际为题库,下载后可在QuickQuiz中打开):
52 |
53 |
54 |
55 |
56 |
57 | 将带有自动封面题库保存为不带封面题库时,自动封面信息仍然保留。
58 |
59 |
60 |
61 |
62 | 导入您喜欢的jpeg图片作为题库封面。
63 |
64 |
65 | 将带有自定义封面题库保存为不带封面题库时,自定义封面图将丢失。
66 |
67 |
68 |
69 |
70 | 您也可以不借助本应用程序,手动将现有的无封面标准题库文件或无封面兼容题库文件加上封面。
71 |
72 |
73 | 将需要添加封面的题库文件(例如1.qux,必须不带封面 )与封面图片(例如1.jpg,必须为jpeg/jpg格式 )放在同一路径下(例如D:\a);
74 | 打开命令提示符,并进入D:\a路径;
75 | 执行命令“copy /b 1.qux+1.jpg 新建题库.jpg”(注意顺序不能错,否则将看不到封面 );
76 | 最终在D:\a路径下获取添加封面的题库“新建题库.jpg”,可在QuickQuiz中打开。
77 |
78 |
79 |
80 |
81 |
82 |
83 | 如非必要,仍建议使用QuickQuiz对题库封面进行管理。 即使在执行上述命令时将jpg封面和qux文件的顺序弄反,最终生成的题库仍然可以读取。
84 |
85 |
86 |
89 |
90 |
91 | GX Software 2020-2021
92 | V2.0
93 |
94 |
95 |
96 |
--------------------------------------------------------------------------------
/lib/zlib/inftrees.h:
--------------------------------------------------------------------------------
1 | /* inftrees.h -- header to use inftrees.c
2 | * Copyright (C) 1995-2005, 2010 Mark Adler
3 | * For conditions of distribution and use, see copyright notice in zlib.h
4 | */
5 |
6 | /* WARNING: this file should *not* be used by applications. It is
7 | part of the implementation of the compression library and is
8 | subject to change. Applications should only use zlib.h.
9 | */
10 |
11 | /* Structure for decoding tables. Each entry provides either the
12 | information needed to do the operation requested by the code that
13 | indexed that table entry, or it provides a pointer to another
14 | table that indexes more bits of the code. op indicates whether
15 | the entry is a pointer to another table, a literal, a length or
16 | distance, an end-of-block, or an invalid code. For a table
17 | pointer, the low four bits of op is the number of index bits of
18 | that table. For a length or distance, the low four bits of op
19 | is the number of extra bits to get after the code. bits is
20 | the number of bits in this code or part of the code to drop off
21 | of the bit buffer. val is the actual byte to output in the case
22 | of a literal, the base length or distance, or the offset from
23 | the current table to the next table. Each entry is four bytes. */
24 | typedef struct {
25 | unsigned char op; /* operation, extra bits, table bits */
26 | unsigned char bits; /* bits in this part of the code */
27 | unsigned short val; /* offset in table or code value */
28 | } code;
29 |
30 | /* op values as set by inflate_table():
31 | 00000000 - literal
32 | 0000tttt - table link, tttt != 0 is the number of table index bits
33 | 0001eeee - length or distance, eeee is the number of extra bits
34 | 01100000 - end of block
35 | 01000000 - invalid code
36 | */
37 |
38 | /* Maximum size of the dynamic table. The maximum number of code structures is
39 | 1444, which is the sum of 852 for literal/length codes and 592 for distance
40 | codes. These values were found by exhaustive searches using the program
41 | examples/enough.c found in the zlib distribtution. The arguments to that
42 | program are the number of symbols, the initial root table size, and the
43 | maximum bit length of a code. "enough 286 9 15" for literal/length codes
44 | returns returns 852, and "enough 30 6 15" for distance codes returns 592.
45 | The initial root table size (9 or 6) is found in the fifth argument of the
46 | inflate_table() calls in inflate.c and infback.c. If the root table size is
47 | changed, then these maximum sizes would be need to be recalculated and
48 | updated. */
49 | #define ENOUGH_LENS 852
50 | #define ENOUGH_DISTS 592
51 | #define ENOUGH (ENOUGH_LENS+ENOUGH_DISTS)
52 |
53 | /* Type of code to build for inflate_table() */
54 | typedef enum {
55 | CODES,
56 | LENS,
57 | DISTS
58 | } codetype;
59 |
60 | int ZLIB_INTERNAL inflate_table OF((codetype type, unsigned short FAR *lens,
61 | unsigned codes, code FAR * FAR *table,
62 | unsigned FAR *bits, unsigned short FAR *work));
63 |
--------------------------------------------------------------------------------
/docs/1.0.1_interface.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | QuickQuiz帮助文档
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 主界面
16 |
17 |
18 |
19 |
20 | 在Windows7系统下运行的效果如下图。
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | 本帮助文档中的所有演示界面均为Windows7 Ultimate x64系统风格,不同版本系统下界面可能有轻微差异,不再另行说明。
29 |
30 |
31 |
32 | 主界面分为左右两个窗格,左侧窗格显示当前打开的全部题库,右侧窗格显示选中题库的题目。
33 |
34 |
35 |
36 | 左侧窗格支持拖拽打开文件功能,当未打开任何题库时,双击左侧窗格可弹出打开题库对话框。QuickQuiz支持的题库文件类型详见
表1 。
37 |
38 |
39 |
40 | 当在左侧窗格中选中题库节点(闭合态图标为
,展开态图标为
)时,右侧窗格将显示选中题库内的全部题目;当将题库节点展开,并选中各类型节点(默认类型图标为
,自定义类型图标为
,题目组类型图标为
)时,右侧窗格显示选中题库内选中类型的全部题目;当选中收藏夹(未选中图标为
,选中图标为
)时,右侧窗格显示选中题库中被收藏的全部题目。
41 |
42 |
43 | 为便于说明,我们做如下约定:
44 |
45 |
46 | 当在左侧窗格中选中题库节点时,称右侧窗格为“题库窗格 ”;
47 | 当在左侧窗格中选中类型/题目组节点时,称右侧窗格为“类型窗格 ”。
48 |
49 |
50 |
51 | 在左侧窗格中,若题库在保存前有改动,则将会在题库名称右侧显示“*”符号;若题库为只读,则将会在题库名称右侧显示“[只读]”字样;若题库被加密,则题库节点图标的右下角将显示一锁形(
)图案。
52 |
53 |
54 |
55 | 在右侧窗格点击标头,可按照不同的规则对题目进行排序:
56 |
57 |
58 | 点击“序号”标头可按照题目的加入顺序进行排序;
59 | 点击“摘要”标头可按照题目内容进行排序;
60 | 点击“题目类型”标头可按照题目类型分类排序(同类型的题目则按题目内容进行排序)
61 |
62 |
63 | 标头文字右侧上三角表示升序排列,下三角表示降序排列,可通过多次点击同一标头切换排序规则。
64 |
65 |
66 |
67 | 排序功能仅改变显示顺序,方便对题目进行查看管理,不会对题库文件造成改动。
68 |
69 |
70 |
73 |
74 |
75 | GX Software 2020-2021
76 | V2.0
77 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/src/TestSetBlkTxtDlg.cpp:
--------------------------------------------------------------------------------
1 | // TestSetBlkTxtDlg.cpp : implementation file
2 | //
3 |
4 | #include "stdafx.h"
5 | #include "quickquiz.h"
6 | #include "TestSetDlg.h"
7 |
8 | #ifdef _DEBUG
9 | #define new DEBUG_NEW
10 | #undef THIS_FILE
11 | static char THIS_FILE[] = __FILE__;
12 | #endif
13 |
14 | /////////////////////////////////////////////////////////////////////////////
15 | // CTestSetBlkTxtDlg dialog
16 |
17 |
18 | CTestSetBlkTxtDlg::CTestSetBlkTxtDlg(CWnd* pParent /*=NULL*/) :
19 | CTabPage(CTestSetBlkTxtDlg::IDD, pParent)
20 | {
21 | //{{AFX_DATA_INIT(CTestSetBlkTxtDlg)
22 | m_bBlkAllRight = FALSE;
23 | m_bOnlyBlk = FALSE;
24 | m_bRandomBlk = FALSE;
25 | m_bTxtAllRight = FALSE;
26 | //}}AFX_DATA_INIT
27 | }
28 |
29 |
30 | void CTestSetBlkTxtDlg::DoDataExchange(CDataExchange* pDX)
31 | {
32 | CDialog::DoDataExchange(pDX);
33 | //{{AFX_DATA_MAP(CTestSetBlkTxtDlg)
34 | DDX_Control(pDX, IDC_CHECK_TXTALLRIGHT, m_cCheckTxtAllRight);
35 | DDX_Control(pDX, IDC_CHECK_RANDOMBLK, m_cCheckRandomBlk);
36 | DDX_Control(pDX, IDC_CHECK_ONLYBLK, m_cCheckOnlyBlk);
37 | DDX_Control(pDX, IDC_CHECK_BLKALLRIGHT, m_cCheckBlkAllRight);
38 | DDX_Check(pDX, IDC_CHECK_BLKALLRIGHT, m_bBlkAllRight);
39 | DDX_Check(pDX, IDC_CHECK_ONLYBLK, m_bOnlyBlk);
40 | DDX_Check(pDX, IDC_CHECK_RANDOMBLK, m_bRandomBlk);
41 | DDX_Check(pDX, IDC_CHECK_TXTALLRIGHT, m_bTxtAllRight);
42 | //}}AFX_DATA_MAP
43 | }
44 |
45 |
46 | BEGIN_MESSAGE_MAP(CTestSetBlkTxtDlg, CTabPage)
47 | //{{AFX_MSG_MAP(CTestSetBlkTxtDlg)
48 | ON_BN_CLICKED(IDC_CHECK_ONLYBLK, OnCheckOnlyBlk)
49 | ON_BN_CLICKED(IDC_CHECK_RANDOMBLK, OnCheckRandomBlk)
50 | //}}AFX_MSG_MAP
51 | END_MESSAGE_MAP()
52 |
53 | /////////////////////////////////////////////////////////////////////////////
54 | // CTestSetBlkTxtDlg message handlers
55 |
56 | void CTestSetBlkTxtDlg::OnCheckOnlyBlk()
57 | {
58 | ((CButton*)GetDlgItem(IDC_CHECK_RANDOMBLK))->SetCheck(FALSE);
59 | }
60 |
61 | void CTestSetBlkTxtDlg::OnCheckRandomBlk()
62 | {
63 | ((CButton*)GetDlgItem(IDC_CHECK_ONLYBLK))->SetCheck(FALSE);
64 | }
65 |
66 | BOOL CTestSetBlkTxtDlg::OnKillActive(BOOL bIsDestroy)
67 | {
68 | UpdateData();
69 |
70 | return CTabPage::OnKillActive(bIsDestroy);
71 | }
72 |
73 | void CTestSetBlkTxtDlg::InitTestPara(CTestPara *pCPara)
74 | {
75 | if (!pCPara)
76 | {
77 | return;
78 | }
79 | PTESTPARA pPara = pCPara->GetTestPara();
80 |
81 | m_bBlkAllRight = (pPara->dwBlkOptions & BLKOPTION_ALLRIGHT) ? TRUE : FALSE;
82 | m_bOnlyBlk = (pPara->dwBlkOptions & BLKOPTION_ONLYBLK) ? TRUE : FALSE;
83 | m_bRandomBlk = (pPara->dwBlkOptions & BLKOPTION_RANDOMBLK) ? TRUE : FALSE;
84 | m_bTxtAllRight = (pPara->dwBlkOptions & TXTOPTION_ALLRIGHT) ? TRUE : FALSE;
85 | }
86 |
87 | void CTestSetBlkTxtDlg::FillTestPara(CTestPara *pCPara)
88 | {
89 | if (!pCPara)
90 | {
91 | return;
92 | }
93 | PTESTPARA pPara = pCPara->GetTestPara();
94 |
95 | pPara->dwBlkOptions = pPara->dwTxtOptions = 0;
96 | pPara->dwBlkOptions |= (m_bBlkAllRight ? BLKOPTION_ALLRIGHT : 0);
97 | pPara->dwBlkOptions |= (m_bOnlyBlk ? BLKOPTION_ONLYBLK: 0);
98 | pPara->dwBlkOptions |= (m_bRandomBlk ? BLKOPTION_RANDOMBLK: 0);
99 | pPara->dwTxtOptions |= (m_bTxtAllRight ? TXTOPTION_ALLRIGHT: 0);
100 | }
101 |
--------------------------------------------------------------------------------