<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">\r
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"\r
+ xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">\r
<assemblyIdentity\r
version="1.0.0.0"\r
processorArchitecture="*"\r
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />\r
</application> \r
</compatibility>\r
+<asmv3:application>\r
+ <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">\r
+ <dpiAware>true</dpiAware>\r
+ </asmv3:windowsSettings>\r
+</asmv3:application>\r
</assembly>\r
\r
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">\r
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"\r
+ xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">\r
<assemblyIdentity\r
version="1.0.0.0"\r
processorArchitecture="*"\r
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />\r
</application> \r
</compatibility>\r
+<asmv3:application>\r
+ <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">\r
+ <dpiAware>true</dpiAware>\r
+ </asmv3:windowsSettings>\r
+</asmv3:application>\r
</assembly>\r
\r
void FreeTaskbarList3();\r
int IsTaskbarList3Loaded();\r
void UpdateTaskbarProgress();\r
+// 高DPI対応\r
+int AskToolWinHeight(void);\r
\r
/*===== filelist.c =====*/\r
\r
#if defined(HAVE_TANDEM)\r
void CalcExtentSize(TRANSPACKET *Pkt, LONGLONG Size);\r
#endif\r
+// 高DPI対応\r
+void QueryDisplayDPI();\r
+int CalcPixelX(int x);\r
+int CalcPixelY(int y);\r
+HBITMAP ResizeBitmap(HBITMAP hBitmap, int UnitSizeX, int UnitSizeY);\r
\r
/*===== dlgsize.c =====*/\r
\r
\r
/*===== ローカル側のリストビュー =====*/\r
\r
+ // 高DPI対応\r
+// hWndListLocal = CreateWindowEx(/*WS_EX_STATICEDGE*/WS_EX_CLIENTEDGE,\r
+// WC_LISTVIEWA, NULL,\r
+// WS_CHILD | /*WS_BORDER | */LVS_REPORT | LVS_SHOWSELALWAYS,\r
+// 0, TOOLWIN_HEIGHT*2, LocalWidth, ListHeight,\r
+// GetMainHwnd(), (HMENU)1500, hInst, NULL);\r
hWndListLocal = CreateWindowEx(/*WS_EX_STATICEDGE*/WS_EX_CLIENTEDGE,\r
WC_LISTVIEWA, NULL,\r
WS_CHILD | /*WS_BORDER | */LVS_REPORT | LVS_SHOWSELALWAYS,\r
- 0, TOOLWIN_HEIGHT*2, LocalWidth, ListHeight,\r
+ 0, AskToolWinHeight()*2, LocalWidth, ListHeight,\r
GetMainHwnd(), (HMENU)1500, hInst, NULL);\r
\r
if(hWndListLocal != NULL)\r
\r
/*===== ホスト側のリストビュー =====*/\r
\r
+ // 高DPI対応\r
+// hWndListRemote = CreateWindowEx(/*WS_EX_STATICEDGE*/WS_EX_CLIENTEDGE,\r
+// WC_LISTVIEWA, NULL,\r
+// WS_CHILD | /*WS_BORDER | */LVS_REPORT | LVS_SHOWSELALWAYS,\r
+// LocalWidth + SepaWidth, TOOLWIN_HEIGHT*2, RemoteWidth, ListHeight,\r
+// GetMainHwnd(), (HMENU)1500, hInst, NULL);\r
hWndListRemote = CreateWindowEx(/*WS_EX_STATICEDGE*/WS_EX_CLIENTEDGE,\r
WC_LISTVIEWA, NULL,\r
WS_CHILD | /*WS_BORDER | */LVS_REPORT | LVS_SHOWSELALWAYS,\r
- LocalWidth + SepaWidth, TOOLWIN_HEIGHT*2, RemoteWidth, ListHeight,\r
+ LocalWidth + SepaWidth, AskToolWinHeight()*2, RemoteWidth, ListHeight,\r
GetMainHwnd(), (HMENU)1500, hInst, NULL);\r
\r
if(hWndListRemote != NULL)\r
HANDLE ChangeNotification = INVALID_HANDLE_VALUE;\r
// タスクバー進捗表示\r
static ITaskbarList3* pTaskbarList3;\r
+// 高DPI対応\r
+int ToolWinHeight;\r
\r
\r
/*===== グローバルなワーク =====*/\r
int masterpass;\r
// ポータブル版判定\r
int ImportPortable;\r
+ // 高DPI対応\r
+ int i;\r
\r
sts = FFFTP_FAIL;\r
\r
_mkdir(TmpPath);\r
SetYenTail(TmpPath);\r
\r
+ // 高DPI対応\r
+ WinWidth = CalcPixelX(WinWidth);\r
+ WinHeight = CalcPixelY(WinHeight);\r
+ LocalWidth = CalcPixelX(LocalWidth);\r
+ TaskHeight = CalcPixelY(TaskHeight);\r
+ for(i = 0; i < sizeof(LocalTabWidth) / sizeof(int); i++)\r
+ LocalTabWidth[i] = CalcPixelX(LocalTabWidth[i]);\r
+ for(i = 0; i < sizeof(RemoteTabWidth) / sizeof(int); i++)\r
+ RemoteTabWidth[i] = CalcPixelX(RemoteTabWidth[i]);\r
+\r
GetModuleFileName(NULL, HelpPath, FMAX_PATH);\r
strcpy(GetFileName(HelpPath), "ffftp.chm");\r
\r
wClass.hIconSm = NULL;\r
RegisterClassEx(&wClass);\r
\r
+ // 高DPI対応\r
+// ToolWinHeight = TOOLWIN_HEIGHT;\r
+ ToolWinHeight = CalcPixelY(16) + 12;\r
+\r
if(SaveWinPos == NO)\r
{\r
WinPosX = CW_USEDEFAULT;\r
SendMessage(GetSbarWnd(), WM_SIZE, SIZE_RESTORED, MAKELPARAM(Rect.right, Rect.bottom));\r
\r
CalcWinSize();\r
- SetWindowPos(GetMainTbarWnd(), 0, 0, 0, Rect.right, TOOLWIN_HEIGHT, SWP_NOACTIVATE | SWP_NOZORDER);\r
- SetWindowPos(GetLocalTbarWnd(), 0, 0, TOOLWIN_HEIGHT, LocalWidth, TOOLWIN_HEIGHT, SWP_NOACTIVATE | SWP_NOZORDER);\r
- SetWindowPos(GetRemoteTbarWnd(), 0, LocalWidth + SepaWidth, TOOLWIN_HEIGHT, RemoteWidth, TOOLWIN_HEIGHT, SWP_NOACTIVATE | SWP_NOZORDER);\r
+ // 高DPI対応\r
+// SetWindowPos(GetMainTbarWnd(), 0, 0, 0, Rect.right, TOOLWIN_HEIGHT, SWP_NOACTIVATE | SWP_NOZORDER);\r
+// SetWindowPos(GetLocalTbarWnd(), 0, 0, TOOLWIN_HEIGHT, LocalWidth, TOOLWIN_HEIGHT, SWP_NOACTIVATE | SWP_NOZORDER);\r
+// SetWindowPos(GetRemoteTbarWnd(), 0, LocalWidth + SepaWidth, TOOLWIN_HEIGHT, RemoteWidth, TOOLWIN_HEIGHT, SWP_NOACTIVATE | SWP_NOZORDER);\r
+ SetWindowPos(GetMainTbarWnd(), 0, 0, 0, Rect.right, AskToolWinHeight(), SWP_NOACTIVATE | SWP_NOZORDER);\r
+ SetWindowPos(GetLocalTbarWnd(), 0, 0, AskToolWinHeight(), LocalWidth, AskToolWinHeight(), SWP_NOACTIVATE | SWP_NOZORDER);\r
+ SetWindowPos(GetRemoteTbarWnd(), 0, LocalWidth + SepaWidth, AskToolWinHeight(), RemoteWidth, AskToolWinHeight(), SWP_NOACTIVATE | SWP_NOZORDER);\r
SendMessage(GetLocalTbarWnd(), TB_GETITEMRECT, 3, (LPARAM)&Rect);\r
SetWindowPos(GetLocalHistHwnd(), 0, Rect.right, Rect.top, LocalWidth - Rect.right, 200, SWP_NOACTIVATE | SWP_NOZORDER);\r
SendMessage(GetRemoteTbarWnd(), TB_GETITEMRECT, 3, (LPARAM)&Rect);\r
SetWindowPos(GetRemoteHistHwnd(), 0, Rect.right, Rect.top, RemoteWidth - Rect.right, 200, SWP_NOACTIVATE | SWP_NOZORDER);\r
- SetWindowPos(GetLocalHwnd(), 0, 0, TOOLWIN_HEIGHT*2, LocalWidth, ListHeight, SWP_NOACTIVATE | SWP_NOZORDER);\r
- SetWindowPos(GetRemoteHwnd(), 0, LocalWidth + SepaWidth, TOOLWIN_HEIGHT*2, RemoteWidth, ListHeight, SWP_NOACTIVATE | SWP_NOZORDER);\r
- SetWindowPos(GetTaskWnd(), 0, 0, TOOLWIN_HEIGHT*2+ListHeight+SepaWidth, ClientWidth, TaskHeight, SWP_NOACTIVATE | SWP_NOZORDER);\r
+ // 高DPI対応\r
+// SetWindowPos(GetLocalHwnd(), 0, 0, TOOLWIN_HEIGHT*2, LocalWidth, ListHeight, SWP_NOACTIVATE | SWP_NOZORDER);\r
+// SetWindowPos(GetRemoteHwnd(), 0, LocalWidth + SepaWidth, TOOLWIN_HEIGHT*2, RemoteWidth, ListHeight, SWP_NOACTIVATE | SWP_NOZORDER);\r
+// SetWindowPos(GetTaskWnd(), 0, 0, TOOLWIN_HEIGHT*2+ListHeight+SepaWidth, ClientWidth, TaskHeight, SWP_NOACTIVATE | SWP_NOZORDER);\r
+ SetWindowPos(GetLocalHwnd(), 0, 0, AskToolWinHeight()*2, LocalWidth, ListHeight, SWP_NOACTIVATE | SWP_NOZORDER);\r
+ SetWindowPos(GetRemoteHwnd(), 0, LocalWidth + SepaWidth, AskToolWinHeight()*2, RemoteWidth, ListHeight, SWP_NOACTIVATE | SWP_NOZORDER);\r
+ SetWindowPos(GetTaskWnd(), 0, 0, AskToolWinHeight()*2+ListHeight+SepaWidth, ClientWidth, TaskHeight, SWP_NOACTIVATE | SWP_NOZORDER);\r
#endif\r
\r
return;\r
\r
GetClientRect(GetSbarWnd(), &Rect);\r
\r
- ListHeight = max1(0, ClientHeight - TOOLWIN_HEIGHT * 2 - TaskHeight - SepaWidth - Rect.bottom);\r
+ // 高DPI対応\r
+// ListHeight = max1(0, ClientHeight - TOOLWIN_HEIGHT * 2 - TaskHeight - SepaWidth - Rect.bottom);\r
+ ListHeight = max1(0, ClientHeight - AskToolWinHeight() * 2 - TaskHeight - SepaWidth - Rect.bottom);\r
\r
return;\r
}\r
\r
if((Resizing == RESIZE_OFF) && (Keys == 0))\r
{\r
+ // 高DPI対応\r
+// if((x >= LocalWidth) && (x <= LocalWidth + SepaWidth) &&\r
+// (y > TOOLWIN_HEIGHT) && (y < (TOOLWIN_HEIGHT * 2 + ListHeight)))\r
if((x >= LocalWidth) && (x <= LocalWidth + SepaWidth) &&\r
- (y > TOOLWIN_HEIGHT) && (y < (TOOLWIN_HEIGHT * 2 + ListHeight)))\r
+ (y > AskToolWinHeight()) && (y < (AskToolWinHeight() * 2 + ListHeight)))\r
{\r
/* 境界位置変更用カーソルに変更 */\r
SetCapture(hWndFtp);\r
Resizing = RESIZE_PREPARE;\r
ResizePos = RESIZE_HPOS;\r
}\r
- else if((y >= TOOLWIN_HEIGHT*2+ListHeight) && (y <= TOOLWIN_HEIGHT*2+ListHeight+SepaWidth))\r
+ // 高DPI対応\r
+// else if((y >= TOOLWIN_HEIGHT*2+ListHeight) && (y <= TOOLWIN_HEIGHT*2+ListHeight+SepaWidth))\r
+ else if((y >= AskToolWinHeight()*2+ListHeight) && (y <= AskToolWinHeight()*2+ListHeight+SepaWidth))\r
{\r
/* 境界位置変更用カーソルに変更 */\r
SetCapture(hWndFtp);\r
GetClientRect(GetSbarWnd(), &Rect1);\r
Rect.left += GetSystemMetrics(SM_CXFRAME);\r
Rect.right -= GetSystemMetrics(SM_CXFRAME);\r
- Rect.top += TOOLWIN_HEIGHT*2 + GetSystemMetrics(SM_CYMENU) + GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CYFRAME);\r
+ // 高DPI対応\r
+// Rect.top += TOOLWIN_HEIGHT*2 + GetSystemMetrics(SM_CYMENU) + GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CYFRAME);\r
+ Rect.top += AskToolWinHeight()*2 + GetSystemMetrics(SM_CYMENU) + GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CYFRAME);\r
Rect.bottom -= GetSystemMetrics(SM_CYFRAME) + Rect1.bottom;\r
ClipCursor(&Rect);\r
}\r
else\r
{\r
+ // 高DPI対応\r
+// if(((ResizePos == RESIZE_HPOS) &&\r
+// ((x < LocalWidth) || (x > LocalWidth + SepaWidth) ||\r
+// (y <= TOOLWIN_HEIGHT) || (y >= (TOOLWIN_HEIGHT * 2 + ListHeight)))) ||\r
+// ((ResizePos == RESIZE_VPOS) &&\r
+// ((y < TOOLWIN_HEIGHT*2+ListHeight) || (y > TOOLWIN_HEIGHT*2+ListHeight+SepaWidth))))\r
if(((ResizePos == RESIZE_HPOS) &&\r
((x < LocalWidth) || (x > LocalWidth + SepaWidth) ||\r
- (y <= TOOLWIN_HEIGHT) || (y >= (TOOLWIN_HEIGHT * 2 + ListHeight)))) ||\r
+ (y <= AskToolWinHeight()) || (y >= (AskToolWinHeight() * 2 + ListHeight)))) ||\r
((ResizePos == RESIZE_VPOS) &&\r
- ((y < TOOLWIN_HEIGHT*2+ListHeight) || (y > TOOLWIN_HEIGHT*2+ListHeight+SepaWidth))))\r
+ ((y < AskToolWinHeight()*2+ListHeight) || (y > AskToolWinHeight()*2+ListHeight+SepaWidth))))\r
{\r
/* 元のカーソルに戻す */\r
ReleaseCapture();\r
pTaskbarList3->lpVtbl->SetProgressState(pTaskbarList3, GetMainHwnd(), TBPF_NOPROGRESS);\r
}\r
\r
+// 高DPI対応\r
+int AskToolWinHeight(void)\r
+{\r
+ return(ToolWinHeight);\r
+}\r
+\r
\r
static DIALOGDATA *DialogData; /* 入力ダイアログデータ */\r
static int HelpPage;\r
+// 高DPI対応\r
+static int DisplayDPIX;\r
+static int DisplayDPIY;\r
\r
\r
\r
}\r
}\r
#endif\r
+\r
+// 高DPI対応\r
+void QueryDisplayDPI()\r
+{\r
+ HDC hDC;\r
+ if(DisplayDPIX == 0)\r
+ {\r
+ if(hDC = GetDC(NULL))\r
+ {\r
+ DisplayDPIX = GetDeviceCaps(hDC, LOGPIXELSX);\r
+ DisplayDPIY = GetDeviceCaps(hDC, LOGPIXELSY);\r
+ ReleaseDC(NULL, hDC);\r
+ }\r
+ }\r
+}\r
+\r
+int CalcPixelX(int x)\r
+{\r
+ QueryDisplayDPI();\r
+ return (x * DisplayDPIX + 96 / 2) / 96;\r
+}\r
+\r
+int CalcPixelY(int y)\r
+{\r
+ QueryDisplayDPI();\r
+ return (y * DisplayDPIY + 96 / 2) / 96;\r
+}\r
+\r
+HBITMAP ResizeBitmap(HBITMAP hBitmap, int UnitSizeX, int UnitSizeY)\r
+{\r
+ HBITMAP hDstBitmap;\r
+ HDC hDC;\r
+ HDC hSrcDC;\r
+ HDC hDstDC;\r
+ BITMAP Bitmap;\r
+ HGDIOBJ hSrcOld;\r
+ HGDIOBJ hDstOld;\r
+ hDstBitmap = NULL;\r
+ if(hDC = GetDC(NULL))\r
+ {\r
+ if(hSrcDC = CreateCompatibleDC(hDC))\r
+ {\r
+ if(hDstDC = CreateCompatibleDC(hDC))\r
+ {\r
+ if(GetObject(hBitmap, sizeof(BITMAP), &Bitmap) > 0)\r
+ {\r
+ if(hDstBitmap = CreateCompatibleBitmap(hDC, CalcPixelX((Bitmap.bmWidth / UnitSizeX) * UnitSizeX), CalcPixelY((Bitmap.bmHeight / UnitSizeY) * UnitSizeY)))\r
+ {\r
+ hSrcOld = SelectObject(hSrcDC, hBitmap);\r
+ hDstOld = SelectObject(hDstDC, hDstBitmap);\r
+ SetStretchBltMode(hDstDC, HALFTONE);\r
+ StretchBlt(hDstDC, 0, 0, CalcPixelX((Bitmap.bmWidth / UnitSizeX) * UnitSizeX), CalcPixelY((Bitmap.bmHeight / UnitSizeY) * UnitSizeY), hSrcDC, 0, 0, Bitmap.bmWidth, Bitmap.bmHeight, SRCCOPY);\r
+ SelectObject(hSrcDC, hSrcOld);\r
+ SelectObject(hDstDC, hDstOld);\r
+ }\r
+ }\r
+ DeleteDC(hDstDC);\r
+ }\r
+ DeleteDC(hSrcDC);\r
+ }\r
+ ReleaseDC(NULL, hDC);\r
+ }\r
+ return hDstBitmap;\r
+}\r
+\r
int Sts;\r
\r
Sts = FFFTP_FAIL;\r
+ // 高DPI対応\r
+// hWndTask = CreateWindowEx(/*WS_EX_STATICEDGE*/WS_EX_CLIENTEDGE,\r
+// "EDIT", NULL,\r
+// WS_CHILD | WS_BORDER | ES_AUTOVSCROLL | WS_VSCROLL | ES_MULTILINE | ES_READONLY | WS_CLIPSIBLINGS,\r
+// 0, TOOLWIN_HEIGHT*2+ListHeight+SepaWidth, ClientWidth, TaskHeight,\r
+// hWnd, (HMENU)1500, hInst, NULL);\r
hWndTask = CreateWindowEx(/*WS_EX_STATICEDGE*/WS_EX_CLIENTEDGE,\r
"EDIT", NULL,\r
WS_CHILD | WS_BORDER | ES_AUTOVSCROLL | WS_VSCROLL | ES_MULTILINE | ES_READONLY | WS_CLIPSIBLINGS,\r
- 0, TOOLWIN_HEIGHT*2+ListHeight+SepaWidth, ClientWidth, TaskHeight,\r
+ 0, AskToolWinHeight()*2+ListHeight+SepaWidth, ClientWidth, TaskHeight,\r
hWnd, (HMENU)1500, hInst, NULL);\r
\r
if(hWndTask != NULL)\r
char *Pos;\r
int Tmp2;\r
DWORD NoDrives;\r
+ // 高DPI対応\r
+ HBITMAP hOriginal;\r
+ HBITMAP hResized;\r
\r
/*===== メインのツールバー =====*/\r
\r
+ // 高DPI対応\r
+// hWndTbarMain = CreateToolbarEx(\r
+// hWnd,\r
+// WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS | CCS_TOP | TBSTYLE_FLAT,\r
+// 1,\r
+// 27,\r
+// hInst,\r
+// main_toolbar_bmp,\r
+// TbarDataMain,\r
+// sizeof(TbarDataMain)/sizeof(TBBUTTON),\r
+// 16,16,\r
+// 16,16,\r
+// sizeof(TBBUTTON));\r
+ hOriginal = LoadImage(hInst, MAKEINTRESOURCE(main_toolbar_bmp), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE | LR_LOADMAP3DCOLORS);\r
+ if(hOriginal != NULL)\r
+ {\r
+ hResized = ResizeBitmap(hOriginal, 16, 16);\r
+ DeleteObject(hOriginal);\r
+ }\r
hWndTbarMain = CreateToolbarEx(\r
hWnd,\r
WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS | CCS_TOP | TBSTYLE_FLAT,\r
1,\r
27,\r
- hInst,\r
- main_toolbar_bmp,\r
+ NULL,\r
+ (UINT_PTR)hResized,\r
TbarDataMain,\r
sizeof(TbarDataMain)/sizeof(TBBUTTON),\r
- 16,16,\r
- 16,16,\r
+ CalcPixelX(16),CalcPixelY(16),\r
+ CalcPixelX(16),CalcPixelY(16),\r
sizeof(TBBUTTON));\r
+ if(hResized != NULL)\r
+ DeleteObject(hOriginal);\r
+ hResized = NULL;\r
\r
if(hWndTbarMain != NULL)\r
{\r
/********************************************* ここまで */\r
\r
GetClientRect(hWnd, &Rect1);\r
- MoveWindow(hWndTbarMain, 0, 0, Rect1.right, TOOLWIN_HEIGHT, FALSE);\r
+ // 高DPI対応\r
+// MoveWindow(hWndTbarMain, 0, 0, Rect1.right, TOOLWIN_HEIGHT, FALSE);\r
+ MoveWindow(hWndTbarMain, 0, 0, Rect1.right, AskToolWinHeight(), FALSE);\r
}\r
\r
/*===== ローカルのツールバー =====*/\r
\r
+ // 高DPI対応\r
+// hWndTbarLocal = CreateToolbarEx(\r
+// hWnd,\r
+// WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS | CCS_NORESIZE | TBSTYLE_FLAT,\r
+// 2,\r
+// 2,\r
+// hInst,\r
+// remote_toolbar_bmp,\r
+// TbarDataLocal,\r
+// sizeof(TbarDataLocal)/sizeof(TBBUTTON),\r
+// 16,16,\r
+// 16,16,\r
+// sizeof(TBBUTTON));\r
+ hOriginal = LoadImage(hInst, MAKEINTRESOURCE(remote_toolbar_bmp), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE | LR_LOADMAP3DCOLORS);\r
+ if(hOriginal != NULL)\r
+ {\r
+ hResized = ResizeBitmap(hOriginal, 16, 16);\r
+ DeleteObject(hOriginal);\r
+ }\r
hWndTbarLocal = CreateToolbarEx(\r
hWnd,\r
WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS | CCS_NORESIZE | TBSTYLE_FLAT,\r
2,\r
2,\r
- hInst,\r
- remote_toolbar_bmp,\r
+ NULL,\r
+ (UINT_PTR)hResized,\r
TbarDataLocal,\r
sizeof(TbarDataLocal)/sizeof(TBBUTTON),\r
- 16,16,\r
- 16,16,\r
+ CalcPixelX(16),CalcPixelY(16),\r
+ CalcPixelX(16),CalcPixelY(16),\r
sizeof(TBBUTTON));\r
+ if(hResized != NULL)\r
+ DeleteObject(hOriginal);\r
+ hResized = NULL;\r
\r
if(hWndTbarLocal != NULL)\r
{\r
pOldTbarLocalProc = (WNDPROC)SetWindowLongPtr(hWndTbarLocal, GWLP_WNDPROC, (LONG_PTR)CountermeasureTbarLocalProc);\r
/********************************************* ここまで */\r
\r
- MoveWindow(hWndTbarLocal, 0, TOOLWIN_HEIGHT, LocalWidth, TOOLWIN_HEIGHT, FALSE);\r
+ // 高DPI対応\r
+// MoveWindow(hWndTbarLocal, 0, TOOLWIN_HEIGHT, LocalWidth, TOOLWIN_HEIGHT, FALSE);\r
+ MoveWindow(hWndTbarLocal, 0, AskToolWinHeight(), LocalWidth, AskToolWinHeight(), FALSE);\r
\r
/*===== ローカルのディレクトリ名ウインドウ =====*/\r
\r
SendMessage(hWndTbarLocal, TB_GETITEMRECT, 3, (LPARAM)&Rect1);\r
-#ifndef FFFTP_ENGLISH\r
- DlgFont = CreateFont(Rect1.bottom-Rect1.top-8, 0, 0, 0, 0, FALSE,FALSE,FALSE,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,MSGJPN254);\r
-#else\r
- DlgFont = CreateFont(Rect1.bottom-Rect1.top-8, 0, 0, 0, 0, FALSE,FALSE,FALSE,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,MSGJPN254);\r
-#endif\r
-\r
+ // UTF-8対応\r
+ // 高DPI対応\r
+//#ifndef FFFTP_ENGLISH\r
+// DlgFont = CreateFont(Rect1.bottom-Rect1.top-8, 0, 0, 0, 0, FALSE,FALSE,FALSE,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,MSGJPN254);\r
+//#else\r
+// DlgFont = CreateFont(Rect1.bottom-Rect1.top-8, 0, 0, 0, 0, FALSE,FALSE,FALSE,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,MSGJPN254);\r
+//#endif\r
+ DlgFont = CreateFont(Rect1.bottom-Rect1.top-CalcPixelY(8), 0, 0, 0, 0, FALSE,FALSE,FALSE,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,MSGJPN254);\r
+\r
+ // 高DPI対応\r
+// hWndDirLocal = CreateWindowEx(WS_EX_CLIENTEDGE,\r
+// "COMBOBOX", "",\r
+// WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | CBS_DROPDOWN | CBS_SORT | CBS_AUTOHSCROLL,\r
+// Rect1.right, Rect1.top, LocalWidth - Rect1.right, 200,\r
+// hWndTbarLocal, (HMENU)COMBO_LOCAL, hInst, NULL);\r
hWndDirLocal = CreateWindowEx(WS_EX_CLIENTEDGE,\r
"COMBOBOX", "",\r
WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | CBS_DROPDOWN | CBS_SORT | CBS_AUTOHSCROLL,\r
- Rect1.right, Rect1.top, LocalWidth - Rect1.right, 200,\r
+ Rect1.right, Rect1.top, LocalWidth - Rect1.right, CalcPixelY(200),\r
hWndTbarLocal, (HMENU)COMBO_LOCAL, hInst, NULL);\r
\r
if(hWndDirLocal != NULL)\r
\r
/*===== ホストのツールバー =====*/\r
\r
+ // 高DPI対応\r
+// hWndTbarRemote = CreateToolbarEx(\r
+// hWnd,\r
+// WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS | CCS_NORESIZE | TBSTYLE_FLAT,\r
+// 3,\r
+// 2,\r
+// hInst,\r
+// remote_toolbar_bmp,\r
+// TbarDataRemote,\r
+// sizeof(TbarDataRemote)/sizeof(TBBUTTON),\r
+// 16,16,\r
+// 16,16,\r
+// sizeof(TBBUTTON));\r
+ hOriginal = LoadImage(hInst, MAKEINTRESOURCE(remote_toolbar_bmp), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE | LR_LOADMAP3DCOLORS);\r
+ if(hOriginal != NULL)\r
+ {\r
+ hResized = ResizeBitmap(hOriginal, 16, 16);\r
+ DeleteObject(hOriginal);\r
+ }\r
hWndTbarRemote = CreateToolbarEx(\r
hWnd,\r
WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS | CCS_NORESIZE | TBSTYLE_FLAT,\r
3,\r
2,\r
- hInst,\r
- remote_toolbar_bmp,\r
+ NULL,\r
+ (UINT_PTR)hResized,\r
TbarDataRemote,\r
sizeof(TbarDataRemote)/sizeof(TBBUTTON),\r
- 16,16,\r
- 16,16,\r
+ CalcPixelX(16),CalcPixelY(16),\r
+ CalcPixelX(16),CalcPixelY(16),\r
sizeof(TBBUTTON));\r
+ if(hResized != NULL)\r
+ DeleteObject(hOriginal);\r
+ hResized = NULL;\r
\r
if(hWndTbarRemote != NULL)\r
{\r
pOldTbarRemoteProc = (WNDPROC)SetWindowLongPtr(hWndTbarRemote, GWLP_WNDPROC, (LONG_PTR)CountermeasureTbarRemoteProc);\r
/********************************************* ここまで */\r
\r
- MoveWindow(hWndTbarRemote, LocalWidth + SepaWidth, TOOLWIN_HEIGHT, RemoteWidth, TOOLWIN_HEIGHT, FALSE);\r
+ // 高DPI対応\r
+// MoveWindow(hWndTbarRemote, LocalWidth + SepaWidth, TOOLWIN_HEIGHT, RemoteWidth, TOOLWIN_HEIGHT, FALSE);\r
+ MoveWindow(hWndTbarRemote, LocalWidth + SepaWidth, AskToolWinHeight(), RemoteWidth, AskToolWinHeight(), FALSE);\r
\r
/*===== ホストのディレクトリ名ウインドウ =====*/\r
\r
SendMessage(hWndTbarRemote, TB_GETITEMRECT, 3, (LPARAM)&Rect1);\r
+ // 高DPI対応\r
+// hWndDirRemote = CreateWindowEx(WS_EX_CLIENTEDGE,\r
+// "COMBOBOX", "",\r
+// WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | CBS_DROPDOWN | CBS_AUTOHSCROLL,\r
+// Rect1.right, Rect1.top, RemoteWidth - Rect1.right, 200,\r
+// hWndTbarRemote, (HMENU)COMBO_REMOTE, hInst, NULL);\r
hWndDirRemote = CreateWindowEx(WS_EX_CLIENTEDGE,\r
"COMBOBOX", "",\r
WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | CBS_DROPDOWN | CBS_AUTOHSCROLL,\r
- Rect1.right, Rect1.top, RemoteWidth - Rect1.right, 200,\r
+ Rect1.right, Rect1.top, RemoteWidth - Rect1.right, CalcPixelY(200),\r
hWndTbarRemote, (HMENU)COMBO_REMOTE, hInst, NULL);\r
\r
if(hWndDirRemote != NULL)\r