extern void LoadSettings(void) { HKEY hKey = NULL; int iItemIndex = -1; if (RegOpenKeyEx(HKEY_CURRENT_USER, g_szGeneralRegKey, 0, KEY_READ, &hKey) == ERROR_SUCCESS) { TCHAR szBuffer[MAX_PATH]; DWORD dwAdvanChecked; unsigned long type = REG_DWORD, size = 1024; /* Restore last selected font */ if (QueryStringValue(HKEY_CURRENT_USER, g_szGeneralRegKey, _T("Font"), szBuffer, (sizeof(szBuffer)/sizeof(szBuffer[0]))) == ERROR_SUCCESS) { //Get combobox handle hWnd = GetDlgItem(hCharmapDlg, IDC_FONTCOMBO); //Search for match and return index if match found iItemIndex = ComboBox_FindStringExact(hWnd, -1, szBuffer); if(iItemIndex != CB_ERR) { ComboBox_SetCurSel(hWnd, iItemIndex); ChangeMapFont(hCharmapDlg); } } /* Restore last selected character set */ if (QueryStringValue(HKEY_CURRENT_USER, g_szGeneralRegKey, _T("CodePage"), szBuffer, (sizeof(szBuffer)/sizeof(szBuffer[0]))) == ERROR_SUCCESS) { //Get combobox handle hWnd = GetDlgItem(hCharmapDlg, IDC_COMBO_CHARSET); iItemIndex = ComboBox_FindStringExact(hWnd, -1, szBuffer); if(iItemIndex != CB_ERR) { ComboBox_SetCurSel(hWnd, iItemIndex); } } RegQueryValueEx(hKey, _T("Advanced"), NULL, &type, (LPBYTE)&dwAdvanChecked, &size); if(dwAdvanChecked == TRUE) SendDlgItemMessage(hCharmapDlg, IDC_CHECK_ADVANCED, BM_CLICK, MF_CHECKED, 0); RegCloseKey(hKey); } else { /* Default font seems to be Arial */ hWnd = GetDlgItem(hCharmapDlg, IDC_FONTCOMBO); iItemIndex = ComboBox_FindStringExact(hWnd, -1, _T("Arial")); if(iItemIndex != CB_ERR) { ComboBox_SetCurSel(hWnd, iItemIndex); ChangeMapFont(hCharmapDlg); } } }
static INT_PTR CALLBACK CharMapDlgProc(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam) { switch(Message) { case WM_INITDIALOG: { DWORD evMask; FillFontStyleComboList(GetDlgItem(hDlg, IDC_FONTCOMBO)); ChangeMapFont(hDlg); // 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; } case WM_COMMAND: { switch(LOWORD(wParam)) { case IDC_FONTMAP: switch (HIWORD(wParam)) { case FM_SETCHAR: AddCharToSelection(hDlg, LOWORD(lParam)); break; } break; case IDC_FONTCOMBO: if (HIWORD(wParam) == CBN_SELCHANGE) { ChangeMapFont(hDlg); } break; case IDC_SELECT: AddCharToSelection(hDlg, 0); break; 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 IDC_CHECK_ADVANCED: UpdateSettings(hDlg); ChangeView(GetParent(hDlg)); break; } } break; default: break; } return FALSE; }