📄 csplitterwnd.h
字号:
// $Id: CSplitterWnd.h,v 1.8 2002/04/02 00:28:52 genta Exp $
/*! @file
@brief 分割線ウィンドウクラス
@author Norio Nakatani
@date 1998/07/07 新規作成
$Revision: 1.8 $
*/
/*
Copyright (C) 1998-2001, Norio Nakatani
Copyright (C) 2002, aroka
This source code is designed for sakura editor.
Please contact the copyright holder to use this code for other purpose.
*/
class CSplitterWnd;
#ifndef _CSPLITTERWND_H_
#define _CSPLITTERWND_H_
#include "CWnd.h"
#include "CShareData.h"
/*-----------------------------------------------------------------------
クラスの宣言
-----------------------------------------------------------------------*/
#define MAXCOUNTOFVIEW 4
/*!
@brief 分割線ウィンドウクラス
4分割ウィンドウの管理と分割線の描画を行う。
@date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
*/
class SAKURA_CORE_API CSplitterWnd : public CWnd
{
public:
/*
|| Constructors
*/
CSplitterWnd();
~CSplitterWnd();
private: // 2002/2/3 aroka
/*
|| Attributes & Operations
*/
char* m_pszClassName; /* クラス名 */
DLLSHAREDATA* m_pShareData;
void* m_pCEditWnd;
int m_nAllSplitRows; /* 分割行数 */
int m_nAllSplitCols; /* 分割桁数 */
int m_nVSplitPos; /* 垂直分割位置 */
int m_nHSplitPos; /* 水平分割位置 */
HWND m_ChildWndArr[MAXCOUNTOFVIEW]; /* 子ウィンドウ配列 */
HCURSOR m_hcurOld; /* もとのマウスカーソル */
int m_bDragging; /* 分割バーをドラッグ中か */
int m_nDragPosX; /* ドラッグ位置X */
int m_nDragPosY; /* ドラッグ位置Y */
int m_nActivePane; /* アクティブなペイン */
public: // 2002/2/3 aroka
HWND Create( HINSTANCE, HWND, void* pCEditWnd ); /* 初期化 */
void SetChildWndArr( HWND* ); /* 子ウィンドウの設定 */
void DoSplit( int, int ); /* ウィンドウの分割 */
void SetActivePane( int ); /* アクティブペインの設定 */
int GetPrevPane( void ); /* 前のペインを返す */
int GetNextPane( void ); /* 次のペインを返す */
int GetFirstPane( void ); /* 最初のペインを返す */
int GetLastPane( void ); /* 最後のペインを返す */
void VSplitOnOff( void ); /* 縦分割ON/OFF */
void HSplitOnOff( void ); /* 横分割ON/OFF */
void VHSplitOnOff( void ); /* 縦横分割ON/OFF */
// LRESULT DispatchEvent( HWND, UINT, WPARAM, LPARAM ); /* ダイアログのメッセージ処理 */
int GetAllSplitRows(){ return m_nAllSplitRows;} // 2002/2/3 aroka
int GetAllSplitCols(){ return m_nAllSplitCols;} // 2002/2/3 aroka
protected:
/* 仮想関数 */
virtual LRESULT DispatchEvent_WM_APP( HWND, UINT, WPARAM, LPARAM );/* アプリケーション定義のメッセージ(WM_APP <= msg <= 0xBFFF) */
/* 仮想関数 メッセージ処理 詳しくは実装を参照 */
virtual LRESULT OnSize( HWND, UINT, WPARAM, LPARAM ); /* ウィンドウサイズの変更処理 */
virtual LRESULT OnPaint( HWND, UINT, WPARAM, LPARAM ); /* 描画処理 */
virtual LRESULT OnMouseMove( HWND, UINT, WPARAM, LPARAM ); /* マウス移動時の処理 */
virtual LRESULT OnLButtonDown( HWND, UINT, WPARAM, LPARAM ); /* マウス左ボタン押下時の処理 */
virtual LRESULT OnLButtonUp( HWND, UINT, WPARAM, LPARAM ); /* マウス左ボタン解放時の処理 */
virtual LRESULT OnLButtonDblClk( HWND, UINT, WPARAM, LPARAM ); /* マウス左ボタンダブルクリック時の処理 */
/*
|| 実装ヘルパ関数
*/
void DrawFrame( HDC , RECT* ); /* 分割フレーム描画 */
int HitTestSplitter( int , int ); /* 分割バーへのヒットテスト */
void DrawSplitter( int , int , int ); /* 分割トラッカーの表示 */
};
///////////////////////////////////////////////////////////////////////
#endif /* _CSPLITTERWND_H_ */
/*[EOF]*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -