diff --git a/PowerEditor/installer/nativeLang/english.xml b/PowerEditor/installer/nativeLang/english.xml
index 687e95840..63954cb34 100644
--- a/PowerEditor/installer/nativeLang/english.xml
+++ b/PowerEditor/installer/nativeLang/english.xml
@@ -5,7 +5,7 @@ Translation note:
2. All the comments are for explanation, they are not for translation.
-->
-
+
diff --git a/PowerEditor/installer/nativeLang/english_customizable.xml b/PowerEditor/installer/nativeLang/english_customizable.xml
index 9998e4566..ee20afb43 100644
--- a/PowerEditor/installer/nativeLang/english_customizable.xml
+++ b/PowerEditor/installer/nativeLang/english_customizable.xml
@@ -5,7 +5,7 @@ Translation note:
2. All the comments are for explanation, they are not for translation.
-->
-
+
diff --git a/PowerEditor/src/Parameters.cpp b/PowerEditor/src/Parameters.cpp
index a45ec8a3c..8aae667a2 100644
--- a/PowerEditor/src/Parameters.cpp
+++ b/PowerEditor/src/Parameters.cpp
@@ -6214,7 +6214,22 @@ void NppParameters::feedGUIParameters(TiXmlNode *node)
const wchar_t * optNameWriteTechnologyEngine = element->Attribute(L"writeTechnologyEngine");
if (optNameWriteTechnologyEngine)
- _nppGUI._writeTechnologyEngine = (lstrcmp(optNameWriteTechnologyEngine, L"1") == 0) ? directWriteTechnology : defaultTechnology;
+ {
+ if (lstrcmp(optNameWriteTechnologyEngine, L"0") == 0)
+ _nppGUI._writeTechnologyEngine = defaultTechnology;
+ else if (lstrcmp(optNameWriteTechnologyEngine, L"1") == 0)
+ _nppGUI._writeTechnologyEngine = directWriteTechnology;
+ else if (lstrcmp(optNameWriteTechnologyEngine, L"2") == 0)
+ _nppGUI._writeTechnologyEngine = directWriteRetainTechnology;
+ else if (lstrcmp(optNameWriteTechnologyEngine, L"3") == 0)
+ _nppGUI._writeTechnologyEngine = directWriteDcTechnology;
+ else if (lstrcmp(optNameWriteTechnologyEngine, L"4") == 0)
+ _nppGUI._writeTechnologyEngine = directWriteDX11Technology;
+ else if (lstrcmp(optNameWriteTechnologyEngine, L"5") == 0)
+ _nppGUI._writeTechnologyEngine = directWriteTechnologyUnavailable;
+ //else
+ // retain default value preset
+ }
const wchar_t * optNameFolderDroppedOpenFiles = element->Attribute(L"isFolderDroppedOpenFiles");
if (optNameFolderDroppedOpenFiles)
diff --git a/PowerEditor/src/Parameters.h b/PowerEditor/src/Parameters.h
index 1cef400a9..9fb8a3f2b 100644
--- a/PowerEditor/src/Parameters.h
+++ b/PowerEditor/src/Parameters.h
@@ -117,7 +117,8 @@ enum ChangeDetect { cdDisabled = 0x0, cdEnabledOld = 0x01, cdEnabledNew = 0x02,
enum BackupFeature {bak_none = 0, bak_simple = 1, bak_verbose = 2};
enum OpenSaveDirSetting {dir_followCurrent = 0, dir_last = 1, dir_userDef = 2};
enum MultiInstSetting {monoInst = 0, multiInstOnSession = 1, multiInst = 2};
-enum writeTechnologyEngine {defaultTechnology = 0, directWriteTechnology = 1, directWriteTechnologyUnavailable = 2};
+enum writeTechnologyEngine { defaultTechnology = 0, directWriteTechnology = 1, directWriteRetainTechnology = 2,
+ directWriteDcTechnology = 3, directWriteDX11Technology = 4, directWriteTechnologyUnavailable = 5 };
enum urlMode {urlDisable = 0, urlNoUnderLineFg, urlUnderLineFg, urlNoUnderLineBg, urlUnderLineBg,
urlMin = urlDisable,
urlMax = urlUnderLineBg};
diff --git a/PowerEditor/src/ScintillaComponent/ScintillaEditView.cpp b/PowerEditor/src/ScintillaComponent/ScintillaEditView.cpp
index 5fd992002..da880cbbb 100644
--- a/PowerEditor/src/ScintillaComponent/ScintillaEditView.cpp
+++ b/PowerEditor/src/ScintillaComponent/ScintillaEditView.cpp
@@ -327,14 +327,14 @@ void ScintillaEditView::init(HINSTANCE hInst, HWND hPere)
}
else
{
- // allow IDC_CHECK_DIRECTWRITE_ENABLE to be set in Preferences > MISC. again
+ // allow IDC_COMBO_SC_TECHNOLOGY_CHOICE to be set in Preferences > MISC. again
if (nppGui._writeTechnologyEngine == directWriteTechnologyUnavailable)
nppGui._writeTechnologyEngine = defaultTechnology;
}
- if (nppGui._writeTechnologyEngine == directWriteTechnology)
+ if ((nppGui._writeTechnologyEngine > defaultTechnology) && (nppGui._writeTechnologyEngine < directWriteTechnologyUnavailable))
{
- execute(SCI_SETTECHNOLOGY, SC_TECHNOLOGY_DIRECTWRITE);
+ execute(SCI_SETTECHNOLOGY, nppGui._writeTechnologyEngine);
// If useDirectWrite is turned off, leave the technology setting untouched,
// so that existing plugins using SCI_SETTECHNOLOGY behave like before
}
@@ -4412,7 +4412,8 @@ void ScintillaEditView::changeTextDirection(bool isRTL)
return;
NppParameters& nppParamInst = NppParameters::getInstance();
- if (isRTL && nppParamInst.getNppGUI()._writeTechnologyEngine == directWriteTechnology) // RTL is not compatible with Direct Write Technology
+ if (isRTL && (nppParamInst.getNppGUI()._writeTechnologyEngine > defaultTechnology)
+ && (nppParamInst.getNppGUI()._writeTechnologyEngine < directWriteTechnologyUnavailable)) // RTL is not compatible with DirectWrite
{
static bool theWarningIsGiven = false;
diff --git a/PowerEditor/src/WinControls/AboutDlg/AboutDlg.cpp b/PowerEditor/src/WinControls/AboutDlg/AboutDlg.cpp
index 13e816668..e79a49913 100644
--- a/PowerEditor/src/WinControls/AboutDlg/AboutDlg.cpp
+++ b/PowerEditor/src/WinControls/AboutDlg/AboutDlg.cpp
@@ -235,9 +235,31 @@ intptr_t CALLBACK DebugInfoDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
_debugInfoStr += nppGui._keepSessionAbsentFileEntries ? L"ON" : L"OFF";
_debugInfoStr += L"\r\n";
- // DirectWrite
- _debugInfoStr += L"DirectWrite : ";
- _debugInfoStr += (nppGui._writeTechnologyEngine == directWriteTechnology) ? L"ON" : L"OFF";
+ // SC_TECHNOLOGY
+ _debugInfoStr += L"Scintilla Rendering Mode : ";
+ switch (nppGui._writeTechnologyEngine)
+ {
+ case defaultTechnology:
+ _debugInfoStr += L"SC_TECHNOLOGY_DEFAULT (0)";
+ break;
+ case directWriteTechnology:
+ _debugInfoStr += L"SC_TECHNOLOGY_DIRECTWRITE (1)";
+ break;
+ case directWriteRetainTechnology:
+ _debugInfoStr += L"SC_TECHNOLOGY_DIRECTWRITERETAIN (2)";
+ break;
+ case directWriteDcTechnology:
+ _debugInfoStr += L"SC_TECHNOLOGY_DIRECTWRITEDC (3)";
+ break;
+ case directWriteDX11Technology:
+ _debugInfoStr += L"SC_TECHNOLOGY_DIRECT_WRITE_1 (4)";
+ break;
+ case directWriteTechnologyUnavailable:
+ _debugInfoStr += L"DirectWrite Technology Unavailable (5, same as SC_TECHNOLOGY_DEFAULT)";
+ break;
+ default:
+ _debugInfoStr += L"unknown (" + std::to_wstring(nppGui._writeTechnologyEngine) + L")";
+ }
_debugInfoStr += L"\r\n";
// Multi-instance
diff --git a/PowerEditor/src/WinControls/Preference/preference.rc b/PowerEditor/src/WinControls/Preference/preference.rc
index f282cfd60..8fbda6281 100644
--- a/PowerEditor/src/WinControls/Preference/preference.rc
+++ b/PowerEditor/src/WinControls/Preference/preference.rc
@@ -596,17 +596,18 @@ BEGIN
CONTROL "Peek on tab",IDC_CHECK_ENABLEDOCPEEKER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,269,58,140,10
CONTROL "Peek on document map",IDC_CHECK_ENABLEDOCPEEKONMAP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,269,71,140,10
- COMBOBOX IDC_COMBO_SYSTRAY_ACTION_HOICE,37,77,94,100,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- LTEXT "system tray",IDC_SYSTRAY_STATIC,137,78,88,8
+ COMBOBOX IDC_COMBO_SYSTRAY_ACTION_CHOICE,37,76,115,100,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ LTEXT "system tray",IDC_SYSTRAY_STATIC,157,78,88,8
+
+ COMBOBOX IDC_COMBO_SC_TECHNOLOGY_CHOICE,37,96,115,100,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ LTEXT "rendering mode",IDC_SC_TECHNOLOGY_STATIC,157,97,88,8
// "Enable Notepad++ auto-updater" should be always the 1st item, because it'll be hidden if GUP.exe is absent
- CONTROL "Enable Notepad++ auto-updater",IDC_CHECK_AUTOUPDATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,37,109,210,10
- CONTROL "Mute all sounds",IDC_CHECK_MUTE_SOUNDS,"Button", BS_AUTOCHECKBOX | WS_TABSTOP,37,124,190,10
- CONTROL "Autodetect character encoding",IDC_CHECK_DETECTENCODING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,37,139,217,10
- CONTROL "Show only filename in title bar",IDC_CHECK_SHORTTITLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,37,154,217,10
- CONTROL "Use DirectWrite (May improve rendering special characters, need to restart Notepad++)",IDC_CHECK_DIRECTWRITE_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,37,169,377,10
- CONTROL "Enable Save All confirm dialog",IDC_CHECK_SAVEALLCONFIRM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,37,184,217,10
-
+ CONTROL "Enable Notepad++ auto-updater",IDC_CHECK_AUTOUPDATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,37,118,210,10
+ CONTROL "Mute all sounds",IDC_CHECK_MUTE_SOUNDS,"Button", BS_AUTOCHECKBOX | WS_TABSTOP,37,133,190,10
+ CONTROL "Autodetect character encoding",IDC_CHECK_DETECTENCODING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,37,148,217,10
+ CONTROL "Show only filename in title bar",IDC_CHECK_SHORTTITLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,37,163,217,10
+ CONTROL "Enable Save All confirm dialog",IDC_CHECK_SAVEALLCONFIRM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,37,178,217,10
RTEXT "Session file ext.:",IDC_SESSIONFILEEXT_STATIC,270,130,108,8
EDITTEXT IDC_EDIT_SESSIONFILEEXT,380,127,34,12,ES_AUTOHSCROLL
diff --git a/PowerEditor/src/WinControls/Preference/preferenceDlg.cpp b/PowerEditor/src/WinControls/Preference/preferenceDlg.cpp
index bbb74a308..13409f709 100644
--- a/PowerEditor/src/WinControls/Preference/preferenceDlg.cpp
+++ b/PowerEditor/src/WinControls/Preference/preferenceDlg.cpp
@@ -267,6 +267,9 @@ intptr_t CALLBACK PreferenceDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM
if (_indentationSubDlg._tipAutoIndentAdvanced)
NppDarkMode::setDarkTooltips(_indentationSubDlg._tipAutoIndentAdvanced, NppDarkMode::ToolTipsType::tooltip);
+ if (_miscSubDlg._tipScintillaRenderingTechnology)
+ NppDarkMode::setDarkTooltips(_miscSubDlg._tipScintillaRenderingTechnology, NppDarkMode::ToolTipsType::tooltip);
+
// groupbox label in dark mode support disabled text color
if (NppDarkMode::isEnabled())
{
@@ -2474,21 +2477,46 @@ intptr_t CALLBACK MiscSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM)
bCheck = (nppGUI._fileAutoDetection & cdGo2end) ? true : false;
::SendDlgItemMessage(_hSelf, IDC_CHECK_UPDATEGOTOEOF, BM_SETCHECK, bCheck ? BST_CHECKED : BST_UNCHECKED, 0);
- ::SendDlgItemMessage(_hSelf, IDC_COMBO_SYSTRAY_ACTION_HOICE, CB_ADDSTRING, 0, reinterpret_cast(L"No action on"));
- ::SendDlgItemMessage(_hSelf, IDC_COMBO_SYSTRAY_ACTION_HOICE, CB_ADDSTRING, 0, reinterpret_cast(L"Minimize to"));
- ::SendDlgItemMessage(_hSelf, IDC_COMBO_SYSTRAY_ACTION_HOICE, CB_ADDSTRING, 0, reinterpret_cast(L"Close to"));
- ::SendDlgItemMessage(_hSelf, IDC_COMBO_SYSTRAY_ACTION_HOICE, CB_ADDSTRING, 0, reinterpret_cast(L"Minimize / Close to"));
+ ::SendDlgItemMessage(_hSelf, IDC_COMBO_SYSTRAY_ACTION_CHOICE, CB_ADDSTRING, 0, reinterpret_cast(L"No action on"));
+ ::SendDlgItemMessage(_hSelf, IDC_COMBO_SYSTRAY_ACTION_CHOICE, CB_ADDSTRING, 0, reinterpret_cast(L"Minimize to"));
+ ::SendDlgItemMessage(_hSelf, IDC_COMBO_SYSTRAY_ACTION_CHOICE, CB_ADDSTRING, 0, reinterpret_cast(L"Close to"));
+ ::SendDlgItemMessage(_hSelf, IDC_COMBO_SYSTRAY_ACTION_CHOICE, CB_ADDSTRING, 0, reinterpret_cast(L"Minimize / Close to"));
if (nppGUI._isMinimizedToTray < 0 || nppGUI._isMinimizedToTray > sta_minimize_close)
nppGUI._isMinimizedToTray = sta_none;
- ::SendDlgItemMessage(_hSelf, IDC_COMBO_SYSTRAY_ACTION_HOICE, CB_SETCURSEL, nppGUI._isMinimizedToTray, 0);
+ ::SendDlgItemMessage(_hSelf, IDC_COMBO_SYSTRAY_ACTION_CHOICE, CB_SETCURSEL, nppGUI._isMinimizedToTray, 0);
+
+ ::SendDlgItemMessage(_hSelf, IDC_COMBO_SC_TECHNOLOGY_CHOICE, CB_ADDSTRING, 0, reinterpret_cast(L"GDI (most compatible)"));
+ ::SendDlgItemMessage(_hSelf, IDC_COMBO_SC_TECHNOLOGY_CHOICE, CB_ADDSTRING, 0, reinterpret_cast(L"DirectWrite (default)"));
+ ::SendDlgItemMessage(_hSelf, IDC_COMBO_SC_TECHNOLOGY_CHOICE, CB_ADDSTRING, 0, reinterpret_cast(L"DirectWrite (retain frames)"));
+ ::SendDlgItemMessage(_hSelf, IDC_COMBO_SC_TECHNOLOGY_CHOICE, CB_ADDSTRING, 0, reinterpret_cast(L"DirectWrite (draw to GDI DC)"));
+ //::SendDlgItemMessage(_hSelf, IDC_COMBO_SC_TECHNOLOGY_CHOICE, CB_ADDSTRING, 0, reinterpret_cast(L"DirectWrite (DirectX 11)"));
+
+ if ((nppGUI._writeTechnologyEngine < 0) || (nppGUI._writeTechnologyEngine > directWriteTechnologyUnavailable))
+ nppGUI._writeTechnologyEngine = directWriteTechnology;
+
+ if (nppGUI._writeTechnologyEngine != directWriteTechnologyUnavailable)
+ {
+ ::SendDlgItemMessage(_hSelf, IDC_COMBO_SC_TECHNOLOGY_CHOICE, CB_SETCURSEL, nppGUI._writeTechnologyEngine, 0);
+ }
+ else
+ {
+ ::SendDlgItemMessage(_hSelf, IDC_COMBO_SC_TECHNOLOGY_CHOICE, CB_SETCURSEL, defaultTechnology, 0);
+ ::EnableWindow(::GetDlgItem(_hSelf, IDC_COMBO_SC_TECHNOLOGY_CHOICE), false);
+ }
+
+ NativeLangSpeaker* pNativeSpeaker = nppParam.getNativeLangSpeaker();
+ wstring tipScintillaRenderingTechnology2Show = pNativeSpeaker->getLocalizedStrFromID("scintillaRenderingTechnology-tip",
+ L"May improve rendering of special characters or resolve some graphics issues, restart Notepad++ to apply the changes.");
+ _tipScintillaRenderingTechnology = CreateToolTip(IDC_COMBO_SC_TECHNOLOGY_CHOICE, _hSelf, _hInst,
+ const_cast(tipScintillaRenderingTechnology2Show.c_str()), pNativeSpeaker->isRTL());
+ if (_tipScintillaRenderingTechnology)
+ ::SendMessage(_tipScintillaRenderingTechnology, TTM_SETDELAYTIME, TTDT_AUTOPOP, MAKELPARAM((20000), (0))); // stay 20 secs
::SendDlgItemMessage(_hSelf, IDC_CHECK_DETECTENCODING, BM_SETCHECK, nppGUI._detectEncoding, 0);
::SendDlgItemMessage(_hSelf, IDC_CHECK_SAVEALLCONFIRM, BM_SETCHECK, nppGUI._saveAllConfirm, 0);
::SendDlgItemMessage(_hSelf, IDC_CHECK_AUTOUPDATE, BM_SETCHECK, nppGUI._autoUpdateOpt._doAutoUpdate, 0);
- ::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_DIRECTWRITE_ENABLE), nppGUI._writeTechnologyEngine != directWriteTechnologyUnavailable);
- ::SendDlgItemMessage(_hSelf, IDC_CHECK_DIRECTWRITE_ENABLE, BM_SETCHECK, nppGUI._writeTechnologyEngine == directWriteTechnology, 0);
::SendDlgItemMessage(_hSelf, IDC_CHECK_ENABLEDOCPEEKER, BM_SETCHECK, nppGUI._isDocPeekOnTab ? BST_CHECKED : BST_UNCHECKED, 0);
::SendDlgItemMessage(_hSelf, IDC_CHECK_ENABLEDOCPEEKONMAP, BM_SETCHECK, nppGUI._isDocPeekOnMap ? BST_CHECKED : BST_UNCHECKED, 0);
::SendDlgItemMessage(_hSelf, IDC_CHECK_MUTE_SOUNDS, BM_SETCHECK, nppGUI._muteSounds ? BST_CHECKED : BST_UNCHECKED, 0);
@@ -2619,12 +2647,6 @@ intptr_t CALLBACK MiscSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM)
return TRUE;
}
- case IDC_CHECK_DIRECTWRITE_ENABLE:
- {
- nppGUI._writeTechnologyEngine = isCheckedOrNot(IDC_CHECK_DIRECTWRITE_ENABLE) ? directWriteTechnology : defaultTechnology;
- return TRUE;
- }
-
case IDC_CHECK_ENABLEDOCPEEKER:
{
nppGUI._isDocPeekOnTab = isCheckedOrNot(IDC_CHECK_ENABLEDOCPEEKER);
@@ -2690,10 +2712,16 @@ intptr_t CALLBACK MiscSubDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM)
return TRUE;
}
- else if (LOWORD(wParam) == IDC_COMBO_SYSTRAY_ACTION_HOICE)
+ else if (LOWORD(wParam) == IDC_COMBO_SYSTRAY_ACTION_CHOICE)
{
- int index = static_cast(::SendDlgItemMessage(_hSelf, IDC_COMBO_SYSTRAY_ACTION_HOICE, CB_GETCURSEL, 0, 0));
- nppGUI._isMinimizedToTray = index;
+ nppGUI._isMinimizedToTray = static_cast(::SendDlgItemMessage(_hSelf,
+ IDC_COMBO_SYSTRAY_ACTION_CHOICE, CB_GETCURSEL, 0, 0));
+ }
+
+ else if (LOWORD(wParam) == IDC_COMBO_SC_TECHNOLOGY_CHOICE)
+ {
+ nppGUI._writeTechnologyEngine = static_cast(::SendDlgItemMessage(_hSelf,
+ IDC_COMBO_SC_TECHNOLOGY_CHOICE, CB_GETCURSEL, 0, 0));
}
}
}
diff --git a/PowerEditor/src/WinControls/Preference/preferenceDlg.h b/PowerEditor/src/WinControls/Preference/preferenceDlg.h
index 38e5d03ad..777984d5c 100644
--- a/PowerEditor/src/WinControls/Preference/preferenceDlg.h
+++ b/PowerEditor/src/WinControls/Preference/preferenceDlg.h
@@ -25,11 +25,20 @@
class MiscSubDlg : public StaticDialog
{
+friend class PreferenceDlg;
public :
MiscSubDlg() = default;
+ ~MiscSubDlg() {
+ if (_tipScintillaRenderingTechnology)
+ {
+ ::DestroyWindow(_tipScintillaRenderingTechnology);
+ _tipScintillaRenderingTechnology = nullptr;
+ }
+ };
private :
intptr_t CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam) override;
+ HWND _tipScintillaRenderingTechnology = nullptr;
};
class GeneralSubDlg : public StaticDialog
diff --git a/PowerEditor/src/WinControls/Preference/preference_rc.h b/PowerEditor/src/WinControls/Preference/preference_rc.h
index c1ba8d7d3..28a7687f3 100644
--- a/PowerEditor/src/WinControls/Preference/preference_rc.h
+++ b/PowerEditor/src/WinControls/Preference/preference_rc.h
@@ -215,7 +215,7 @@
#define IDC_HISTORY_GB_STATIC (IDD_PREFERENCE_SUB_MISC + 4)
#define IDC_CHECK_DONTCHECKHISTORY (IDD_PREFERENCE_SUB_MISC + 5)
#define IDC_MAXNBFILE_STATIC (IDD_PREFERENCE_SUB_MISC + 6)
- #define IDC_COMBO_SYSTRAY_ACTION_HOICE (IDD_PREFERENCE_SUB_MISC + 7)
+ #define IDC_COMBO_SYSTRAY_ACTION_CHOICE (IDD_PREFERENCE_SUB_MISC + 7)
#define IDC_SYSTRAY_STATIC (IDD_PREFERENCE_SUB_MISC + 8)
#define IDC_CHECK_REMEMBERSESSION (IDD_PREFERENCE_SUB_MISC + 9)
#define IDC_INDENTUSING_STATIC (IDD_PREFERENCE_SUB_MISC + 10)
@@ -267,6 +267,9 @@
#define IDC_CHECK_MUTE_SOUNDS (IDD_PREFERENCE_SUB_MISC + 60)
#define IDC_CHECK_SAVEALLCONFIRM (IDD_PREFERENCE_SUB_MISC + 61)
+ #define IDC_COMBO_SC_TECHNOLOGY_CHOICE (IDD_PREFERENCE_SUB_MISC + 62)
+ #define IDC_SC_TECHNOLOGY_STATIC (IDD_PREFERENCE_SUB_MISC + 63)
+
#define IDD_PREFERENCE_SUB_NEWDOCUMENT 6400 //(IDD_PREFERENCE_BOX + 400)
#define IDC_FORMAT_GB_STATIC (IDD_PREFERENCE_SUB_NEWDOCUMENT + 1)
#define IDC_RADIO_F_WIN (IDD_PREFERENCE_SUB_NEWDOCUMENT + 2)