From 5c0d6acba1c446bc5ff9f6e423865782c1f7a682 Mon Sep 17 00:00:00 2001 From: Xi Xu Date: Fri, 13 Sep 2024 02:08:10 +0800 Subject: [PATCH] Create StraightLine --- StraightLine/.vscode/launch.json | 16 + StraightLine/.vscode/settings.json | 3 + StraightLine/.vscode/tasks.json | 23 ++ StraightLine/StraightLine.sln | 31 ++ StraightLine/StraightLine/MainFrm.cpp | 96 ++++++ StraightLine/StraightLine/MainFrm.h | 43 +++ StraightLine/StraightLine/Resource.h | 19 ++ StraightLine/StraightLine/StraightLine.aps | Bin 0 -> 106028 bytes StraightLine/StraightLine/StraightLine.cpp | 184 +++++++++++ StraightLine/StraightLine/StraightLine.h | 33 ++ StraightLine/StraightLine/StraightLine.rc | Bin 0 -> 23454 bytes .../StraightLine/StraightLine.vcxproj | 221 +++++++++++++ .../StraightLine/StraightLine.vcxproj.filters | 81 +++++ .../StraightLine/StraightLine.vcxproj.user | 6 + StraightLine/StraightLine/StraightLineDoc.cpp | 138 ++++++++ StraightLine/StraightLine/StraightLineDoc.h | 48 +++ .../StraightLine/StraightLineView.cpp | 299 ++++++++++++++++++ StraightLine/StraightLine/StraightLineView.h | 54 ++++ StraightLine/StraightLine/framework.h | 49 +++ StraightLine/StraightLine/pch.cpp | 5 + StraightLine/StraightLine/pch.h | 13 + .../StraightLine/res/StraightLine.ico | Bin 0 -> 67777 bytes .../StraightLine/res/StraightLine.rc2 | Bin 0 -> 808 bytes .../StraightLine/res/StraightLineDoc.ico | Bin 0 -> 4710 bytes StraightLine/StraightLine/res/Toolbar.bmp | Bin 0 -> 1078 bytes StraightLine/StraightLine/targetver.h | 8 + 26 files changed, 1370 insertions(+) create mode 100644 StraightLine/.vscode/launch.json create mode 100644 StraightLine/.vscode/settings.json create mode 100644 StraightLine/.vscode/tasks.json create mode 100644 StraightLine/StraightLine.sln create mode 100644 StraightLine/StraightLine/MainFrm.cpp create mode 100644 StraightLine/StraightLine/MainFrm.h create mode 100644 StraightLine/StraightLine/Resource.h create mode 100644 StraightLine/StraightLine/StraightLine.aps create mode 100644 StraightLine/StraightLine/StraightLine.cpp create mode 100644 StraightLine/StraightLine/StraightLine.h create mode 100644 StraightLine/StraightLine/StraightLine.rc create mode 100644 StraightLine/StraightLine/StraightLine.vcxproj create mode 100644 StraightLine/StraightLine/StraightLine.vcxproj.filters create mode 100644 StraightLine/StraightLine/StraightLine.vcxproj.user create mode 100644 StraightLine/StraightLine/StraightLineDoc.cpp create mode 100644 StraightLine/StraightLine/StraightLineDoc.h create mode 100644 StraightLine/StraightLine/StraightLineView.cpp create mode 100644 StraightLine/StraightLine/StraightLineView.h create mode 100644 StraightLine/StraightLine/framework.h create mode 100644 StraightLine/StraightLine/pch.cpp create mode 100644 StraightLine/StraightLine/pch.h create mode 100644 StraightLine/StraightLine/res/StraightLine.ico create mode 100644 StraightLine/StraightLine/res/StraightLine.rc2 create mode 100644 StraightLine/StraightLine/res/StraightLineDoc.ico create mode 100644 StraightLine/StraightLine/res/Toolbar.bmp create mode 100644 StraightLine/StraightLine/targetver.h diff --git a/StraightLine/.vscode/launch.json b/StraightLine/.vscode/launch.json new file mode 100644 index 0000000..850ce87 --- /dev/null +++ b/StraightLine/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + "configurations": [ + { + "name": "Visual Studio: Start Debugging", + "type": "cppvsdbg", + "request": "launch", + "program": "${workspaceFolder}\\x64\\Debug\\${workspaceFolderBasename}.exe", + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "console": "integratedTerminal", + "preLaunchTask": "Visual Studio: Build Solution", + "internalConsoleOptions": "neverOpen" + } + ], + "version": "0.2.0" +} \ No newline at end of file diff --git a/StraightLine/.vscode/settings.json b/StraightLine/.vscode/settings.json new file mode 100644 index 0000000..d47ab15 --- /dev/null +++ b/StraightLine/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "git.openRepositoryInParentFolders": "never" +} \ No newline at end of file diff --git a/StraightLine/.vscode/tasks.json b/StraightLine/.vscode/tasks.json new file mode 100644 index 0000000..6e0a647 --- /dev/null +++ b/StraightLine/.vscode/tasks.json @@ -0,0 +1,23 @@ +{ + "tasks": [ + { + "type": "shell", + "label": "Visual Studio: Build Solution", + "command": "msbuild", + "args": [ + "${workspaceFolder}\\${workspaceFolderBasename}.sln", + "/p:Configuration=Debug", + "/p:Platform=x64" + ], + "options": { + "cwd": "${workspaceFolder}" + }, + "problemMatcher": [ + "$msCompile" + ], + "group": "build", + "detail": "Task generated by Debugger." + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/StraightLine/StraightLine.sln b/StraightLine/StraightLine.sln new file mode 100644 index 0000000..582b4ed --- /dev/null +++ b/StraightLine/StraightLine.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35303.130 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StraightLine", "StraightLine\StraightLine.vcxproj", "{FDAC309B-67DC-4CD1-A242-9E04425745D1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FDAC309B-67DC-4CD1-A242-9E04425745D1}.Debug|x64.ActiveCfg = Debug|x64 + {FDAC309B-67DC-4CD1-A242-9E04425745D1}.Debug|x64.Build.0 = Debug|x64 + {FDAC309B-67DC-4CD1-A242-9E04425745D1}.Debug|x86.ActiveCfg = Debug|Win32 + {FDAC309B-67DC-4CD1-A242-9E04425745D1}.Debug|x86.Build.0 = Debug|Win32 + {FDAC309B-67DC-4CD1-A242-9E04425745D1}.Release|x64.ActiveCfg = Release|x64 + {FDAC309B-67DC-4CD1-A242-9E04425745D1}.Release|x64.Build.0 = Release|x64 + {FDAC309B-67DC-4CD1-A242-9E04425745D1}.Release|x86.ActiveCfg = Release|Win32 + {FDAC309B-67DC-4CD1-A242-9E04425745D1}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {6641C81C-B090-4E08-B982-7F2D4543AC69} + EndGlobalSection +EndGlobal diff --git a/StraightLine/StraightLine/MainFrm.cpp b/StraightLine/StraightLine/MainFrm.cpp new file mode 100644 index 0000000..ae0f288 --- /dev/null +++ b/StraightLine/StraightLine/MainFrm.cpp @@ -0,0 +1,96 @@ + +// MainFrm.cpp : implementation of the CMainFrame class +// + +#include "pch.h" +#include "framework.h" +#include "StraightLine.h" + +#include "MainFrm.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#endif + +// CMainFrame + +IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd) + +BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) + ON_WM_CREATE() +END_MESSAGE_MAP() + +static UINT indicators[] = +{ + ID_SEPARATOR, // status line indicator + ID_INDICATOR_CAPS, + ID_INDICATOR_NUM, + ID_INDICATOR_SCRL, +}; + +// CMainFrame construction/destruction + +CMainFrame::CMainFrame() noexcept +{ + // TODO: add member initialization code here +} + +CMainFrame::~CMainFrame() +{ +} + +int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) +{ + if (CFrameWnd::OnCreate(lpCreateStruct) == -1) + return -1; + + if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || + !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) + { + TRACE0("Failed to create toolbar\n"); + return -1; // fail to create + } + + if (!m_wndStatusBar.Create(this)) + { + TRACE0("Failed to create status bar\n"); + return -1; // fail to create + } + m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT)); + + // TODO: Delete these three lines if you don't want the toolbar to be dockable + m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); + EnableDocking(CBRS_ALIGN_ANY); + DockControlBar(&m_wndToolBar); + + + return 0; +} + +BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) +{ + if( !CFrameWnd::PreCreateWindow(cs) ) + return FALSE; + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return TRUE; +} + +// CMainFrame diagnostics + +#ifdef _DEBUG +void CMainFrame::AssertValid() const +{ + CFrameWnd::AssertValid(); +} + +void CMainFrame::Dump(CDumpContext& dc) const +{ + CFrameWnd::Dump(dc); +} +#endif //_DEBUG + + +// CMainFrame message handlers + diff --git a/StraightLine/StraightLine/MainFrm.h b/StraightLine/StraightLine/MainFrm.h new file mode 100644 index 0000000..976d34b --- /dev/null +++ b/StraightLine/StraightLine/MainFrm.h @@ -0,0 +1,43 @@ + +// MainFrm.h : interface of the CMainFrame class +// + +#pragma once + +class CMainFrame : public CFrameWnd +{ + +protected: // create from serialization only + CMainFrame() noexcept; + DECLARE_DYNCREATE(CMainFrame) + +// Attributes +public: + +// Operations +public: + +// Overrides +public: + virtual BOOL PreCreateWindow(CREATESTRUCT& cs); + +// Implementation +public: + virtual ~CMainFrame(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: // control bar embedded members + CToolBar m_wndToolBar; + CStatusBar m_wndStatusBar; + +// Generated message map functions +protected: + afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); + DECLARE_MESSAGE_MAP() + +}; + + diff --git a/StraightLine/StraightLine/Resource.h b/StraightLine/StraightLine/Resource.h new file mode 100644 index 0000000..5b27446 --- /dev/null +++ b/StraightLine/StraightLine/Resource.h @@ -0,0 +1,19 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by StraightLine.rc +// +#define IDD_ABOUTBOX 100 +#define IDP_OLE_INIT_FAILED 100 +#define IDR_MAINFRAME 128 +#define IDR_StraightLineTYPE 130 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 310 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 310 +#define _APS_NEXT_COMMAND_VALUE 32771 +#endif +#endif diff --git a/StraightLine/StraightLine/StraightLine.aps b/StraightLine/StraightLine/StraightLine.aps new file mode 100644 index 0000000000000000000000000000000000000000..c0c5c01d65f73212886601dc92491d8896236dcf GIT binary patch literal 106028 zcmeFYc|6qL+dqDdog&&qma&9V3S}uVcFGo#qU>9Q?CTiojC~IwBB6~oTL~qUl2WOx zkq`<|Lzv$g>iy~6XSwhD@%w%s_dnlL=XGA^oac3&{anjy003Z7q)=8Odi`5aMLA&< zwcrS-pp-(v{H$lD`}qP@85lUW*Id=@l)JZ=oyQJM4=Z;^CmT<5BQFmtCkIC_9Vb`2 zf1i=?umM_#qQjRb#-&y zq3dMh;pXXP?}asS^7OWH!K#XjW9@96yzFeTzt+?9cXmG~*uw_#pa#Up$ji#r*2=>c zYlC*2o2#9x*Pj&b9!{=asNrQAM6sNAa&_3b{DQJ}K2CPNe{1mP%2F4?k>S^wp#5vV zv$OwW--#j2E)*?M#K6iiApCV2P~qPK0Ra660%0XVPxOi+0qX1PQ3dtjQ4`8af}Sg9 zky`jiU?lueu$*PI*P!nHKLVq@i>+;t!ylzg4)#GlK27!-mVc{Yv=0h$aIy6Y3bJ+o zy@DZbc-Y0k-o@VDMB`@#qm(QFo3Dcli5%zPfH>i(1dP%`mO`SyI6R)1m>A{aIZfZj1vVo*!;9Hp(?pZ7BP0riLUQ#9a`CZ**l-Gk>?tcMZ6ih+PNa~BeTN+#T-8W2bp!iK`I;(HWmPq4t}Zc?l$w#8o}9E&4otDcaAMte62*_4k(!a3 z`V$Yp6zE%(7fnfwMg0BcIey^*EkR)7cXA$?%0FFx*H1nu3G~bRPWB^{GteOR`~#0z zC6dXR6mnLyyg%1p{1L&b5X#qR3fbS^KQ-fT_z(&yGm)54jcR`54@`BG=-7WQ>F@8Go$)&!En6Vsl9`!(^ly9+ zE23{8V)SPzstC-;%>2ENsAxGb`4WDHj~RqK20FqK1}J3ScPIb}04yE9rYQ^8h1AWx=98P$*P6w4%TKDTk=_I23=$Ay|Q- zl0O4sWxxc&^0=u_^!h)QLw}b*On;L+Og{F_F26~fs3B66hK~l0+7U)6cZl*M5nX&- zkgQ_#l=AR!k0U1pA!(!m=nnT3^28>PsTaGw3CImnxHjf9{L!c5-+Qw7J zk2KtD@8jSCvL##&IG-kn4IzK`@Racjp+pT2+xq}XjvS6IVI*(jqT=El z(Ea!|K(^3>L>fsTCHT4ksfQNTmV_g0l9GV?QAdyrRh^`~Q)YRnlerRyys#v02CXs}01Pe~K)I2c7km^X}M0AIxF6V)%(l0S2kqcdcD|vLACFW63b;i#;gpmCx^3n1~ zf8`VB(8U$)FaIkaP9pjf(N*>al?SF;>MinD79hHMSty_q3S}vTLg`mR$9@fE0T`EffVQ6ws7mYqBq~u^5m4+$ zk&Gg`MOL=^ze)+HuAi1dnN*^TApIFjC0;%U)FuJ`JO`Ul*)9}+odYbQ`PYGfHa)6A zn}0b$PxSgfItRb5GPIFxZ53EB_)thIVIdz zn&^WMa!i0&v{7X_IE_(;D#!ihH)Tm`I`*UY$_!E-XEJpIF;#hfPYlUe5xcRm2xKB9^QYLNr9@L?e~L&ZN~U~f){00#G8%0j>RcjDBodNONz3m@J@5_8B&@tM z`J?Ul^BsxGl{X5d4lV2&pwu%0xtaAs57aAa3N5S;v|aXKjH$)FQG^wQb6o) z`+#n_Cx7k(>Nv3|{@Mow^!~2{0WCVJA)xiACe(lEg@7LaJ-wVtg_hmc9=-U2BQee) z+(TNF)Z}C9F)b>S;1lN?PL`ET{1)X9{@qt}*q78sB8B_aMiw?5mISV2 zdtmbkdEm9)53Z^LV5_AFJly86ealhUzxxDm^5cQeK^d^l>afj80|Z>PK*&=EL;{RK z%Et(#{Y_vG-VF8!nt{YAKTz>70Y4jOh{Q2KgxV?~sj)z`7Au5nu7@~X4oEOq2g!yT zAocJjICGR6GLQ4ZSxbH(nTkP@xd`Og2tu~qcF1zv4tWkzkb6oRvfULS-%$h#T(-f* z(>oyFWfv5A?1oZrNhtQ0fhz&Kq1a0f<>jF`Kmo1m(cY0e;X)&pb<{lS>%3~E_EV4EHYszo7C7P=R1gztmfBqg{SssiOcZdSsm`C9e}z_9aLrrRSAcoJp35crXPWGBp0|IWes;Ttl)0C z3)E$~!S!T6XvjJU4|0z{Q-LWoWZR+C79JH@!IMjN&{%j1r6-~3f+w_I@_>h^Z;!78 zz{^TMpk)gO4z4g@Sf2x{xJ!VIw;b5{%YlD?DQpy}0vV;NAR>DYL`_m)t9lX0sg;AK z$3<{EeHnNq8i0S-eb^$?0^1eaVLR>_$Z0)>J%^uwgvtxpqxBl(4SGS*vJdu~^aD=+ zF{mDT3Ytec;gCfq=sWg;k#!g7x_5(#*E_Is>jPV_Zcs5F01f*gFmW0H9gh(>>^lN> zenW5?KMe9$!eIXmB4}NXghN+Ipm8e>wC<*YNp%Lel*EH$SqeB-Wr25fE|}(A1AO&) zIC4J+%$m=G-J^@({^SarY`+F>&&$F8moYLDIcTP*P9|&Ba7$yOjX1?}S5pRT5-0-GuPBccHNH z7L>QvLidA6c-@!=?_1+w@L4i^>_~^s#zN?MdK=!osD}QRbwJGQg|O_;K**bf=<@@R zez_mgZ@!1HD>Fc<_y(!f-=MVS1Kh6t2+=+FA-U^5-0N(E`2L4*X7DlOjy#78pI*X^ z&s}h9st?j1&cV5kMYwc-5Gw8uLv8ze$Zws8ORs*w&F)3GGyNW#5q;0AMreB10UceP z(EqF+-ao$&1HE1FzP}glw~j(n$1uEjGYSpwen8L1VR$?<3?1W3Fgh{}lV85T?9>E& z8lQognXf?p{vF9;q@e!S;n>~(8uJTbzLlScd#m`b?0-y8%83aJ3h?vuhzkfD`Hx5d zXM;VvcI^@qrV{Y%LJz_JM4)#-TYHZ*!i#MY77*Znqhs00$I1pxsm zVIkD5&3q^RPNA`ej(+2Ek)ffUHX^Wp)Y|$8wIC%%ZDlj&=XFYjgOr0cY2?+^#>bM03`B(5~bKgz8Q(ht9*w4YnN>AtF;!?Y~ z=%~9)uuEbe!fz2m4IuvKa?hTdntG=~?U4eWBy&gD+cjjJpZtW{82OKkw*A1y7_+L&4D?L*6;v%GXdf&vI%jPP^w&(ZRez{SDN z$;rXa!N!Ezg18vMcQrIn@dY&x?q{Qg*2LjZ11tE(#(OR<4z^YnmbT8OCi?rNB@w>6 zi;Aa)iQH^WbxkE48bM1-%frf}W@e^VR<>4F7AV*qM+9=q_^uWFcu`(%wz@hMuW%>O z-`(AR)sBM(hm5FbLtQ-!d+Wpd5Wc6ot8n5$ePKz-#k{;6gy;123<~n_IPD(lv6^Xz zoR+Sho}rpc_}-rG?yfftS5QbyiHHaZ!Q=6Wzn8~p5^BZ6l}2=%)b2gn2M*{NIwLsrQVF_y z-gaFnNg+nA5CjJYg?XJ04e~+;sT(sRqR@AwVyU4Yh29?2p-Y!ih*Sa;@Yg1Wyu3)% zVIYE2Tr0?x=l9V*G=hdJmoF8krV`U4BVJEE$G@0D_~;-ifxElg?{I+cy*+5WmzVJ~ zb189iQ!|9;b3;Kv(ZN3(_&XjAVTFBhS^C^uRQtlhT=I*#X@p1PUT)w|Jlb?uE)^GF zyj?awA2l;KGynSe{4_o&22JepkpCGEUCa3L#l?ih#l*#h=Zn*Ld<=DBsSW%KJklpG zmUJNewWSX!GmGDrsCcv#%MJWXJSyxcUt0RG^fc)@+I-U?A+gJN)WE;PzeM<@rSgm< zDn244K4PT-uYZfbfq*kN$}>JJO<#=+O^P6dQ1{Y*#y`K2S(cWTmJ$<_5fc%*y!rke z|Mxe(K5uKgc`LIlBP}hSm=qg>wi6oizs0|Q^|GVl_6k7;ayQ1ukU~Rz{w;ps{ri_M zJD%Ns_Uz`(TW8LspUF%@1O%Ud$A4hp{j2w{UcKtLb*rrGOnQ21YEn{c^s>$HFG+?+ zMutDWM?LxlPf1D3h>iJW@&6MId1PP!b*O^Mp2|Ii8j_M?{t5V3!7v)Y?Z0}HLQIK_ zB*rKGRsGK|voAZA@hj|!k<@^Uo&OMCt@I`xb%jVI{%7n8oATw}r=(v04_yCN^(_5N z+usU)&mbM>|M^Fe8c6B?-|>%@Ak!3!7G%YaWmsOCKkZm*Jr2dc>{z5C{S~N65jCQK z-_HnYJEVczOy(~eR>V>f%#;-%#7GRb3L1mrp5wsD7Yuy%IN*0wS+-*Zf7-BHd<~Et zYY1ZaBOvE#1p5Mx!d4%9kaY4}wq2t&RzaK&JF;0fK#CEHhq)jf*{oT|`5^Oz;Igfn z<17KW&I*w4v|^tYA^Y^an>1W-+XolCq@dJC8ZP-sL6MgNlpy=`3Vtt~^Ta`^uQIYz zHDDXEPer3GU`L!SNX6K~PGp-(r<{a6*&eVj*9UfA@CVsTcu!=R+aIhGyg}_k5Ez^ffolYLWWVl*syHQN%i@p?s|D91)c&$zuSe>@Eo8%1 zC+Nf7)B{ivXMpV4LvSnB3@Vci;ZBMX+(|nI_cEPO>It=3-f%774ld?9LTS+{xO&+G zuHOiN``J2hAK9|a1&5(N#|9oBf@Ak{!Sen&INnqMc8@QDXLBjIJ}-mQ?N`CA z<2rc1xC#C*Zb8WFY6yN?14d_?;3Tmdf)cvGJii|7%bLL9#zQcR90#Y^5%3`nfkWyS z@XHtlx9lnKJvRxyMPDJZJR2(RMj%@@99nNiz|-6D@Ul7z*|lfkWlain+|7bl_X^4Aj)Cde3Ug`AOgC>-s8 zYGl)9v>^NS={VeO8iL~1Ik@_K9&Wu^fEr}WK6v#69=>}HeLX$!{$)M%_w~Zd{3SB zbJWy%`sK@)BfNZ){Ct}?t=vy}I4O=btn>=>s^FsaY_{!)o+z?Skv&Ugke$3&X1CNj zjx}uiS?L(eY{;Ltii?Pd2k1xJYg|Xmrp<8v#&#Q)xlZ!uUfanceDW z6c&%%Yz?iB*jO1k=xd9LU;*A;zA(OcMhzz|b7r>`$KA(|THIXf>s?N{oHWuFM}|;e zb5YOYnB{dz}RYimoZQ^yYMKze%L#qoviJ4#vVnX-E}ruqALuL^_mHE5DIgz5>A4F9Ma4y_oPNIEUS6JF_*IOelA5|G975iMf%gObU0s*TBSMfh z5ai|Q;T7iP!OSGMRZ~+({}jOB;J`rFm5WyiA*eba{JA%(_wsP35pr5tyy;H^ea)ps zR|yFr*LsQ1zj%9vqeeVV|FyK!{qL@nT)0a7M*KMY_QkAsP(*;2r{_QF(GW^66kfkY zzWrn2+w%ofk5pC9zbnHR&fln9__$EEFty+n91#?Ndhi$jm6xH)g&$LqQwxh;!BJ=! zUY>u{L*?S)+sO9C#h{R=;Glqje^Q2DE-psjjEV{mi6Eho{#J__H2HI%}#b5)pZ9C<^~d`TRv58rShp)XN30ZzjYgz5aXM|MvH-7NojhQI}Tq z80t5X|MYzeDLp9QXqJ+%nu`wmZi z*y3XVTLO$=Yw!_}^h4iWgO0-vYgY(zI02SNf+19y8A4T%zg>L|kTh9=hLC&Za-UiQJK7;i*A_|1@Yf)A39Vd0F00HmG}MSgfO$gtV6tlwnVZG&7p zG01h1fH<2yaMoonJJ*{ zgOCnG^~Ebf89^1Ug&lZ0CEXT~Qhx>e z4t9XNZV$*gJ_ZHjeo!pl0+O4w}CNO{XV-^LYY?PCtdC-p@eI<_#RM?*&8K zcF+xMhZFd2aPsK^6^lVov;BbZAK{?u@UqTh?EVof+=t+h_XrpVe*!!24{$1A0Qu_& zKs}WR`d5iyP)Go?A|f0vi2~j0abR~o3hXb$faAqjuqufG&*CKTxSRrkrD@<32%X;DeYjL_yj@{-y$FWTR0Lr2FHmL z;1o8B^wu%(4jTaX$WgFQ`vL*kgW#Du0YT{#;F5*>`uWp(8U5b?SOqF>#CclQ&ZuO%9KTT+q#{w%z0xdh$M@4(3G0!Yf9fGFg%Cl&NV+Jz60 zQt%mKkxr9)vma8bzCkS2SKs>(&h<1yQ7`h-4?lwoL(d?8xE(4!y@ix|GTd$)f~p6@ zaK4EQH``nYD>N%lTCPJv74#h>r3*iEc7%u8WpDc1Q>SlwVnzWS3_vlxMMiZgbF3TJng!&Q4K)o0loYsx0zFds$mwcf4qSa?0hD zgN`IX+f~ZqEZhDI`{W-#3SN8I)Yit}q@y_!rq@afH20n72n_J|atopp--G;&dS*zD z_qDx$pAr!kg7-`~9qQ$Z5tGz%K*Rd{{o{vQkx5~1dt#?ONr-0M&q?^ucl&zWeCoIP z_<65re=qM}a|0i5lvOR=S^7G%8J0a!_)yo;t#2>FDN zzkZZKmy;Usdg}vskO2teO+eb)7*2U= zK4I6!{6^XZmfViWe8fgcrvB&zH!HHL(f9fF|vF!juyFM^?dIQ$(J)mLs9+a(zK-2Lf==+Sq z5hMo=CWV65r3f%T9|2~!Q^CA86Re6zVE!~0T$?U}M_U>AzpjA5t{ZS7eG07OCmVk;03a!!x~B; ztnD&HAUpKkgAC|z%77kZGxt0yg~+6j5SjM{V$XkpyrLmUFPnj=atd6%Jq;OeA3$a2 zBdG0dgQ5>@Q2yx++?eQsnEQ)Rd;bd*H-*?$oBRL0{&!~J zPkTM!HzK8V>}=d@D<#{u18j`S-nE;D6&uPTMo%wFvpO<_bHg6~HS3+2FVNCSFpA_V zZrUuz&mj=Lg_5+&nMnpmDdfRRt`kahxahcbhp@b|!hX330v~dr<>V)e+aJ*J58AtT zA3iwE^;DSoQLV#jx+)m1ol?Yt^J(sf63otMAJyrYSN?2PhKH@S7b*5vL8h;rjj7eL&GrBH_dl(v zzu&_vKkWJa9*#E9(`04gW<?SSl>-3X2}K1*9n3VX^W{j(8;=~_-avVW$moV`uMIx zXJXZE#oaK!hAo7vo1yX|`-^j=$a+&g4#K7*e_&Q(%|o zn)P^T`h4H~9Z7+>jx!yZaISguW!c@up7QuE*3~WYyD)?t#yX*T43?1{_aR7Lv(+6n zQ5Q7gt0*NBahf}m%3MdE@~Nv#wQ!cNo`;qLYuPD`OQuudlA{T&q;)^XPIBamu&eTz zo198aV7AH;j%V)oPdm3%^yPT{_`t-jZ!)S(hJEVw!NgDPD zo)(M_%?aM5Bzlfqu;NnQYQALA6j5&U0u67_YyL=`Tf>uyy{<7Ip9<&u>^WnROmoZo znK2IJs*UNz#@0+OvE7ppWRGN!XJpr759@;M7E_GA@yzeDccaGTb)GGJQTnz{jQfjZ zlSIHlzThB3y8az<%oxA=n#LWQn8<3(Vr$zaXxO!JX>_*xnM4Ws?1UllrLG8O{UY=95$dPl^?9}p8}e=INU& zs%9dvok^2=G|nmtC`pprOL1^m8 zdoO{fzliJS9D$I`njr2Ajt_lvU1rSI9Pq zXYiA)w0f*<5v<@4qF_j(yuNn0AZ)_v*!l}emjU~^Y?|{RP0Xsa1CuPu z8r+1T!jPrt9~EEmaUK1;MF^+#IPt^7Zcqf1%5ZK!n^rx=iQY)NgNQ3YFK$17{uPkUVg_VTem z63DsRW|OT&NEv4#*y*#}S}0h9_t0VLN^7DkXLXubtn<5^b>c3s?Z(?%5}{6OOvy!V zmk_YJpOZC6Uka$eibsvmw6qXzeA3y@EPyt5mwz6I5N*Ik0 zVBfP7&Ya)sh@vw|HqOs1cZ#2}xI;_x&akXF4x8k%&aj1l&BrM`8}~F5fgwmyp=8TF zlT`*APoyfpIj&VdM7Sytx)(ProYX?ukxI~uZk;Ts+qCY!31TiGd1~QNU4X0zr>kr^ zCJr+`#I&}h8-uBto-#7DY+sYfl%`G5TFu?B!+rATl{-dspw$gpJv7*xWKu*j=7(Su zqq7#_j&+V12{ZX~`m}Up5_S>i@<=zZ#>)_;x zbg(|x`te?H8ii%%zy<=7#36>&?!6WVzi-;U{@}Ia5lOl&G~iJmt70(5o>93~%&$}! z{W|;U#)PHO+`)S%Qn{ab)1DA>8VpvtYq`eUb02qV*B(@O z;NYF-xmo;v7QO-8>*_bY_-L`1o&Ds){nP8Os=FO+Z7=1TTwl+YL?5@Rzrt!?$MTCmgV$*_84wWYT8UxBA=7Pd^Mi&3|!_+}`mv zY%^W?W`%4A!nZ(WGjD1}ka=iDglMc`t z4i{3ouG)XQ(S^CgG@NAW?i_Y_Mnozs)iRFt3{NtTY1_^8;hOCVSp>movGTxH{-+h} zjO$OEl7n-i2^AZgs>|cR4|xIaursXREbfWT=-#zN>*jAL&6-54_-FWdR-F27>|{Fz~ny%p9y6LYwl}(ob6+Ma<7UdF(ohW z4ENP-Hu~X8ysr2{VtRjA=X$H^nb%766=yzZ5V(Sa)`bVWrn}5rVKzOxcimOD0oMqP z8C46<=w>b1?`xvqOa?R4ku6w7imTGfpaQt8t!-r+?KodPv1 zlI_iRFKi(7>1}JO-^WP!I*FC4zwB|Z2SeVjoayyR3ujID>>M3K6YX|O-w9Q>lWdD8 z_+Q#QvWU_)F8aQxy$*M($~~t%oH>7?yRME+nwXf~G;^pxDq+l1RL8bf5R=?N+Suc< z9g^i{mSnt6Iv%zZeB-iuU=C}YMbCzrnp5rH#jq;fWmqz3RkW_~HJW|HR}Qcztcm!B z1mA)Eq{FMjGIjE4!gR1!MK|6&h+-Tfn+ap~?We7*;>>PStKMn3b4dA81bY*UrQ^HP zbp4+fvgmpII!^0+uFcAO^Yx5gXpR`e?BkbbA7Iw55=(!Oee_EWS($E!8U8@!X1Z0b zR-_(wzuWZ>!U=}-+lK`dhJtc#=9&-hZOSOWFgyrO@mT>-E|=df^9e1)6A+wvnzj(Q@m) zIi7L8Gl#`QNzp-)WpZlh5}sey1ZX=Fguvw-eYf;=Y1v`i)1&!&R@t1*Ut(x?4phnK zQ<%J!)_ErHs+@ke)dox23%AUY#4+oFynQ(PmDj{9-C^E%jFDzX!Dj1%RUF4@L4}(@ zNAGFDcc`|7n{PiD_prxGNYG=aPuyxK$G9{OWWHA%~83uxJV!H+>vhBa}&!jE#>A zyoWuD<{60^@vCp0t?zv>A|LA^O*f}Pkm2p!%;tCEnQDy<{Vur)1se9rbu)uy(~e^o zMd>K`Allsyp|4l#IAbzhpoi7KjdsLWVe4cNK_N-ZM9~q$@^!)LzB%ma$>8T^IddE? zJ1k~RMquxgLUn`^u<1DLx+IZRhZtLo2{pS#TD64FMThMO;t7WJq-v%>=7MePZ}VMk zfzT7oHJ`d_#8*by&f?J`SuwJKrCv$oD*popdAV7Wi>EK??@I)xts_I}rVaB$JDu(_!JOuguq&mjdvSvoTtSmj10K~~JmzX?U(blH->SXyCgsia%^NtnBkkR5wRV$i zC^F-h2>cEl(;fz5IG1&+!|Kk9NL&w?>{M;$5O&Wr4Pv{RSylf@SO{abDRVz#`%e4z zzH!21Da?LHT)TegvB#G)NW#k+E?$^P#R<`9Vnh~H}hs4 zL+1(B+$Z(Bi!CqOhnD(h9z~Nz_{QDdMK{ayAzImtW=m_(Dw~C>I(|$$Ua2vjl#-|X z=<5bC)00JXrmnQ7)s(l(sY7dvs>a&w9Y$@@8+o{xM+Tj4*Ygp`KN#%o8SF=~H4}X1 z#ko+;5}=Yxqjlwu2w?ES7+DcQs8cfs5SU!V@>T03oY~2YjjY07aM_pLCtl$s7##KP z>$KJD?5JN7vyISjv7=2gWBGZS8^XwVRn!jq*)LrlA_ZY&?e&fBjYdKXnW?_Zt}9xPuH zKHF)h&7_)2x8+BTBxbcP+Eyn|#67Cg!^E#&*ej7w3Kc6e>KsJV;%KvH{L2O!5eLiS zkD=8xBc~wya{dX%ky`?iw2Nt2eeMA()o4lVY}f6?Ytf-kcO`N&S<$t+?KZthuo!qC zUUhk{zPHCfxL%0%%IfWw_8UXzf=5nyy$^8SX3a13Oae#OEY0Q>&D$d))BGli!r4f_GZRW)FRES2Z z2^d%}UY6#-@O$D0D724rlPq}$;*{u5?CgANeKAy#xjVF2q`7skqiy|evt5B@xH9K{ zldkBpGP@A1;0dh0!=7vw8`cZ-%8m`jXs#T)Og8e55PLZGRj%57o3VCQCI@d)M>9XUKJUg1)ANO^#{#)n*<}T` z5zu<*?L!~v@(UCPEKYM6P7Yg^d2(pI;@p6_CgJR%X)?iiIhi747_8#2! zQ@iG~*@hzbj1Yady*@$zbsG2>=EybX3_*e{Q<#)_+U$5ET_l|+uLv%gE5-^L(44d# zJ87)(QBc_Xo^;1=Tm!|sZLSZe68;?^o?58>{U{tqHvFEmg#W7ggQrKdSwl+9iI!REp1h?SHx*vB3wwC3(> zy74F5V;=cuzNLxUo8PvryqfJ@x0?6HeC;BIJKto)Xz?ViULn$_7EFOkzdVDFJzu60 zq4(q(*I?bb`GBB%u6iN&f?-6OMoVO#U2|d2WHXDUxD(@ASns%XTNs9e@^YJvR%0E@ zNQ~L8`uXNT?9n4;#YPjS*&NFX%`H?dqIk{9JEXuZ@mrbh~}?XO?tMw(UTw7{3zoYjaHm0 zqg!0hMRrEQ`N4|>A;N*iKC6DO{sWD5ZAAV}Q%A-OEF2EV7(i$9<`mA-(INOH@bHRiUw?l4E33lw(P+5YY zEj~m=%8FloH$MBImK|A)j&67K*^<+ew#P^N12*T!d(Y(3a#)(B?lS5Sv;Thov+Mn| zQ~8x>F$iM;D*c_LXdWmK$I+o<==tOMmkNV()$sVl!}z^Q7FYIb8|T&8$T7`0xhEdR ziA?0GmTC*O-uZbwF{mwEeh@0Z>!GbE#PzGvlhWrf8!U+v$JC8AI8?If<&N#oS6MGF zApBWFTdcD)^!6S!AAPm*7-{KnYu7a~4>#hncP)Aw1U_KgSgOXu1y2_Es;oI{hC7wB zhn*XavwpVQXiop*)79Ebm-U!;HL#yg!{yV42xpX|IP7JFg7-l>v4|#Sn95h4#(}ERj%)5 z9+a_q%v#mP@TBns5;)W2@>xy$T8i}xX7u7mhwla3y-B>(rM9(5%3^)QyJuTEpQzKz z>fJ`-0!OpdE-98@XFcak{6P>KKFrvf*3d$#^BQSr#E#LuEOCAIsQ7c4QAnwMR?bT! z*DK+#JKF=_S#0PyOUTWB(0E^>U7EM*1mkIzom=ud8}53wDQ*o3fhy-pC->s99CMp< zGlfAR2g(}W&~M7|5y80Z8L+UKFpA~*UN=HgDjJK@SYUj4)X9jI>u|%l*P5TYZ@KNT zbSe9xnU>-6z&o$BB@h!VGPh^Mrf064Uz~<@vip;?WaFv5_rI)_ic@0{WN)I|wT-G# zC5cU@GMr>*U^Y0kY9vB<+x3W(+p(y;soSN+UFQc3AY~+`$>^O%5gi!sra~#zl0*2~VbfZu87PK{V zRU2^5?F9^uciB|ru7|6nv)Vqm`Iau}EYGEW{*QvIZ!A2jvE;?9CAZQG~bJ!qWgBaCq|YqY?aaT#EIts6XB z(XSgDlh6dsZfQh+rubuNZg0isN8as&!_{W_W0x_$isKoN7U;+iY?loBJHwS~8Sm95 zWHNC)8>=31*qL-oh`B#SXo-7)X0=**Cwbwvw|&g{V-7w#>KhA%mIyk+j}wkwKSOhE zhMa6^tb?U+>#x1rs?1MZ{8TWXUv>O4foCBtTuJ`O?Lo!b^D%O2bsGZflqVR3K@IYSpw#pXyH`0$3*;{UZ0K12`ALmD`KY108&k^=vr?o46 zrCE_Pl)LKdk45L2LzglMk5`Qx-){_pR+YIVI!~<~Pp!CfKJpIX*A# zE$B>o{!o44G7x zy$fy!}h_MMC&eEcOhKOe1KP2LS9^=rQM5OsUGAV`-bE4{P7Y;EBU|>rl?MNiobBn0_52>f;65ycRsB%S#&S`W@Hj?V z;Fal|)+Vj46Bxgf+TL$@CfN^~-K?wlNHclXf1Zn3Yrj015%R9qy=-XLdpterT*{wu zbZcD4O^{cw(g7cC{O#Q1AI?2-GE{*)`qZ5)Q>GR>D^oO>T4@*(_ z=5CzKF8s9Td41w3RqH7`Qv->fZ%Jg?KQb)@W-rOw&kn8?T;iBn zbgdK_NWAd*gZU;G&UI7zANxH6A8(rCX9&Xh?wQPJWRbezb%B5SIaV(;ZzOoGu!mqE z`{g?8_o-}o>YZ30!6svC+8$SOQhc;s_lwGpg_GlNGS*LhuWOs%+csWJGgjuu%cm5G zLH^*@s>vr=1}3e?4@__3n9^UE8RrZSPdZ=sIIeE>c<-mN!RuxQ^!SJGXg$miky*$t zi%yxd!``GHaYn)KLY3<;J=7;8yM>%_`uy<7`{z5AVp_}Q&b;TKbgOG!5e7}UuOCwV zW<$tj$PH3SELvPJfCv|u= zEV1Y4s=Yz8Bc!^MM(SJt-j~O&Luav=6X3C>r1PuAjO4~^ooglrrblh=1k|_=J?~~Ye~7^( zLXNKN(RRG)M}@x2F*Hdhg(iy@!xkAFqb6JujPYTNkU2M${^O(WK0VCp81fk7f!$>9V&0j3l>T9j zGjBt_t|=V%62~v*lj@QPLOK4Qn0fq%cL*g)e$rgzn-_ODbnPm`!Ls_Ys}dHQC#A3t z{0?NP<*!*a^Uyi7hMr`>DZ1!zxxRCPjX-SE9D6n_rT6OAAQN1A@bVIH66$L`SJ{Ma zwg|Mf%_?%f$NEfRN=@DFgDX+Ahzaizu{5yu*ugt_Pmlg+T=NwRj3xAS!uR;&`pJd-wGrW~U4O*YY;h%dzV1dq%%${Zt0q=6y97>tS9KH03qJZTZ!5 zbQj_okZ*nKd*gcjZHoPszOr3%lZ8ssH(1RMycQl#{UH5lC%h);b_=mCm>x;TdG!CN z;Sn?tuP;7{zc8zxMi8V;5lW;QTP*o))2l{qYAc)Ru9NOC^`Gob9{SczZu5Haj4)ci zb`AD^q-XK@VJ3)+L%aBsF>5I)+)eL1VJ+ ztWFg#^W=uP{Ii|)!*(M=j{Tl@{Khs>mfe1*j$by}@uQS&_qap0ZqEE*AKy{e(LHXB zbH)0v8ECv4EuLY-uKBa-6w2S~U21A-v03*}KeSVODQ1D#Myz8d%kMNZN-_8ly1Gi@ z#8GvH7AdWY(M9IB{_GcOqaUuB&=Kbq%|&|CON|B3v9c@H<6*N(`{W}{+<5H*gB`1_ z?Kfr{-Fz=sl5|LgM$NIZ^Ymmc#ienI*X5?DU2yM(tHcRd_~du}=qtgBQ=EcL=?)>-Z%DhT?CZ_IgN zCsDVd|Eq^Fqx_^l*QFD$*l-*ehX?m|S1F7RoxY^I(~-vSi{`yAErCiwgUPXPMJp?? zxL(G5r2&qMG(WzF#gmZ}RWiDGiL4aA{m#t%*y;DahWK$VCxOQI#ZNVNH3F;wO jq3Af!g%P( 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 cDC^vBonoa~oShowWindow(SW_SHOW); + m_pMainWnd->UpdateWindow(); + return TRUE; +} + +int CStraightLineApp::ExitInstance() +{ + //TODO: handle additional resources you may have added + AfxOleTerm(FALSE); + + return CWinApp::ExitInstance(); +} + +// CStraightLineApp message handlers + + +// CAboutDlg dialog used for App About + +class CAboutDlg : public CDialogEx +{ +public: + CAboutDlg() noexcept; + +// Dialog Data +#ifdef AFX_DESIGN_TIME + enum { IDD = IDD_ABOUTBOX }; +#endif + +protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + +// Implementation +protected: + DECLARE_MESSAGE_MAP() +}; + +CAboutDlg::CAboutDlg() noexcept : CDialogEx(IDD_ABOUTBOX) +{ +} + +void CAboutDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialogEx::DoDataExchange(pDX); +} + +BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx) +END_MESSAGE_MAP() + +// App command to run the dialog +void CStraightLineApp::OnAppAbout() +{ + CAboutDlg aboutDlg; + aboutDlg.DoModal(); +} + +// CStraightLineApp message handlers + + + diff --git a/StraightLine/StraightLine/StraightLine.h b/StraightLine/StraightLine/StraightLine.h new file mode 100644 index 0000000..c6746b1 --- /dev/null +++ b/StraightLine/StraightLine/StraightLine.h @@ -0,0 +1,33 @@ + +// StraightLine.h : main header file for the StraightLine application +// +#pragma once + +#ifndef __AFXWIN_H__ + #error "include 'pch.h' before including this file for PCH" +#endif + +#include "resource.h" // main symbols + + +// CStraightLineApp: +// See StraightLine.cpp for the implementation of this class +// + +class CStraightLineApp : public CWinApp +{ +public: + CStraightLineApp() noexcept; + + +// Overrides +public: + virtual BOOL InitInstance(); + virtual int ExitInstance(); + +// Implementation + afx_msg void OnAppAbout(); + DECLARE_MESSAGE_MAP() +}; + +extern CStraightLineApp theApp; diff --git a/StraightLine/StraightLine/StraightLine.rc b/StraightLine/StraightLine/StraightLine.rc new file mode 100644 index 0000000000000000000000000000000000000000..202e13db0d261306f5b615007a38fb20563256e9 GIT binary patch literal 23454 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 HRonM}dK|`> literal 0 HcmV?d00001 diff --git a/StraightLine/StraightLine/StraightLine.vcxproj b/StraightLine/StraightLine/StraightLine.vcxproj new file mode 100644 index 0000000..9b14de6 --- /dev/null +++ b/StraightLine/StraightLine/StraightLine.vcxproj @@ -0,0 +1,221 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + {FDAC309B-67DC-4CD1-A242-9E04425745D1} + MFCProj + StraightLine + 10.0 + + + + Application + true + v143 + Unicode + Dynamic + + + Application + false + v143 + true + Unicode + Dynamic + + + Application + true + v143 + Unicode + Dynamic + + + Application + false + v143 + true + Unicode + Dynamic + + + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + Use + Level3 + true + _WINDOWS;_DEBUG;%(PreprocessorDefinitions) + pch.h + + + Windows + + + false + true + _DEBUG;%(PreprocessorDefinitions) + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + $(IntDir);%(AdditionalIncludeDirectories) + + + + + Use + Level3 + true + WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions) + pch.h + + + Windows + + + false + true + _DEBUG;%(PreprocessorDefinitions) + + + 0x0409 + _DEBUG;%(PreprocessorDefinitions) + $(IntDir);%(AdditionalIncludeDirectories) + + + + + Use + Level3 + true + true + true + WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions) + pch.h + + + Windows + true + true + + + false + true + NDEBUG;%(PreprocessorDefinitions) + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + $(IntDir);%(AdditionalIncludeDirectories) + + + + + Use + Level3 + true + true + true + _WINDOWS;NDEBUG;%(PreprocessorDefinitions) + pch.h + + + Windows + true + true + + + false + true + NDEBUG;%(PreprocessorDefinitions) + + + 0x0409 + NDEBUG;%(PreprocessorDefinitions) + $(IntDir);%(AdditionalIncludeDirectories) + + + + + + + + + + + + + + + + Create + Create + Create + Create + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/StraightLine/StraightLine/StraightLine.vcxproj.filters b/StraightLine/StraightLine/StraightLine.vcxproj.filters new file mode 100644 index 0000000..dfcf503 --- /dev/null +++ b/StraightLine/StraightLine/StraightLine.vcxproj.filters @@ -0,0 +1,81 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Resource Files + + + + + Resource Files + + + + + Resource Files + + + Resource Files + + + Resource Files + + + \ No newline at end of file diff --git a/StraightLine/StraightLine/StraightLine.vcxproj.user b/StraightLine/StraightLine/StraightLine.vcxproj.user new file mode 100644 index 0000000..541a263 --- /dev/null +++ b/StraightLine/StraightLine/StraightLine.vcxproj.user @@ -0,0 +1,6 @@ + + + + StraightLine.rc + + \ No newline at end of file diff --git a/StraightLine/StraightLine/StraightLineDoc.cpp b/StraightLine/StraightLine/StraightLineDoc.cpp new file mode 100644 index 0000000..7914321 --- /dev/null +++ b/StraightLine/StraightLine/StraightLineDoc.cpp @@ -0,0 +1,138 @@ + +// StraightLineDoc.cpp : implementation of the CStraightLineDoc class +// + +#include "pch.h" +#include "framework.h" +// SHARED_HANDLERS can be defined in an ATL project implementing preview, thumbnail +// and search filter handlers and allows sharing of document code with that project. +#ifndef SHARED_HANDLERS +#include "StraightLine.h" +#endif + +#include "StraightLineDoc.h" + +#include + +#ifdef _DEBUG +#define new DEBUG_NEW +#endif + +// CStraightLineDoc + +IMPLEMENT_DYNCREATE(CStraightLineDoc, CDocument) + +BEGIN_MESSAGE_MAP(CStraightLineDoc, CDocument) +END_MESSAGE_MAP() + + +// CStraightLineDoc construction/destruction + +CStraightLineDoc::CStraightLineDoc() noexcept +{ + // TODO: add one-time construction code here + +} + +CStraightLineDoc::~CStraightLineDoc() +{ +} + +BOOL CStraightLineDoc::OnNewDocument() +{ + if (!CDocument::OnNewDocument()) + return FALSE; + + // TODO: add reinitialization code here + // (SDI documents will reuse this document) + + return TRUE; +} + + + + +// CStraightLineDoc serialization + +void CStraightLineDoc::Serialize(CArchive& ar) +{ + if (ar.IsStoring()) + { + // TODO: add storing code here + } + else + { + // TODO: add loading code here + } +} + +#ifdef SHARED_HANDLERS + +// Support for thumbnails +void CStraightLineDoc::OnDrawThumbnail(CDC& dc, LPRECT lprcBounds) +{ + // Modify this code to draw the document's data + dc.FillSolidRect(lprcBounds, RGB(255, 255, 255)); + + CString strText = _T("TODO: implement thumbnail drawing here"); + LOGFONT lf; + + CFont* pDefaultGUIFont = CFont::FromHandle((HFONT) GetStockObject(DEFAULT_GUI_FONT)); + pDefaultGUIFont->GetLogFont(&lf); + lf.lfHeight = 36; + + CFont fontDraw; + fontDraw.CreateFontIndirect(&lf); + + CFont* pOldFont = dc.SelectObject(&fontDraw); + dc.DrawText(strText, lprcBounds, DT_CENTER | DT_WORDBREAK); + dc.SelectObject(pOldFont); +} + +// Support for Search Handlers +void CStraightLineDoc::InitializeSearchContent() +{ + CString strSearchContent; + // Set search contents from document's data. + // The content parts should be separated by ";" + + // For example: strSearchContent = _T("point;rectangle;circle;ole object;"); + SetSearchContent(strSearchContent); +} + +void CStraightLineDoc::SetSearchContent(const CString& value) +{ + if (value.IsEmpty()) + { + RemoveChunk(PKEY_Search_Contents.fmtid, PKEY_Search_Contents.pid); + } + else + { + CMFCFilterChunkValueImpl *pChunk = nullptr; + ATLTRY(pChunk = new CMFCFilterChunkValueImpl); + if (pChunk != nullptr) + { + pChunk->SetTextValue(PKEY_Search_Contents, value, CHUNK_TEXT); + SetChunkValue(pChunk); + } + } +} + +#endif // SHARED_HANDLERS + +// CStraightLineDoc diagnostics + +#ifdef _DEBUG +void CStraightLineDoc::AssertValid() const +{ + CDocument::AssertValid(); +} + +void CStraightLineDoc::Dump(CDumpContext& dc) const +{ + CDocument::Dump(dc); +} +#endif //_DEBUG + + +// CStraightLineDoc commands diff --git a/StraightLine/StraightLine/StraightLineDoc.h b/StraightLine/StraightLine/StraightLineDoc.h new file mode 100644 index 0000000..6a9edcb --- /dev/null +++ b/StraightLine/StraightLine/StraightLineDoc.h @@ -0,0 +1,48 @@ + +// StraightLineDoc.h : interface of the CStraightLineDoc class +// + + +#pragma once + + +class CStraightLineDoc : public CDocument +{ +protected: // create from serialization only + CStraightLineDoc() noexcept; + DECLARE_DYNCREATE(CStraightLineDoc) + +// Attributes +public: + +// Operations +public: + +// Overrides +public: + virtual BOOL OnNewDocument(); + virtual void Serialize(CArchive& ar); +#ifdef SHARED_HANDLERS + virtual void InitializeSearchContent(); + virtual void OnDrawThumbnail(CDC& dc, LPRECT lprcBounds); +#endif // SHARED_HANDLERS + +// Implementation +public: + virtual ~CStraightLineDoc(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext& dc) const; +#endif + +protected: + +// Generated message map functions +protected: + DECLARE_MESSAGE_MAP() + +#ifdef SHARED_HANDLERS + // Helper function that sets search content for a Search Handler + void SetSearchContent(const CString& value); +#endif // SHARED_HANDLERS +}; diff --git a/StraightLine/StraightLine/StraightLineView.cpp b/StraightLine/StraightLine/StraightLineView.cpp new file mode 100644 index 0000000..588ce9b --- /dev/null +++ b/StraightLine/StraightLine/StraightLineView.cpp @@ -0,0 +1,299 @@ + +// StraightLineView.cpp : implementation of the CStraightLineView class +// + +#include "pch.h" +#include "framework.h" +// SHARED_HANDLERS can be defined in an ATL project implementing preview, thumbnail +// and search filter handlers and allows sharing of document code with that project. +#ifndef SHARED_HANDLERS +#include "StraightLine.h" +#endif + +#include "StraightLineDoc.h" +#include "StraightLineView.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#endif + +// CStraightLineView + +IMPLEMENT_DYNCREATE(CStraightLineView, CView) + +BEGIN_MESSAGE_MAP(CStraightLineView, CView) +// Standard printing commands +ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint) +ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint) +ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CView::OnFilePrintPreview) +ON_WM_LBUTTONDOWN() +ON_WM_MOUSEMOVE() +ON_WM_LBUTTONUP() +END_MESSAGE_MAP() + +// CStraightLineView construction/destruction + +CStraightLineView::CStraightLineView() noexcept { + // TODO: add construction code here + m_bDraw = FALSE; +} + +CStraightLineView::~CStraightLineView() { +} + +BOOL CStraightLineView::PreCreateWindow(CREATESTRUCT &cs) { + // TODO: Modify the Window class or styles here by modifying + // the CREATESTRUCT cs + + return CView::PreCreateWindow(cs); +} + +// CStraightLineView drawing + +void CStraightLineView::OnDraw(CDC *pDC) { + CStraightLineDoc *pDoc = GetDocument(); + ASSERT_VALID(pDoc); + if (!pDoc) + return; + + // 获取客户端矩形区域 + GetClientRect(&m_rect); + + // 创建内存设备上下文和兼容位图 + CDC memDC; + memDC.CreateCompatibleDC(pDC); + CBitmap NewBitmap, *pOldBitmap; + NewBitmap.CreateCompatibleBitmap(pDC, m_rect.Width(), m_rect.Height()); + pOldBitmap = memDC.SelectObject(&NewBitmap); + + // 设置内存设备上下文的映射模式和视口 + memDC.SetMapMode(MM_ANISOTROPIC); + memDC.SetWindowExt(m_rect.Width(), m_rect.Height()); + memDC.SetViewportExt(m_rect.Width(), -m_rect.Height()); + memDC.SetViewportOrg(m_rect.Width() / 2, m_rect.Height() / 2); + m_rect.OffsetRect(-m_rect.Width() / 2, -m_rect.Height() / 2); + + // 填充背景颜色并绘制坐标轴 + memDC.FillSolidRect(&m_rect, RGB(255, 255, 255)); + memDC.MoveTo(-m_rect.Width() / 2, 0); + memDC.LineTo(m_rect.Width() / 2, 0); + memDC.LineTo(m_rect.Width() / 2 - 10, -5); + memDC.MoveTo(m_rect.Width() / 2, 0); + memDC.LineTo(m_rect.Width() / 2 - 10, 5); + memDC.MoveTo(0, -m_rect.Height() / 2); + memDC.LineTo(0, m_rect.Height() / 2); + memDC.LineTo(-5, m_rect.Height() / 2 - 10); + memDC.MoveTo(0, m_rect.Height() / 2); + memDC.LineTo(5, m_rect.Height() / 2 - 10); + + // 绘制坐标轴标签 + memDC.TextOutW(10, 25, _T("O")); + memDC.TextOutW(m_rect.Width() / 2 - 10, 25, _T("x")); + memDC.TextOutW(10, m_rect.Height() / 2, _T("y")); + + // 调用Bresenham算法绘制直线 + BresenhamLine(&memDC); + + // 再次获取客户端矩形区域并设置设备上下文的映射模式和视口 + pDC->SetMapMode(MM_ANISOTROPIC); + pDC->SetWindowExt(m_rect.Width(), m_rect.Height()); + pDC->SetViewportExt(m_rect.Width(), -m_rect.Height()); + pDC->SetViewportOrg(m_rect.Width() / 2, m_rect.Height() / 2); + + // 将内存设备上下文中的位图拷贝到设备上下文中 + pDC->BitBlt(-m_rect.Width() / 2, -m_rect.Height() / 2, m_rect.Width(), m_rect.Height(), &memDC, -m_rect.Width() / 2, -m_rect.Height() / 2, SRCCOPY); + + // 恢复旧位图并删除对象 + memDC.SelectObject(pOldBitmap); + NewBitmap.DeleteObject(); + memDC.DeleteDC(); +} + +// CStraightLineView printing + +BOOL CStraightLineView::OnPreparePrinting(CPrintInfo *pInfo) { + // default preparation + return DoPreparePrinting(pInfo); +} + +void CStraightLineView::OnBeginPrinting(CDC * /*pDC*/, CPrintInfo * /*pInfo*/) { + // TODO: add extra initialization before printing +} + +void CStraightLineView::OnEndPrinting(CDC * /*pDC*/, CPrintInfo * /*pInfo*/) { + // TODO: add cleanup after printing +} + +// CStraightLineView diagnostics + +#ifdef _DEBUG +void CStraightLineView::AssertValid() const { + CView::AssertValid(); +} + +void CStraightLineView::Dump(CDumpContext &dc) const { + CView::Dump(dc); +} + +CStraightLineDoc *CStraightLineView::GetDocument() const // non-debug version is inline +{ + ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CStraightLineDoc))); + return (CStraightLineDoc *)m_pDocument; +} +#endif //_DEBUG + +// CStraightLineView message handlers + +void CStraightLineView::BresenhamLine(CDC *pDC) { + // 定义起始颜色和结束颜色 + COLORREF startColor = RGB(0, 82, 217); + COLORREF endColor = RGB(236, 189, 101); + + // 获取起点和终点坐标 + CPoint ptOrigin = m_ptOrigin, ptEnd = m_ptEnd, ptTemp; + LONG dx = ptEnd.x - ptOrigin.x, dy = ptEnd.y - ptOrigin.y; + int totalSteps = max(abs(dx), abs(dy)); + + // 定义颜色插值函数 + auto interpolateColor = [](COLORREF start, COLORREF end, double factor) -> COLORREF { + BYTE r = static_cast(GetRValue(start) + factor * (GetRValue(end) - GetRValue(start))); + BYTE g = static_cast(GetGValue(start) + factor * (GetGValue(end) - GetGValue(start))); + BYTE b = static_cast(GetBValue(start) + factor * (GetBValue(end) - GetBValue(start))); + return RGB(r, g, b); + }; + + // 处理垂直线的情况 + if (ptOrigin.x == ptEnd.x) { + if (ptOrigin.y > ptEnd.y) { + ptTemp = ptOrigin; + ptOrigin = ptEnd; + ptEnd = ptTemp; + } + for (int y = ptOrigin.y; y <= ptEnd.y; y++) { + double factor = (double)(y - ptOrigin.y) / totalSteps; + COLORREF color = interpolateColor(startColor, endColor, factor); + pDC->SetPixel(ptOrigin.x, y, color); + } + } + else { + // 计算斜率 + DOUBLE k = (DOUBLE)dy / dx; + DOUBLE d; + + // 处理斜率在[0, 1]之间的情况 + if (k >= 0 && k <= 1) { + d = 0.5 - k; + if (ptOrigin.x > ptEnd.x) { + ptTemp = ptOrigin; + ptOrigin = ptEnd; + ptEnd = ptTemp; + } + for (ptTemp = ptOrigin; ptTemp.x <= ptEnd.x; ptTemp.x++) { + double factor = (double)(ptTemp.x - ptOrigin.x) / totalSteps; + COLORREF color = interpolateColor(startColor, endColor, factor); + pDC->SetPixel(ptTemp.x, ptTemp.y, color); + if (d < 0) { + d += 1 - k; + ptTemp.y++; + } + else { + d -= k; + } + } + } + // 处理斜率大于1的情况 + else if (k > 1) { + d = 0.5 - 1 / k; + if (ptOrigin.y > ptEnd.y) { + ptTemp = ptOrigin; + ptOrigin = ptEnd; + ptEnd = ptTemp; + } + for (ptTemp = ptOrigin; ptTemp.y <= ptEnd.y; ptTemp.y++) { + double factor = (double)(ptTemp.y - ptOrigin.y) / totalSteps; + COLORREF color = interpolateColor(startColor, endColor, factor); + pDC->SetPixel(ptTemp.x, ptTemp.y, color); + if (d < 0) { + d += 1 - 1 / k; + ptTemp.x++; + } + else { + d -= 1 / k; + } + } + } + // 处理斜率在[-1, 0]之间的情况 + else if (k < 0 && k >= -1) { + d = 0.5 + k; + if (ptOrigin.x > ptEnd.x) { + ptTemp = ptOrigin; + ptOrigin = ptEnd; + ptEnd = ptTemp; + } + for (ptTemp = ptOrigin; ptTemp.x <= ptEnd.x; ptTemp.x++) { + double factor = (double)(ptTemp.x - ptOrigin.x) / totalSteps; + COLORREF color = interpolateColor(startColor, endColor, factor); + pDC->SetPixel(ptTemp.x, ptTemp.y, color); + if (d < 0) { + d += 1 + k; + ptTemp.y--; + } + else { + d += k; + } + } + } + // 处理斜率小于-1的情况 + else { + d = 0.5 + 1 / k; + if (ptOrigin.y < ptEnd.y) { + ptTemp = ptOrigin; + ptOrigin = ptEnd; + ptEnd = ptTemp; + } + for (ptTemp = ptOrigin; ptTemp.y >= ptEnd.y; ptTemp.y--) { + double factor = (double)(ptOrigin.y - ptTemp.y) / totalSteps; + COLORREF color = interpolateColor(startColor, endColor, factor); + pDC->SetPixel(ptTemp.x, ptTemp.y, color); + if (d < 0) { + d += 1 + 1 / k; + ptTemp.x++; + } + else { + d += 1 / k; + } + } + } + } +} + +void CStraightLineView::OnLButtonDown(UINT nFlags, CPoint point) { + // 记录起点坐标并转换为视图坐标系 + m_ptOrigin = CPoint(point.x - m_rect.Width() / 2, m_rect.Height() / 2 - point.y); + // 设置绘制标志为真 + m_bDraw = TRUE; + + CView::OnLButtonDown(nFlags, point); +} + +void CStraightLineView::OnMouseMove(UINT nFlags, CPoint point) { + // 如果正在绘制,更新终点坐标并转换为视图坐标系 + if (m_bDraw) { + m_ptEnd = CPoint(point.x - m_rect.Width() / 2, m_rect.Height() / 2 - point.y); + // 使视图无效以触发重绘 + Invalidate(FALSE); + } + + CView::OnMouseMove(nFlags, point); +} + +void CStraightLineView::OnLButtonUp(UINT nFlags, CPoint point) { + // 设置绘制标志为假 + m_bDraw = FALSE; + // 更新终点坐标并转换为视图坐标系 + m_ptEnd = CPoint(point.x - m_rect.Width() / 2, m_rect.Height() / 2 - point.y); + // 使视图无效以触发重绘 + Invalidate(FALSE); + + CView::OnLButtonUp(nFlags, point); +} diff --git a/StraightLine/StraightLine/StraightLineView.h b/StraightLine/StraightLine/StraightLineView.h new file mode 100644 index 0000000..4794322 --- /dev/null +++ b/StraightLine/StraightLine/StraightLineView.h @@ -0,0 +1,54 @@ + +// StraightLineView.h : interface of the CStraightLineView class +// + +#pragma once + +class CStraightLineView : public CView { +protected: // create from serialization only + CStraightLineView() noexcept; + DECLARE_DYNCREATE(CStraightLineView) + + // Attributes +public: + CStraightLineDoc *GetDocument() const; + + // Operations +public: + // Overrides +public: + virtual void OnDraw(CDC *pDC); // overridden to draw this view + virtual BOOL PreCreateWindow(CREATESTRUCT &cs); + +protected: + virtual BOOL OnPreparePrinting(CPrintInfo *pInfo); + virtual void OnBeginPrinting(CDC *pDC, CPrintInfo *pInfo); + virtual void OnEndPrinting(CDC *pDC, CPrintInfo *pInfo); + + // Implementation +public: + virtual ~CStraightLineView(); +#ifdef _DEBUG + virtual void AssertValid() const; + virtual void Dump(CDumpContext &dc) const; +#endif + +protected: + // Generated message map functions +protected: + DECLARE_MESSAGE_MAP() +private: + void BresenhamLine(CDC *pDC); + CRect m_rect; + CPoint m_ptOrigin, m_ptEnd; + BOOL m_bDraw; + +public: + afx_msg void OnLButtonDown(UINT nFlags, CPoint point); + afx_msg void OnMouseMove(UINT nFlags, CPoint point); + afx_msg void OnLButtonUp(UINT nFlags, CPoint point); +}; + +#ifndef _DEBUG // debug version in StraightLineView.cpp +inline CStraightLineDoc *CStraightLineView::GetDocument() const { return reinterpret_cast(m_pDocument); } +#endif diff --git a/StraightLine/StraightLine/framework.h b/StraightLine/StraightLine/framework.h new file mode 100644 index 0000000..36afc12 --- /dev/null +++ b/StraightLine/StraightLine/framework.h @@ -0,0 +1,49 @@ +#pragma once + +#ifndef VC_EXTRALEAN +#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers +#endif + +#include "targetver.h" + +#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit + +// turns off MFC's hiding of some common and often safely ignored warning messages +#define _AFX_ALL_WARNINGS + +#include // MFC core and standard components +#include // MFC extensions + + +#include // MFC Automation classes + + + +#ifndef _AFX_NO_OLE_SUPPORT +#include // MFC support for Internet Explorer 4 Common Controls +#endif +#ifndef _AFX_NO_AFXCMN_SUPPORT +#include // MFC support for Windows Common Controls +#endif // _AFX_NO_AFXCMN_SUPPORT + +#include // MFC support for ribbons and control bars + + + + + + + + + +#ifdef _UNICODE +#if defined _M_IX86 +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") +#elif defined _M_X64 +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") +#else +#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") +#endif +#endif + + diff --git a/StraightLine/StraightLine/pch.cpp b/StraightLine/StraightLine/pch.cpp new file mode 100644 index 0000000..64b7eef --- /dev/null +++ b/StraightLine/StraightLine/pch.cpp @@ -0,0 +1,5 @@ +// pch.cpp: source file corresponding to the pre-compiled header + +#include "pch.h" + +// When you are using pre-compiled headers, this source file is necessary for compilation to succeed. diff --git a/StraightLine/StraightLine/pch.h b/StraightLine/StraightLine/pch.h new file mode 100644 index 0000000..885d5d6 --- /dev/null +++ b/StraightLine/StraightLine/pch.h @@ -0,0 +1,13 @@ +// pch.h: This is a precompiled header file. +// Files listed below are compiled only once, improving build performance for future builds. +// This also affects IntelliSense performance, including code completion and many code browsing features. +// However, files listed here are ALL re-compiled if any one of them is updated between builds. +// Do not add files here that you will be updating frequently as this negates the performance advantage. + +#ifndef PCH_H +#define PCH_H + +// add headers that you want to pre-compile here +#include "framework.h" + +#endif //PCH_H diff --git a/StraightLine/StraightLine/res/StraightLine.ico b/StraightLine/StraightLine/res/StraightLine.ico new file mode 100644 index 0000000000000000000000000000000000000000..d56fbcdfdf6eac0f4727c34770c26689271d96af GIT binary patch literal 67777 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 NK9A-8OQnhX{{?OVn?wKr literal 0 HcmV?d00001 diff --git a/StraightLine/StraightLine/res/StraightLine.rc2 b/StraightLine/StraightLine/res/StraightLine.rc2 new file mode 100644 index 0000000000000000000000000000000000000000..b7e2a3e05848df2af351c43c080e6ebbee95deba GIT binary patch literal 808 zcmdUt&1%9>5QWdW;5%ICQZ&#vDB4A_YN0<{iSep|G=XRrefhTExzQHHh0B)V-ptRL zJ7;F{^_eMCPgmTTf}XTjt6Zfv+M++8)ruP8Ep!87z-jU9)aX5Vtp`m(7T8UStjP^} z#kT{MtHK(oj|8p2bU8JeaS>mcG=KeifmP|_hnX4rToYe|j@&`FdW7+_UNqLd=2~#i zs5;j~clf%D$cyIHlCh^Na|+~_RETJueaa=*@(^FbD)xhr9n;?B@)W3 zOp!#1WH(#|qOcSxMc5h&pg>m;!y%t#KfOCe%H}uo-hKFNtV9Y;jWHZVl{N{sph^HCK|Wo4xyD=TORgrYJ~OyM&XI|Bu>(!isT z@n~3pz8obFF_1fzz4n+7z}{Uk0tJ}|{;`Aq%7{!>k__zzV@&Rh%PV{RJC$KRORDlH zy$`vV-#hd5lGt0NNmgUj{Jprk+Usfm59R*&!vE0u*dmNHU;Ucz1d(}m#1veHj}=^^ zmom(bWg8Be$Nz*%=Ln-)e-7^N^9`O4rUsiD3;WtSS{`kW>s~)>pO=@*w{c)Lw`G}b zs>58-*!s&yH>a}Y<>m77&0H?u&i6$}Ophg(1{gZ%bnOP;)X zCExtAP9g_;IDtbhI&==5L+4aS0o28#_dIy?9=%7e!xHof`UD|CpP;9cfIgrP=mUy? zJ|ait7%a1+bp&?=atv~uZJK4-O9o4~AeTd&o;jp8SJs<<;tdirfi)R%&u5U`j}u zkRSn5Lhb}(Lhgjz3At@KEH`@cC*)7auS=AWKcO}pUod*=pvy*8Z1!mAX>}Q?K_FiM zTL4EOpDnH8pauaPL2)oKTW$sgumrFKKm-!n7640NV8AJ$2w>q06NfbkU`#y)4{aQcBnlXjOG4vfC zVmF6$Y!-!s+4ngN3z6Fkhp`Zfp|HpF9rNqk-xXnC-`p%QjZ&#zKYjYNHM(sF@#8{F zH~H*t)^UMo)nPDxF~)^-Ax$^&DD3L+Oy{q3E5^mRn5K(`eO{eL>`O~acr7iZ>8;C` z>vd&y7>u_dc_~M0J#M#ojyOEq(tY~i!NWcDY)FqvB|QnggwMd^_c@v3xOkuUIlHF} z?{oP*WkK&c2U3GO3I@(J>u7mAx~K3?;uQrS-BXV4DcmLghxe3fo0mH8tp1z*%}lM^ zt<`GXLes9-Yc-C{S}j*(J9dJq#)f1&JNnLt@*&yoPT`?Js?}_FpwJ-IEZxoB^D)&d z@{;QhA!f#5JXEOMYN2QmwAC{EY@AJJcV~BI4MP^M=x6uJ&Xq#ezwEI`j9xE~XJ>pK ebf!9zJj>c|s^4=u%RGFh;Db)((f^2J&wm5njJ}%y literal 0 HcmV?d00001 diff --git a/StraightLine/StraightLine/res/Toolbar.bmp b/StraightLine/StraightLine/res/Toolbar.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d501723c1ceb781cccf04bc42408a2bee6b0eab4 GIT binary patch literal 1078 zcmb_byK2Kg5WFD46)N-_DGd%mbvRHJ@+(`2Y#@z5De^h$T}Yp#;yM?~%&rw%!DZII z_s!1Ct^M-)Tn3AG^p9vgT8;J){9rDyxEsA+?t8wt)o$n@0`>@NK8bGHkdKdb4m#tglAgQo-)Js1!#;+~GSl z37z4Z<|(I?jV44Q_xOeQ!(IFmLY86pVjciLPfC9(?0)$t7hw7W^>>N<@a4LVKPMb~ ze5>=j|BL>!3lPen5hUo~ANKN`l7C&3 z%0PPq3XFRT-e1OO0*EKjOA>DIfd!JKE>l7s8ZOWoALnDl7bEaBMvn{Ll0`lMj_p*2 zeyj@cEB=w(f%+@Ig9SfK=ePQ9c)El>T>d0F2ei{lnHqPg}It<8 literal 0 HcmV?d00001 diff --git a/StraightLine/StraightLine/targetver.h b/StraightLine/StraightLine/targetver.h new file mode 100644 index 0000000..87c0086 --- /dev/null +++ b/StraightLine/StraightLine/targetver.h @@ -0,0 +1,8 @@ +#pragma once + +// Including SDKDDKVer.h defines the highest available Windows platform. + +// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and +// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. + +#include