选择更改时,马拉雅拉姆语符号的显示会发生变化

时间:2014-10-16 10:19:27

标签: winapi unicode richedit

当我移动选区时,字符间距和字符本身会改变。

测试项目代码:



#include <windows.h>
#include <Richedit.h>

class RichEditLib
{
    HMODULE lib;
public:
    RichEditLib()
    {
        lib = ::LoadLibrary(L"riched20.dll");
    }

    ~RichEditLib()
    {
        if (lib) ::FreeLibrary(lib);
    }
} libraryLoader;

class RichEdit
{
public:
    RichEdit(HWND parent)
    {
        hwnd = ::CreateWindowEx (
            NULL,			 // extended window style
            RICHEDIT_CLASSW,		 // name of a registered window class
            L"",					 // window caption
            WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_TABSTOP |
            WS_VSCROLL | ES_LEFT |ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL,				 // window style
            0,			 // x  position
            0,			 // y  position
            400,			 // width
            400,			 // height
            parent,			 // handle to owner window
            NULL,			 // handle to menu
            ::GetModuleHandle(NULL), // application instance
            NULL);
        ::ShowWindow(hwnd, SW_SHOW);
    }

    ~RichEdit()
    {
        if (hwnd) ::DestroyWindow(hwnd);
    }

private:
    HWND hwnd;
};

LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch(uMsg)
    {
    case WM_DESTROY:
        ::PostQuitMessage(0);
        break;
    default:
        return ::DefWindowProc(hWnd, uMsg, wParam, lParam);
    }
    return 0;

}

HWND CreateMainWindow(HINSTANCE hInst, int CmdShow,
                      LRESULT (WINAPI *pWndProc) (HWND,UINT,WPARAM,LPARAM))
{
    WNDCLASSEX wc;
    wc.cbSize = sizeof(wc);
    wc.style = CS_VREDRAW | CS_HREDRAW;
    wc.lpfnWndProc = pWndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInst;
    wc.hIcon = ::LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor = ::LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH) ::GetStockObject(WHITE_BRUSH);
    wc.lpszMenuName = NULL;
    wc.lpszClassName = L"WndClass";
    wc.hIconSm = ::LoadIcon(NULL, IDI_APPLICATION);

    ::RegisterClassEx(&wc);

    HWND hWnd = ::CreateWindow(L"WndClass", L"", 
                             WS_OVERLAPPEDWINDOW, 
                             100, 100,
                             500, 500, 
                             NULL, (HMENU) NULL, hInst, NULL);

    ::ShowWindow(hWnd, CmdShow);

    return hWnd;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmLine, int nCmdShow)
{
    HWND parent = CreateMainWindow(hInstance, nCmdShow, WndProc);
    RichEdit re(parent);

    MSG msg;
    while (::GetMessage(&msg, NULL, 0, 0))
    {
        ::TranslateMessage(&msg);
        ::DispatchMessage(&msg);
    }
    return msg.wParam;
}
&#13;
&#13;
&#13;

文本:

യൗവനംംകുുുുമാമാമാമാമാമാമാമാമാമാമാമാമാമാൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂൂാാാാാാാാാാാാാാാാാാാാാാാാാാാാാാാാാാാാ പി.സികുട്ടികൃഷ്ണന്ആആത്തില്പ്പെപെംംപെംംംം添加了更多相关信息和更多信息。 &#39;സുന്ദരികളുംംുന്ദരന്മാരും&#39;-ഇതിഹാസസമൃദ്ധിയുള്ളളആഒ്്്മമമമമമമമമമമമമമമമമമമ。。.്്്്്്്്്മമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമമ 1920-കളിലെഖിലാഫത്ത്പ്രസ്ഥാനം,ദേശീയസ്വാതന്ത്ര്യസമരം,മലബാര്കലാപം,കമ്മ്യൂണിസ്റ്റ്മുന്നേറ്റം,രണ്ടാംലോകമഹായുദ്ധംതുടങ്ങിയവയുടെപശ്ചാത്തലത്തില്മലബാര്കേന്ദ്രമാക്കിനിരവധിവ്യക്തികളുടെജീവിതങ്ങളിലൂടെരാഷ്ട്രീയ-സാമൂഹിക-കുടുംബബന്ധങ്ങളില്വന്നവമ്പിച്ചമാറ്റങ്ങള്അവതരിപ്പിക്കുന്നനോവലാണ്&#39;സുന്ദരികളുംസുന്ദരന്മാരും&#39 ;. ഉമ്മാച്ചു,അണിയറ,മിണ്ടാപ്പെണ്ണ്,അമ്മിണി,ആമിന,തേന്മുള്ളുകള്എന്നീനോവലുകളും&#39;രാച്ചിയമ്മ&#39;യും&#39;ഗോപാലന്നായരുടെതാടി&#39;യുംപോലുള്ളസുന്ദരങ്ങളായനിരവധിചെറുകഥകളുംഉറൂബ്മലയാളത്തിനുനല്കി。 നാടകം,കവിത,ഉപന്യാസംയാസംഎ്്്്്്ളളംംംംംംംംംംംംം<<<<<<<<<<<<<<<<<<<<<<<<<。

任何想法可能是什么?

0 个答案:

没有答案