⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mousemod.h

📁 有限元学习研究用源代码(老外的),供科研人员参考
💻 H
字号:
#include <windows.h>


typedef struct tagflag{
    int previousoutline;
    int anchor;
    int movingobject;
    int rotatingobject;
    int reshapeobject;
    int rescaleobject;
    int reconnect;
} flags;

class mousemode{

protected:
    static flags flag;
    static PRPTY property; 
public:

    PRPTY   getproperty(void){return property;};
    void    toggleproperty(PRPTY p){property ^= p;};
    virtual void lbuttondown(HWND, LONG) = 0;
    virtual void rbuttondown(void) = 0;
    virtual void move(HWND, LONG) = 0;
    virtual void ldownmove(HWND, LONG) = 0;
    virtual void lbuttonup(HWND) = 0;
    virtual void rbuttonup(HWND) = 0;
    virtual void presstoolbar(void) = 0;
    virtual void releasetoolbar(void) = 0;
    virtual void ldblclk(HWND, LONG) = 0;
    void setflag(int p){flag.previousoutline = p;};

};

class pointermode:public mousemode{
private:
    RECT enclosure;

public:
    void lbuttondown(HWND, LONG);
    void rbuttondown(void){};
    void move(HWND, LONG);
    void ldownmove(HWND, LONG);
    void lbuttonup(HWND);
    void rbuttonup(HWND){};
    void presstoolbar(void);
    void releasetoolbar(void);
    void ldblclk(HWND, LONG);
};

class moveobjectmode:public mousemode{
private:
    block  *singleblock;
    dPOINT gcenter, offcenter, ploc;
public:
    void lbuttondown(HWND, LONG);
    void rbuttondown(void);
    void move(HWND, LONG);
    void ldownmove(HWND, LONG);
    void lbuttonup(HWND){};
    void rbuttonup(HWND){};
    void presstoolbar(void);
    void releasetoolbar(void);
    void ldblclk(HWND, LONG);
};

class rotateobjectmode:public mousemode{
private:
    block  *singleblock;
    dPOINT lever, pivot;
    dVECTOR v1, v2;
    double psin, pcos;
public:
    void lbuttondown(HWND, LONG);
    void rbuttondown(void);
    void move(HWND, LONG);
    void ldownmove(HWND, LONG);
    void lbuttonup(HWND){};
    void rbuttonup(HWND){};
    void presstoolbar(void);
    void releasetoolbar(void);
    void ldblclk(HWND, LONG);

};

class modifymode:public mousemode{
private:
    RECT enclosure;

public:
    void lbuttondown(HWND, LONG);
    void rbuttondown(void){};
    void move(HWND, LONG);
    void ldownmove(HWND, LONG);
    void lbuttonup(HWND);
    void rbuttonup(HWND){};
    void presstoolbar(void);
    void releasetoolbar(void);
    void ldblclk(HWND, LONG);
};


class enquirymode:public mousemode{
private:
    RECT enclosure;

public:
    void lbuttondown(HWND, LONG);
    void rbuttondown(void){};
    void move(HWND, LONG);
    void ldownmove(HWND, LONG){};
    void lbuttonup(HWND){};
    void rbuttonup(HWND){};
    void presstoolbar(void);
    void releasetoolbar(void);
    void ldblclk(HWND, LONG){};
};

class addmode:public mousemode{
private:
    dPOINT ploc, center;
public:
    void lbuttondown(HWND, LONG);
    void rbuttondown(void);
    void move(HWND, LONG);
    void ldownmove(HWND, LONG){};
    void lbuttonup(HWND){};
    void rbuttonup(HWND){};
    void presstoolbar(void){};
    void releasetoolbar(void);
    void setcenter(dPOINT ct){
      center.x = ct.x;
      center.y = ct.y;
    }
    void ldblclk(HWND, LONG){};

};


class resizeobjectmode:public mousemode{
private:
    block   *singleblock;
    dPOINT  pivot, hookedloc;
    dPOINT  pcorner;
    dVECTOR v1, v2;
    int     hookedcorner;
    double  refscale, pfactor;
public:
    resizeobjectmode(){singleblock = NULL;};
    void lbuttondown(HWND, LONG);
    void rbuttondown(void);
    void move(HWND, LONG);
    void ldownmove(HWND, LONG);
    void lbuttonup(HWND){};
    void rbuttonup(HWND){};
    void presstoolbar(void);
    void releasetoolbar(void);
    void ldblclk(HWND, LONG);
    int  hook(void){return hookedcorner;};
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -