win32toolkit.cpp

来自「这是VCF框架的代码」· C++ 代码 · 共 212 行

CPP
212
字号
//Win32ToolKit.cpp

/*
Copyright 2000-2004 The VCF Project.
Please see License.txt in the top level directory
where you installed the VCF.
*/


#include "vcf/ApplicationKit/ApplicationKit.h"
#include "vcf/ApplicationKit/ApplicationKitPrivate.h"
#include "vcf/ApplicationKit/Win32ToolKit.h"
#include "vcf/ApplicationKit/Win32Application.h"
#include "vcf/ApplicationKit/Win32Edit.h"
#include "vcf/ApplicationKit/Win32Tree.h"
#include "vcf/ApplicationKit/ListViewControl.h"
#include "vcf/ApplicationKit/Win32Listview.h"
#include "vcf/ApplicationKit/Win32Dialog.h"
#include "vcf/ApplicationKit/Win32MenuItem.h"
#include "vcf/ApplicationKit/Win32MenuBar.h"
#include "vcf/ApplicationKit/Win32Button.h"
#include "vcf/ApplicationKit/Win32ControlContext.h"
#include "vcf/ApplicationKit/Win32FileOpenDialog.h"
#include "vcf/ApplicationKit/Win32FileSaveDialog.h"
#include "vcf/ApplicationKit/Win32ColorDialog.h"
#include "vcf/ApplicationKit/Win32FolderBrowseDialog.h"
#include "vcf/ApplicationKit/Win32DropTargetPeer.h"
#include "vcf/ApplicationKit/Win32Clipboard.h"
#include "vcf/ApplicationKit/Win32PopupMenu.h"
#include "vcf/ApplicationKit/Win32FontDialog.h"
#include "vcf/ApplicationKit/Win32Desktop.h"
#include "vcf/ApplicationKit/Win32ScrollPeer.h"
#include "vcf/ApplicationKit/Win32CursorPeer.h"
#include "vcf/ApplicationKit/LightweightComponent.h"
#include "vcf/ApplicationKit/Win32Component.h"
#include "vcf/ApplicationKit/Win32Window.h"
#include "vcf/ApplicationKit/Win32DragDropPeer.h"
#include "vcf/ApplicationKit/Win32COMUtils.h"
#include "vcf/ApplicationKit/Win32Toolbar.h"
#include "vcf/ApplicationKit/Toolbar.h"
#include "vcf/ApplicationKit/SystemTrayPeer.h"

#include "vcf/FoundationKit/ResourceBundlePeer.h"
#include "vcf/FoundationKit/Win32ResourceBundle.h"
#include "vcf/GraphicsKit/GraphicsResourceBundlePeer.h"
#include "vcf/ApplicationKit/Win32AppResourceBundle.h"

#include <shellapi.h>
#include "vcf/ApplicationKit/Win32SystemTrayPeer.h"

//printing
#include "vcf/GraphicsKit/PrintSessionPeer.h"
#include "vcf/GraphicsKit/Win32PrintSession.h"
#include "vcf/ApplicationKit/Win32PrintDialog.h"


#include "vcf/ApplicationKit/Win32TextPeer.h"

#include "vcf/ApplicationKit/MenuManagerPeer.h"
#include "vcf/ApplicationKit/Win32MenuManagerPeer.h"



#include "thirdparty/win32/Microsoft/htmlhelp.h"

#include "vcf/GraphicsKit/Win32VisualStylesWrapper.h"



typedef HWND  (WINAPI *HtmlHelpW_Func)(HWND hwndCaller, LPCWSTR pszFile, UINT uCommand, DWORD_PTR dwData );
typedef HWND (WINAPI *HtmlHelpA_Func)(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData );




static HtmlHelpW_Func HtmlHelp_W = NULL;
static HtmlHelpA_Func HtmlHelp_A = NULL;
static HMODULE HtmlHelpLibHandle = NULL;




static HWND LastHTMLHelpWnd = NULL;

using namespace VCF;
using namespace VCFWin32;


#define TOOLTIP_TIMERID					30565
#define TOOLTIP_TIMEOUT_TIMERID			30566

static UINT ToolTipTimerID = 0;
static UINT ToolTipTimoutTimerID = 0;

static UINT VCF_POST_EVENT = 0;

HINSTANCE Win32ToolKit_toolkitHInstance = NULL;
static HHOOK Win32ToolKit_mouseHook = NULL;
static HHOOK Win32ToolKit_kbHook = NULL;

#ifndef _LIB //DLL Linkage...

extern "C" BOOL APIENTRY DllMain( HANDLE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved )
{
    switch ( ul_reason_for_call ) {
		case DLL_PROCESS_ATTACH:  {
			Win32ToolKit_toolkitHInstance = (HINSTANCE)hModule;
		}
		break;

		case DLL_THREAD_ATTACH: {

		}
		break;

		case DLL_THREAD_DETACH:  {

		}
		break;

		case DLL_PROCESS_DETACH:  {

		}
		break;
    }
    return TRUE;
}

#endif


















using namespace VCFWin32;



unsigned long Win32UIUtils::translateKeyMask( UINT win32KeyMask )
{
	unsigned long result = VCF::kmUndefined;

	if ( (win32KeyMask & MK_CONTROL) != 0 ){
		result |= VCF::kmCtrl;
	}

	if ( (win32KeyMask & MK_SHIFT) != 0 ){
		result |= VCF::kmShift;
	}

	if ( ::GetAsyncKeyState( VK_MENU ) < 0 ) {
		result |= VCF::kmAlt;
	}

	return result;
}

unsigned long Win32UIUtils::translateButtonMask( UINT win32ButtonMask )
{
	unsigned long result = VCF::mbmUndefined;

	if ( (win32ButtonMask & MK_LBUTTON) != 0 ){
		result |= VCF::mbmLeftButton;
	}

	if ( (win32ButtonMask & MK_MBUTTON) != 0 ){
		result |= VCF::mbmMiddleButton;
	}

	if ( (win32ButtonMask & MK_RBUTTON) != 0 ){
		result |= VCF::mbmRightButton;
	}

	return result;
}

DWORD Win32UIUtils::translateStyle( unsigned long style )
{
	DWORD result = 0;
	//if ( (style & ) > 0 ){

	//};
	return result;
}

DWORD Win32UIUtils::translateExStyle( unsigned long style )
{
	DWORD result = 0;

	return result;
}

/**
*translates the Win32 key code into an actually usable
*structure.
*Specifies the repeat count, scan code, extended-key flag, context code, previous key-state flag,
*and transition-state flag, as shown in the following table.
*Value Description
*	0

⌨️ 快捷键说明

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