copy log to clipboard function

This commit is contained in:
cypherpunk 2014-03-13 16:41:48 +01:00
parent 9fc398c76b
commit cd9c5f9bce
3 changed files with 34 additions and 2 deletions

View File

@ -3,6 +3,9 @@
#include "..\SDK\CPP\TitanEngine.h" #include "..\SDK\CPP\TitanEngine.h"
#include "TitanScript.h" #include "TitanScript.h"
#define MAX_LOG_LINE_LENGTH 100
#define MAX_LOG_LINE_COUNT 100
//variables //variables
static HINSTANCE hInst; static HINSTANCE hInst;
static HWND hLogBox; static HWND hLogBox;
@ -125,10 +128,39 @@ INT_PTR CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
CreateThread(0, 0, TitanScriptExecThread, 0, 0, 0); CreateThread(0, 0, TitanScriptExecThread, 0, 0, 0);
else else
StopDebug(); StopDebug();
break;
}
case IDC_COPY: {
//get lines
int cnt = SendMessage(hLogBox, LB_GETCOUNT, 0, 0);
TCHAR buf[MAX_LOG_LINE_LENGTH] = {0};
TCHAR copy[MAX_LOG_LINE_COUNT] = {0};
for(int i=0; i<cnt; i++) {
SendMessage(hLogBox, LB_GETTEXT, i, (LPARAM)buf);
lstrcat(copy, buf);
lstrcat(copy, L"\n");
} }
//copy to clipboard
HGLOBAL clipbuffer;
TCHAR* buffer;
clipbuffer = GlobalAlloc(GMEM_DDESHARE, sizeof(copy));
buffer = (TCHAR*)GlobalLock(clipbuffer);
//wcstombs(buffer, copy, sizeof(buffer));
wcscpy(buffer, copy);
GlobalUnlock(clipbuffer);
OpenClipboard(NULL);
EmptyClipboard();
SetClipboardData(CF_UNICODETEXT,clipbuffer);
CloseClipboard();
break;
} }
} }
}
break; break;
case WM_CLOSE: case WM_CLOSE:
@ -165,7 +197,7 @@ static bool GetFileDialog(TCHAR Buffer[MAX_PATH])
static void AddLogMessage(const char* szLogMessage, eLogType Type) static void AddLogMessage(const char* szLogMessage, eLogType Type)
{ {
TCHAR buf[100] = {0}; TCHAR buf[MAX_LOG_LINE_LENGTH] = {0};
mbstowcs(buf, szLogMessage, sizeof(buf)); mbstowcs(buf, szLogMessage, sizeof(buf));
LRESULT cSelect = SendMessage(hLogBox, LB_INSERTSTRING, (WPARAM)-1, (LPARAM)buf); LRESULT cSelect = SendMessage(hLogBox, LB_INSERTSTRING, (WPARAM)-1, (LPARAM)buf);
SendMessage(hLogBox, LB_SETCURSEL, cSelect, NULL); SendMessage(hLogBox, LB_SETCURSEL, cSelect, NULL);

Binary file not shown.

Binary file not shown.