⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 extra.c

📁 ReactOS是一些高手根据Windows XP的内核编写出的类XP。内核实现机理和API函数调用几乎相同。甚至可以兼容XP的程序。喜欢研究系统内核的人可以看一看。
💻 C
字号:
/*
 * PROJECT:         ReactOS International Control Panel
 * LICENSE:         GPL - See COPYING in the top level directory
 * FILE:            dll/cpl/intl/extra.c
 * PURPOSE:         Extra parameters page
 * PROGRAMMERS:     Alexey Zavyalov (gen_x@mail.ru)
*/

/* INCLUDES *****************************************************************/

#include <windows.h>
#include <commctrl.h>
#include <cpl.h>

#include "intl.h"
#include "resource.h"

/* GLOBALS ******************************************************************/

HWND hLanguageList;

/* FUNCTIONS ****************************************************************/

/* Language enumerate procedure */
BOOL
CALLBACK
LanguagesEnumProc(LPTSTR lpLanguage)
{
    LCID Lcid;
    TCHAR Lang[MAX_STR_SIZE];
    int Index;

    Lcid = wcstoul(lpLanguage, NULL, 16);

    GetLocaleInfo(Lcid, LOCALE_SLANGUAGE, Lang, sizeof(Lang));
    Index = (int) SendMessageW(hLanguageList,
                         CB_ADDSTRING,
                         0,
                         (LPARAM)Lang);

    SendMessageW(hLanguageList,
                 CB_SETITEMDATA,
                 Index,
                 (LPARAM)Lcid);

    return TRUE;
}

/* Enumerate all installed language identifiers */
static
VOID
CreateLanguagesList(HWND hWnd)
{
    TCHAR LangSel[MAX_STR_SIZE];

    hLanguageList = hWnd;

    EnumSystemLocalesW(LanguagesEnumProc, LCID_INSTALLED);

    // Select current locale
    GetLocaleInfo(GetUserDefaultLCID(),
                  LOCALE_SLANGUAGE,
                  LangSel,
                  sizeof(LangSel));

    SendMessageW(hLanguageList,
                 CB_SELECTSTRING,
                (WPARAM) -1,
                (LPARAM)LangSel);
}


/* Extra Parameters page dialog callback */
INT_PTR
CALLBACK
ExtraOptsProc(HWND hwndDlg,
              UINT uMsg,
              WPARAM wParam,
              LPARAM lParam)
{
    UNREFERENCED_PARAMETER(wParam);
    switch(uMsg)
    {
        case WM_INITDIALOG:
            CreateLanguagesList(GetDlgItem(hwndDlg, IDC_LANGUAGE_COMBO));
        break;

        case WM_COMMAND:

        break;

        case WM_NOTIFY:
        {
            LPNMHDR Lpnm = (LPNMHDR)lParam;
            /* If push apply button */
            if (Lpnm->code == (UINT)PSN_APPLY)
            {
                // TODO: Implement
            }
        }
        break;
    }
    return FALSE;
}

/* EOF */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -