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 + -
显示快捷键?