Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 24.03.2010
Сообщений: 10

Шапка окна программы. С китайского на русский

24.03.2010, 20:14. Показов 2367. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем день добрый.
Только начинаю изучать С++, поэтому прошу помощи. Желательно полной и подробной.
Подскажите, как поменять в программе китайские иероглифы на русские? Излазил весь форум, но ничего полезного для себя не нашел.
Код приведен ниже. Так же скрин.
Пользую VS2008.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
//#include <pr.h>
//#include "tragetver.h" 
#include "stdafx.h"
#include "Resource.h"
 
 
#define APP_ICON  "Color1"
#define APP_MENU  "Color1"
// note: no cursor assignment
#define  XSTEPS    8
#define  YSTEPS    8
 
HANDLE hInst;
char   szAppTitle[] = "Standard Palette Colors";
char   szAppName[]  = "Color1";
int    xSize, ySize;
 
///===================================================================
long APIENTRY WndProc( HWND hwnd, UINT msg, UINT wParam, LONG lParam )
{
    switch( msg )
    {
        case WM_SIZE:
            xSize = ( LOWORD( lParam ) ) / XSTEPS;
            ySize = ( HIWORD( lParam ) ) / YSTEPS;
            InvalidateRect( hwnd, NULL, TRUE );
            break;
 
        case WM_DESTROY:
            PostQuitMessage(0);
            break;
 
        default:
            return( DefWindowProc( hwnd, msg, wParam, lParam ) );
    }
    return 0;
}
 
 
 
///===================================================================
BOOL InitApplication( HINSTANCE hInstance ) // identifies current instance
{
    WNDCLASS  wc;
 
    wc.style = (UINT) NULL;             // class style(s)
    wc.lpfnWndProc = (WNDPROC) WndProc; // function retrieving messages
                                        // for windows of this class 
    wc.cbClsExtra    = 0;               // no extra class data      
    wc.cbWndExtra    = 0;               // no extra window data     
    wc.hInstance     = hInstance;       // application owning class 
#ifdef APP_ICON                         // application has icon
    wc.hIcon         = LoadIcon( hInstance, (LPCWSTR)APP_ICON );
#else                                   // application has no icon
    wc.hIcon         = LoadIcon( NULL, IDI_APPLICATION );
#endif
#ifdef APP_CURSOR                       // assign application cursor
    wc.hCursor       = LoadCursor( hInstance, APP_CURSOR );
#else                                   // use stock (system) cursor
    wc.hCursor       = LoadCursor( NULL, IDC_ARROW );
#endif
    wc.hbrBackground = (HBRUSH)GetStockObject( WHITE_BRUSH );
//#ifdef APP_MENU
//  wc.lpszMenuName  = APP_MENU;        // menu name in .RC/.RES file
//#else
    wc.lpszMenuName  = NULL;
//#endif
    wc.lpszClassName = (LPCWSTR)szAppName;      // name used in CreateWindow
    return( RegisterClass( &wc ) );     // register class & return result
}
 
//=======================================================================//
// InitInstance is called -- at initialization time -- for every         //
// instance of the application executed and performs tasks which cannot  //
// be shared across multiple instances.                                  //
//                                                                       //
// In this example, InitInstance saves the instance handle (using a      //
// static variable) before creating and displaying the program's main    //
// window.                                                               //
//=======================================================================//
 
/*-----------XXXXX----------*/
BOOL InitInstance( HINSTANCE hInstance, // current instance identifier
                   int    nCmdShow )    // param for ShowWindow() call
{
    HWND  hWnd;                         // main window handle
 
    hInst = hInstance;      // save current instance handle as static variable
    hWnd = CreateWindow(                // create main window for this instance
                (LPCWSTR)szAppName,     // see RegisterClass() call 
                (LPCWSTR)szAppTitle,    // text for window title bar    
                WS_OVERLAPPEDWINDOW,    // window style             
                CW_USEDEFAULT,          // horizontal position      
                CW_USEDEFAULT,          // vertical position        
                CW_USEDEFAULT,          // horizontal size          
                CW_USEDEFAULT,          // vertical size            
                NULL,                   // overlapped = no parent   
                NULL,                   // uses window class menu   
                hInstance,              // instance owning window   
                NULL   );               // Pointer not required     
    if( ! hWnd ) return( FALSE );   // if CreateWindow() fails ... 
    ShowWindow( hWnd, nCmdShow );   // make window visible      
    UpdateWindow( hWnd );           // initiate WM_PAINT message    
    return( TRUE );                 // return success           
}
 
///===================================================================
int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
    MSG   msg;
 
    if( ! hPrevInstance )
        if( ! InitApplication( hInstance ) )
            return( FALSE );
    if( ! InitInstance( hInstance, nCmdShow ) )
        return (FALSE);
    while( GetMessage( &msg, NULL, 0, 0 ) )
    {
        TranslateMessage( &msg );
        DispatchMessage( &msg );
    }
    return( msg.wParam );
}
Заранее спасибо!
Миниатюры
Шапка окна программы. С китайского на русский  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.03.2010, 20:14
Ответы с готовыми решениями:

В России снова создают «русский iPhone», теперь на основе китайского прототипа
Российские производители уже несколько раз заявляли о разработке первого отечественного смартфона. Сначала это был китайский «аналог iPhone...

Расползается шапка при уменьшении размера окна браузера
Всем привет! Верстку только-только осваиваю =&gt; далеко не всё гладко, за что прошу простить. Надо сделать горизонтальное меню...

Красивая шапка Windows окна, и кнопки закрыть, свернуть, развернуть
Добрый день! Подскажите, можно ли что то сделать со стандартной шапкой Windows окна, и кнопками на ней (свернуть, развернуть,...

9
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
24.03.2010, 21:36
заменить все char на wchar_t.
и текстовые константы, типа "Standard Palette Colors" на L"Standard Palette Colors".
0
0 / 0 / 0
Регистрация: 24.03.2010
Сообщений: 10
25.03.2010, 04:22  [ТС]
К сожалению не помогло.
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
25.03.2010, 05:10
допиши в начале программы
#define UNICODE
#define _UNICODE
0
0 / 0 / 0
Регистрация: 24.03.2010
Сообщений: 10
25.03.2010, 18:55  [ТС]
Спасибо большое. Работает.
Извиняюсь за несоблюдение правил, однако еще вот что хотелось бы узнать.
Хочу вывести меню в окне, но есть кой какие проблеммы:
На данном этапе компилятор выдает ошибку о некорректности типов.
Code
1
2
3
4
5
#ifdef APP_MENU
    wc.lpszMenuName  = [B]APP_MENU;[/B]     // menu name in .RC/.RES file
#else
    wc.lpszMenuName  = NULL;
#endif
После изменения типа данных программа работает нормально, но вот менюшки так и не видно.
Code
1
2
3
4
5
#ifdef APP_MENU
    wc.lpszMenuName  =[B] (LPCWSTR)APP_MENU[/B];        // menu name in .RC/.RES file
#else
    wc.lpszMenuName  = NULL;
#endif
Как все-таки вывести меню?
Заранее спасибо!
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
25.03.2010, 19:17
Цитата Сообщение от OmKVAnt Посмотреть сообщение
На данном этапе компилятор выдает ошибку о некорректности типов.
лучше скопируйте текст ошибки.

но, скорее всего, там не текстовая строка, а вообще константа.
тогда можно попробовать так
wc.lpszMenuName = MAKEINTRESOURCE(APP_MENU);
а лучше посмотрите, как там у вас меню называется в ресурсах.
обычно, что-то вроде IDR_MENU, а не APP_MENU

Не по теме:

на чем это, интересно, вы пишите? и с какими настройками... О_о
я с такими проблемами сталкиваюсь, только когда все приложение руками делаю, "с нуля".
обычно визард студии делает вполне рабочий код

0
0 / 0 / 0
Регистрация: 24.03.2010
Сообщений: 10
25.03.2010, 19:29  [ТС]
Сама ошибка:
.../.../.../: error C2440: '=' : cannot convert from 'const char [7]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

Собственно объясню ситуацию.
Данный код был создан в С.
Скинул мне его мой проеподаватель по предмету "Технология программирования". Пытался разобраться с возникающими проблемами сам (как и в самом коде), но не все так, как хотелось бы, т.к. с С++ знаком чуть больше полугода и то с самыми основами. Решил обратиться к более компитентным людям (т.е. сюда).
Пишу (пытаюсь писать) в VS2008 (C++). С остальными словами пока, к сожалениями, мало знаком
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
25.03.2010, 19:51
Цитата Сообщение от OmKVAnt Посмотреть сообщение
Данный код был создан в С.
Скинул мне его мой проеподаватель по предмету "Технология программирования".
это как-то не объясняет, почему стандартные настройки визарда не работают.


да неважно.
если что - в таких случаях можно и просто сделать строку.
C++
1
2
wchar_t menu_name[] = "IDR_MENU";
wc.lpszMenuName = menu_name;
0
0 / 0 / 0
Регистрация: 24.03.2010
Сообщений: 10
28.03.2010, 18:40  [ТС]
Увы, не подошло... Не работает...
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
29.03.2010, 00:27
Цитата Сообщение от OmKVAnt Посмотреть сообщение
Увы, не подошло... Не работает...
тогда скрин раздела ресурсов в студию.
этот метод не может не работать, если имена совпадают.

кстати, в вашем первом посте написан бред.
у вас для ресурса иконки и ресурса меню определено одно и то-же имя.
Цитата Сообщение от OmKVAnt Посмотреть сообщение
#define APP_ICON "Color1"
#define APP_MENU "Color1"
чего в природе приложения быть не может.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.03.2010, 00:27
Помогаю со студенческими работами здесь

Шапка программы в делфи
Здравствуйте, нарисовал шапку для программы (не знаю как это называется, где еще кнопки минимизации, сворачивания из выхода из программы) и...

VC 2008.Русский язык в заголовке окна.
Создаю WIN32 Progect,в любом окне , которое создается, все надписи(заголовок окна, надписи на кнопках) отображаются в виде ??????...

Не вижу окна с кодом (нет окна редактирования): найти причины странного поведения программы
Создаю проект, а кроме синего экрана ничего больше нет, не знаю, что делать. Прочла здесь же про образователь решений(типа должен быть...

Создание невидимого окна поверх окна другой программы
Здравствуйте, как сделать невидимое окно поверх окна сторонней программы , например блокнота, и если изменился размер блокнота то и окно...

Свернуть все окна, кроме окна программы
здравствуйте. как программно свернуть все окна кроме окна самой программы


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru