📄 fmwndlocalizer.h
字号:
#if !defined(AFX_FMWndLocalizer_H__BEE2B24A_76B9_486B_BD78_4734E07FD8E2__INCLUDED_)#define AFX_FMWndLocalizer_H__BEE2B24A_76B9_486B_BD78_4734E07FD8E2__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000// FMWndLocalizer.h : header file///////////////////////////////////////////////////////////////////////////////// RxFMWndLocalizer window#include "FMWnd.h"#include "primitive.h"#include "fusionenum.h"#include <afxmt.h>class RxDib;class RxMPRAgent;class RxLocalizerManager;//class RxySegment;//#include "RxySegment.h"class RxFMWndLocalizer : public RxFMWnd{ enum HITSTATUS {ON_NONE, ON_HLINE, ON_VLINE, ON_CROSS, ON_INCLINED_MOVE, ON_INCLINED_ROTATE, ON_MEASURE}; enum SELECTSTATUS {SEL_NONE, SEL_HLINE, SEL_VLINE, SEL_INCLINED_MOVE, SEL_INCLINED_ROTATE, SEL_FREE_OR_CURVE_DRAW}; enum CURSOR_STATUS {CURSOR_PAN, CURSOR_ZOOM, CURSOR_WINDOWING, CURSOR_FREEDRAW, CURSOR_CURVE, CURSOR_MEASURE_ANGLE, CURSOR_MEASURE_DISTANCE, CURSOR_HORIZONTAL_LINE, CURSOR_VERTICAL_LINE, CURSOR_CROSS_LINE, CURSOR_INCLINED_LINE, CURSOR_MEASURE_MOVE, CURSOR_NONE, CURSOR_MEASURE_CURVE, CURSOR_REFORMAT_MOVE, CURSOR_ANNOTATION, CURSOR_ADD_POINT_TO_PATH, CURSOR_MOVE_OBJECT, CURSOR_ROI_RECTANGLE, CURSOR_ROI_ELLIPSE, CURSOR_ROI_FREEHAND, CURSOR_MEASURE_ANGLE_2LINES};// Constructionpublic: RxFMWndLocalizer(UINT nSeries);// Attributesprivate: int m_iViewMode; //Axial, Coronal, Sagittal int m_iRFCNum; unsigned short *m_pnOriginalImage; RxDib *m_pDib; RxLocalizerManager *m_pLocalizerManager; RxMPRAgent *m_pMPRAgent; CSize m_szWindow; CSize m_szRawImg; CSize m_szDIB; int m_iCursorMode; int m_iHitStatus; int m_iHIndex; int m_iVIndex; CPoint m_ptOld; CPoint m_ptImgCenter; CPoint m_ptImgPanOffset; BOOL m_bUpdate; int m_iWindowingLevel; int m_iWindowingWidth; BOOL m_bNoduleDisplay; BOOL m_bSRG; BOOL m_bLButtonDown; int m_nEdgeDilationFactor;public: static int m_iZoomFactor; static int m_btnMode; static int m_iInterleaving; static BOOL m_bAfterFusion;// Operationspublic: void MakeColorTable(int r1, int r2, int r3, int r4); void ResampleBasicMPR(BOOL bRedraw = TRUE); void Redraw(BOOL bUpdate = TRUE); void Vol2HVIndex(); void ChangeMouseCursor(int iMode); int SetMousePosStatus(CPoint ptMouse); RxPoint3D<double> Img2Vol(CPoint pt); RxPoint2D<double> Img2Vol2D(CPoint ptImg); CPoint Vol2D2Img(RxPoint2D<double> vptVol); CPoint Vol2Img(RxPoint3D<double> vptVol); void AdjustVolIndexFromHIndex(); void AdjustVolIndexFromVIndex(); void AdjustVolIndexFromBothHVIndex(); void CheckCrosslineRange(CPoint& point); int CalcZoomFactor(); void UpdateByZoomChange(int iOldZF, int iNewZF); void InitLocalizer(); int AdjustMouseOffset4Zoom(int iOffset); CCriticalSection* GetOwnCriticalSection(); static void SetZoomFactor(int iZoomFactor) {m_iZoomFactor = iZoomFactor;} void RedrawForFusion(RxDib *pDib); void GetWindowing(int &iWindowingLevel, int& iWindowingWidth); void SetImagePanOffset(CPoint pt); int GetInterleavingMode() {return m_iInterleaving;}; int GetHIndex() {return m_iHIndex;}; int GetVIndex() {return m_iVIndex;}; void SetHIndex(int iIndex) {m_iHIndex = iIndex;}; void SetVIndex(int iIndex) {m_iVIndex = iIndex;}; bool DrawLungBoundary(RxPoint3D<double> ptVol, CDC* pDC, COLORREF color); bool DrawLungBoundary(RxPoint3D<double> ptVol, CDC* pDC, BOOL bRef); bool DrawLungNodule(RxPoint3D<double> ptVol, CDC* pDC, BOOL bRef); bool DrawLungPerfusion(RxPoint3D<double> ptVol, CDC* pDC, BOOL bRef, unsigned short nDensity); void EdgeDilation(int nLevel);// BOOL GetCenterLine() {return m_bCenterLine;}// Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(RxFMWndLocalizer) //}}AFX_VIRTUAL virtual void OnActivateWnd(BOOL bActivate, CWnd *pCurWnd, CWnd *pOldWnd);// Implementationpublic: virtual ~RxFMWndLocalizer(); // Generated message map functionsprotected: //{{AFX_MSG(RxFMWndLocalizer) afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnPaint(); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnMouseMove(UINT nFlags, CPoint point); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); afx_msg void OnLButtonUp(UINT nFlags, CPoint point); afx_msg void OnRButtonDown(UINT nFlags, CPoint point); afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt); afx_msg void OnRButtonUp(UINT nFlags, CPoint point); afx_msg void OnNoduleDisplay(); afx_msg void OnUpdateNoduleDisplay(CCmdUI* pCmdUI); afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); //}}AFX_MSG afx_msg void OnNcTabChanged(); afx_msg void OnLocalInterleaving(UINT nID); afx_msg void OnLocalMin(); afx_msg void OnLocalMax(); afx_msg void OnLocalRestore(); afx_msg void OnNcSliderChanging(); afx_msg void OnNcSliderChanged(); DECLARE_MESSAGE_MAP()};///////////////////////////////////////////////////////////////////////////////{{AFX_INSERT_LOCATION}}// Microsoft Visual C++ will insert additional declarations immediately before the previous line.#endif // !defined(AFX_FMWndLocalizer_H__BEE2B24A_76B9_486B_BD78_4734E07FD8E2__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -