82 lines
1.9 KiB
C
82 lines
1.9 KiB
C
![]() |
#pragma once
|
|||
|
|
|||
|
/** @class DragForm
|
|||
|
* @brief ģ<EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD>ק<EFBFBD><EFBFBD><EFBFBD>ܵİ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>壬<EFBFBD><EFBFBD>Ϊʹ<EFBFBD><EFBFBD><EFBFBD>˵ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @copyright (c) 2016, NetEase Inc. All rights reserved
|
|||
|
* @author Redrain
|
|||
|
* @date 2019/3/20
|
|||
|
*/
|
|||
|
class BitmapControl;
|
|||
|
class DragForm : public ui::WindowImplBase
|
|||
|
{
|
|||
|
public:
|
|||
|
/**
|
|||
|
* <EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̹<EFBFBD><EFBFBD>ӵĻص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param[in] nCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param[in] wParam <EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param[in] lParam <EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @return LRESULT <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
static LRESULT CALLBACK LowLevelMouseProc(int nCode, WPARAM wParam, LPARAM lParam);
|
|||
|
|
|||
|
/**
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ק<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param[in] bitmap <EFBFBD><EFBFBD>קЧ<EFBFBD><EFBFBD>λͼ
|
|||
|
* @param[in] pt_offset <EFBFBD><EFBFBD>קͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><EFBFBD>
|
|||
|
* @return void <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
*/
|
|||
|
static void CreateCustomDragImage(HBITMAP bitmap, POINT pt_offset);
|
|||
|
|
|||
|
/**
|
|||
|
* <EFBFBD>ر<EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ק<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @return void <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
*/
|
|||
|
static void CloseCustomDragImage();
|
|||
|
|
|||
|
public:
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>麯<EFBFBD><E9BAAF>
|
|||
|
virtual std::wstring GetSkinFolder() override;
|
|||
|
virtual std::wstring GetSkinFile() override;
|
|||
|
virtual std::wstring GetWindowClassName() const override;
|
|||
|
virtual UINT GetClassStyle() const override;
|
|||
|
|
|||
|
/**
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ݿؼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>
|
|||
|
* @param[in] pstrClass <EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @return Control* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀؼ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
virtual ui::Control* CreateControl(const std::wstring& pstrClass) override;
|
|||
|
|
|||
|
/**
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @return void <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
*/
|
|||
|
virtual void InitWindow() override;
|
|||
|
|
|||
|
private:
|
|||
|
DragForm();
|
|||
|
~DragForm(){};
|
|||
|
|
|||
|
/**
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>קЧ<EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param[in] bitmap <EFBFBD><EFBFBD>קЧ<EFBFBD><EFBFBD>λͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param[in] pt_offset <EFBFBD><EFBFBD>קͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><EFBFBD>
|
|||
|
* @return void <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
*/
|
|||
|
static DragForm* CreateDragForm(HBITMAP bitmap, POINT pt_offset);
|
|||
|
|
|||
|
/**
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>קЧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λͼ
|
|||
|
* @param[in] bitmap <EFBFBD><EFBFBD>קЧ<EFBFBD><EFBFBD>λͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @return void <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
*/
|
|||
|
void SetDragImage(HBITMAP bitmap);
|
|||
|
public:
|
|||
|
static const LPCTSTR kClassName;
|
|||
|
|
|||
|
private:
|
|||
|
static HHOOK s_mouse_hook;
|
|||
|
static DragForm *s_drag_form;
|
|||
|
static POINT s_point_offset;
|
|||
|
BitmapControl *bitmap_control_;
|
|||
|
};
|