}
}
-
+// Copy collected characters into the clipboard
static
-VOID
-AddCharToSelection(HWND hText,
- WCHAR ch)
+void
+CopyCharacters(HWND hDlg)
{
- LPWSTR lpText;
- INT Len = GetWindowTextLength(hText);
+ HWND hText = GetDlgItem(hDlg, IDC_TEXTBOX);
+ DWORD dwStart, dwEnd;
- if (Len != 0)
- {
- lpText = HeapAlloc(GetProcessHeap(),
- 0,
- (Len + 2) * sizeof(WCHAR));
+ // Acquire selection limits
+ SendMessage(hText, EM_GETSEL, (WPARAM)&dwStart, (LPARAM)&dwEnd);
- if (lpText)
- {
- LPWSTR lpStr = lpText;
+ // Test if the whose text is unselected
+ if(dwStart == dwEnd) {
+
+ // Select the whole text
+ SendMessageW(hText, EM_SETSEL, 0, -1);
- SendMessageW(hText,
- WM_GETTEXT,
- Len + 1,
- (LPARAM)lpStr);
+ // Copy text
+ SendMessageW(hText, WM_COPY, 0, 0);
- lpStr += Len;
- *lpStr = ch;
- lpStr++;
- *lpStr = L'\0';
+ // Restore previous values
+ SendMessageW(hText, EM_SETSEL, (WPARAM)dwStart, (LPARAM)dwEnd);
- SendMessageW(hText,
- WM_SETTEXT,
- 0,
- (LPARAM)lpText);
+ } else {
- HeapFree(GetProcessHeap(),
- 0,
- lpText);
- }
+ // Copy text
+ SendMessageW(hText, WM_COPY, 0, 0);
}
- else
- {
- WCHAR szText[2];
+}
+
+// Recover charset for the given font
+static
+BYTE
+GetFontMetrics(HWND hWnd, HFONT hFont)
+{
+ TEXTMETRIC tmFont;
+ HGDIOBJ hOldObj;
+ HDC hDC;
+
+ hDC = GetDC(hWnd);
+ hOldObj = SelectObject(hDC, hFont);
+ GetTextMetrics(hDC, &tmFont);
+ SelectObject(hDC, hOldObj);
+ ReleaseDC(hWnd, hDC);
- szText[0] = ch;
- szText[1] = L'\0';
+ return tmFont.tmCharSet;
+}
- SendMessageW(hText,
- WM_SETTEXT,
- 0,
- (LPARAM)szText);
+// Select a new character
+static
+VOID
+AddCharToSelection(HWND hDlg, WCHAR ch)
+{
+ HWND hMap = GetDlgItem(hDlg, IDC_FONTMAP);
+ HWND hText = GetDlgItem(hDlg, IDC_TEXTBOX);
+ HFONT hFont;
+ LOGFONT lFont;
+ CHARFORMAT cf;
+
+ // Retrieve current character selected
+ if (ch == 0)
+ {
+ ch = (WCHAR) SendMessageW(hMap, FM_GETCHAR, 0, 0);
+ if (!ch)
+ return;
}
+
+ // Retrieve current selected font
+ hFont = (HFONT)SendMessage(hMap, FM_GETHFONT, 0, 0);
+
+ // Recover LOGFONT structure from hFont
+ if (!GetObject(hFont, sizeof(LOGFONT), &lFont))
+ return;
+
+ // Recover font properties of Richedit control
+ ZeroMemory(&cf, sizeof(cf));
+ cf.cbSize = sizeof(cf);
+ SendMessage(hText, EM_GETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf);
+
+ // Apply properties of the new font
+ cf.bCharSet = GetFontMetrics(hText, hFont);
+
+ // Update font name
+ wcscpy(cf.szFaceName, lFont.lfFaceName);
+
+ // Update font properties
+ SendMessage(hText, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf);
+
+ // Send selected character to Richedit
+ SendMessage(hText, WM_CHAR, (WPARAM)ch, 0);
}
case WM_INITDIALOG:
{
HMENU hSysMenu;
+ DWORD evMask;
hSmIcon = LoadImageW(hInstance,
MAKEINTRESOURCEW(IDI_ICON),
lpAboutText);
}
}
+
+ // Configure Richedi control for sending notification changes.
+ evMask = SendDlgItemMessage(hDlg, IDC_TEXTBOX, EM_GETEVENTMASK, 0, 0);
+ evMask |= ENM_CHANGE;
+ SendDlgItemMessage(hDlg, IDC_TEXTBOX, EM_SETEVENTMASK, 0, (LPARAM)evMask);
+
return TRUE;
}
switch(LOWORD(wParam))
{
case IDC_FONTMAP:
- {
switch (HIWORD(wParam))
{
case FM_SETCHAR:
- AddCharToSelection(GetDlgItem(hDlg, IDC_TEXTBOX),
- LOWORD(lParam));
+ AddCharToSelection(hDlg, LOWORD(lParam));
break;
}
- }
- break;
+ break;
case IDC_FONTCOMBO:
- {
if (HIWORD(wParam) == CBN_SELCHANGE)
{
ChangeMapFont(hDlg);
}
- }
- break;
+ break;
case IDC_SELECT:
- {
- WCHAR ch;
- HWND hMap = GetDlgItem(hDlg, IDC_FONTMAP);
-
- ch = (WCHAR) SendMessageW(hMap, FM_GETCHAR, 0, 0);
+ AddCharToSelection(hDlg, 0);
+ break;
- if (ch)
- {
- AddCharToSelection(GetDlgItem(hDlg, IDC_TEXTBOX),
- ch);
+ case IDC_TEXTBOX:
+ switch (HIWORD(wParam)) {
+ case EN_CHANGE:
+ if (GetWindowTextLength(GetDlgItem(hDlg, IDC_TEXTBOX)) == 0)
+ EnableWindow(GetDlgItem(hDlg, IDC_COPY), FALSE);
+ else
+ EnableWindow(GetDlgItem(hDlg, IDC_COPY), TRUE);
+ break;
}
+ break;
+ case IDC_COPY:
+ CopyCharacters(hDlg);
break;
- }
case IDOK:
if (hSmIcon)
if (hBgIcon)
DestroyIcon(hBgIcon);
EndDialog(hDlg, 0);
- break;
+ break;
}
}
break;
{
INITCOMMONCONTROLSEX iccx;
INT Ret = 1;
+ HMODULE hRichEd20;
hInstance = hInst;
if (RegisterMapClasses(hInstance))
{
- Ret = DialogBoxW(hInstance,
- MAKEINTRESOURCEW(IDD_CHARMAP),
- NULL,
- DlgProc) >= 0;
+ hRichEd20 = LoadLibraryW(L"RICHED20.DLL");
+ if (hRichEd20 != NULL)
+ {
+ Ret = DialogBoxW(hInstance,
+ MAKEINTRESOURCEW(IDD_CHARMAP),
+ NULL,
+ DlgProc) >= 0;
+
+ FreeLibrary(hRichEd20);
+ }
UnregisterMapClasses(hInstance);
}
#include <windows.h>
#include <commctrl.h>
+#include <richedit.h>
#include "resource.h"
PUSHBUTTON "Ïîìîù", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "Çíàöè çà çàïîìíÿíå:", IDC_STATIC, 3, 188, 75, 9
- EDITTEXT IDC_TEXTBOX, 79, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "Èçáîð", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "Çàïîìíÿíå", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "Ðaçøèðåí èçãëåä", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Ajuda", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "Caràcters a copiar :", IDC_STATIC, 6, 188, 66, 9
- EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "Selecciona", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "Copia", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "Vista avançada", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Nápovìda", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "Znaky ke zkopírování:", IDC_STATIC, 6, 188, 66, 9
- EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "Oznaèit", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "Kopírovat", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "Pokroèilé zobrazení", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Hilfe", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "Zeichenauswahl:", IDC_STATIC, 6, 188, 66, 9
- EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "Auswählen", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "Kopieren", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "Erweiterte Ansicht", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
CONTROL "",IDC_FONTMAP,"FontMapWnd",WS_VSCROLL | WS_TABSTOP,20,
22,266,156
LTEXT "×áñáêôÞñåò ðñïò áíôéãñáöÞ :",IDC_STATIC,6,184,66,17
- EDITTEXT IDC_TEXTBOX,74,186,114,13
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "ÅðéëïãÞ",IDC_SELECT,194,186,44,13
PUSHBUTTON "ÁíôéãñáöÞ",IDC_COPY,242,186,44,13,WS_DISABLED
END
PUSHBUTTON "Help", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "Characters to copy:", IDC_STATIC, 6, 188, 66, 9
- EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "Select", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "Copy", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "Advanced view", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Ayuda", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "Caracteres a copiar :", IDC_STATIC, 6, 188, 66, 9
- EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "Seleccionar", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "Copiar", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "Vista Avanzada", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Aide", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "Caractères à copier :", IDC_STATIC, 6, 188, 66, 9
- EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "Sélectionner", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "Copier", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "Vue avancée", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Bantuan", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "Karakter untuk di-copy :", IDC_STATIC, 6, 188, 66, 9
- EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "Pilih", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "Copy", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "Advanced view", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Aiuto", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "Caratteri da copiare :", IDC_STATIC, 6, 188, 66, 9
- EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "Selezionare", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "Copiare", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "Visualizzazione avanzata", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "\83w\83\8b\83v", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "\83R\83s\81[\82·\82é\95¶\8e\9a:", IDC_STATIC, 6, 188, 66, 9
- EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "\91I\91ð", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "\83R\83s\81[", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "\8fÚ\8d×\95\\\8e¦", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "µµ¿ò¸»", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "º¹»çÇÒ ¹®ÀÚ:", IDC_STATIC, 6, 188, 66, 9
- EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "¼±ÅÃ", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "º¹»ç", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "È®Àå ¸ðµå", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Pagalba", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "Simboliai kopijavimui:", IDC_STATIC, 6, 188, 72, 9
- EDITTEXT IDC_TEXTBOX, 81, 186, 107, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "Parinkti", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "Kopijuoti", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "Advanced view", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Help", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "Te kopiëren tekens:", IDC_STATIC, 6, 188, 66, 9
- EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "Selecteren", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "Kopiëren", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "Geavanceerde weergave", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Hjelp", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "Kopier følgende tegn:", IDC_STATIC, 6, 188, 66, 9
- EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "Velg", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "Kopier", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "Avansert visning", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Pomo&c", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "&Znaki do skopiowania:", IDC_STATIC, 6, 188, 66, 9
- EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "Wy&bierz", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "&Kopiuj", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "Widok z&aawansowany", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Aj&uda", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "Caracteres a serem copiados :", IDC_STATIC, 6, 183, 66, 17
- EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "Selecionar", IDC_SELECT, 194, 186, 46, 13
PUSHBUTTON "Copiar", IDC_COPY, 244, 186, 46, 13, WS_DISABLED
//AUTOCHECKBOX "Modo de exibição avançado", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Ñïðàâêà", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "Êîïèðîâàòü ñèìâîë:", IDC_STATIC, 6, 188, 95, 9
- EDITTEXT IDC_TEXTBOX, 80, 186, 109, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "Âûáðàòü", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "Êîïèðîâàòü", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "Advanced view", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Pomocník", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "Kopírova\9d &znaky:", IDC_STATIC, 6, 188, 66, 9
- EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "&Vybra\9d", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "&Kopírova\9d", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "R&oz\9aírené zobrazenie", IDC_ADVVIEW, 10, 204, 75, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Äîâ³äêà", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "Äëÿ êîï³þâàííÿ :", IDC_STATIC, 6, 188, 66, 9
- EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "Âèáðàòè", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "Êîï³þâàòè", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "Ðîçøèðåíèé âèãëÿä", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "˵Ã÷", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "´ý¸´ÖƵÄ×Ö·û:", IDC_STATIC, 6, 188, 66, 9
- EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "Ñ¡Ôñ", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "¸´ÖÆ", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "Advanced view", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "»¡©ú", IDC_CMHELP, 249, 5, 35, 13
CONTROL "", IDC_FONTMAP, "FontMapWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL, 20, 22, 266, 156
LTEXT "«Ý½Æ»sªº¦r²Å¡G", IDC_STATIC, 6, 188, 66, 9
- EDITTEXT IDC_TEXTBOX, 74, 186, 114, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
+ CONTROL "",IDC_TEXTBOX,RICHEDIT_CLASS,ES_AUTOHSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 74, 186, 114, 13
DEFPUSHBUTTON "¿ï¾Ü", IDC_SELECT, 194, 186, 44, 13
PUSHBUTTON "½Æ»s", IDC_COPY, 242, 186, 44, 13, WS_DISABLED
//AUTOCHECKBOX "Advanced view", IDC_ADVVIEW, 10, 204, 64, 9, WS_CHILD | WS_VISIBLE | WS_TABSTOP
return infoPtr->pActiveCell->ch;
}
+ case FM_GETHFONT:
+ return (LRESULT)infoPtr->hFont;
+
case WM_PAINT:
{
OnPaint(infoPtr,
#include <stdlib.h>
#include <windows.h>
#include <commctrl.h>
+#include <richedit.h>
#include "resource.h"
#define XCELLS 20
#define XLARGE 45
#define YLARGE 25
-#define FM_SETFONT (WM_USER + 1)
-#define FM_GETCHAR (WM_USER + 2)
-#define FM_SETCHAR (WM_USER + 3)
+#define FM_SETFONT (WM_USER + 1)
+#define FM_GETCHAR (WM_USER + 2)
+#define FM_SETCHAR (WM_USER + 3)
+#define FM_GETHFONT (WM_USER + 4)
extern HINSTANCE hInstance;
#define cchTextLimitDefault 0x7fff
-#if defined(__GNUC__)
-# define MSFTEDIT_CLASS (const WCHAR []){ 'R','i','c','h','E','d','i','t','5','0','W',0 }
-#elif defined(_MSC_VER)
+#if defined(_MSC_VER) || defined(RC_INVOKED)
# define MSFTEDIT_CLASS L"RichEdit50W"
+#elif defined(__GNUC__)
+# define MSFTEDIT_CLASS (const WCHAR []){ 'R','i','c','h','E','d','i','t','5','0','W',0 }
#else
static const WCHAR MSFTEDIT_CLASS[] = { 'R','i','c','h','E','d','i','t','5','0','W',0 };
#endif
#define RICHEDIT_CLASS20A "RichEdit20A"
-#if defined(__GNUC__)
+
+#if defined(_MSC_VER) || defined(RC_INVOKED)
+# define RICHEDIT_CLASS20W L"RichEdit20W"
+#elif defined(__GNUC__)
# define RICHEDIT_CLASS20W (const WCHAR []){ 'R','i','c','h','E','d','i','t','2','0','W',0 }
-#elif defined(_MSC_VER)
-# define RICHEDIT_CLASS20W L"RichEdit20W"
#else
static const WCHAR RICHEDIT_CLASS20W[] = { 'R','i','c','h','E','d','i','t','2','0','W',0 };
#endif