![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создаю Static... Получаю иероглифы вместо кириллицы. [Win2k]
alxx © (2004-02-27 17:45:00)Примерно так это происходит:
CREATESTRUCT cs;
cs.dwExStyle = 0; cs.lpszClass = "STATIC";
cs.lpszName = strText; cs.style = WS_CHILD | WS_VISIBLE;
cs.x = x; cs.y = y; cs.cx = nWidth; cs.cy = nHeight;
cs.hwndParent = hWndParent;
cs.hMenu = (HMENU)4545;
cs.hInstance = ghInst; cs.lpCreateParams = NULL;
ghTitle = CreateWindowEx(cs.dwExStyle, cs.lpszClass, s.lpszName,
cs.style, cs.x, cs.y, cs.cx, cs.cy,
cs.hwndParent, cs.hMenu, cs.hInstance,
cs.lpCreateParams);
HFONT hFont = (HFONT)::SendMessage(hWnd, WM_GETFONT, 0, 0);
LOGFONT logFont;
::GetObject(hFont, sizeof(LOGFONT), &logFont);
lstrcpy( (LPSTR)&logFont.lfFaceName, "Courier" );
logFont.lfWeight = FW_SEMIBOLD;
logFont.lfCharSet = RUSSIAN_CHARSET;
::SendMessage(ghTitle, WM_SETFONT, (WPARAM)hFont, TRUE);
Можно как-то это побороть?
alxx (2004-03-02 14:49:00) [1]Неверно понял совет... Посмотреть можно было. Но дело оказалось в том, что строка strText читалась из ресурсов, и читалась неверно. Видимо то ли настройка проекта не та, то ли у VC++ проблемы с хранением строк в ресурсе, но это уже другой вопрос :)
А я просто задаю строки не в ресурсах, а прямо в коде и в данном случае меня это устраивает.
Игорь Шевченко (2004-03-02 14:18:00) [2]alxx © (02.03.04 13:18)
> мне это надо в VC++...
А какая разница? Вызовы API-функций везде одинаковы.
Ты поделись, отчего проблема решилась, другим людям тоже интересно.
alxx (2004-03-02 14:08:00) [3]Все, нашел проблему. Она была в исходной строке.. :)
alxx (2004-03-02 13:18:00) [4]По секрету: мне это надо в VC++... На delphi я бы пожалуй TLabel вставил бы просто...
Игорь Шевченко (2004-03-02 13:09:00) [5]alxx © (02.03.04 12:02)
А посмотреть, как Delphi'йкий TStaticText работает не помогает ?
У него вроде с русским все нормально
alxx (2004-03-02 12:02:00) [6]Вроде как она не дает засунуть LPWSTR в cs.lpszName... Типы то разные...
alxx (2004-03-02 11:03:00) [7]Хотелось бы обратить. Надо сделать так:
cs.lpszName = _T("Некоторая строка");
?
panov (2004-03-02 10:59:00) [8]А если обратить внимание на Unicode?
alxx (2004-03-02 10:31:00) [9]Удалено модератором
Примечание: Создание пустых сообщений
alxx (2004-02-27 17:46:00) [10]Забыл предпоследнюю строчку вписать:
HFONT hFont = ::CreateFontIndirect(&logFont);