Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/22: Рейтинг темы: голосов - 22, средняя оценка - 4.64
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 182

Преобразование TCHAR в int

13.05.2013, 20:18. Показов 4612. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть код:
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
#include <windows.h>
 
HBITMAP bmp;
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
HWND button1, button2, button3, button4, button5, orig;
HDC Hdc;
int rezcolors[3][3];
int newcolors;
 
 
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
     {
     static char szAppName[] = "Win" ;
     HWND        hwnd ;
     MSG         msg ;
     WNDCLASSEX  wndclass ;
 
     wndclass.cbSize        = sizeof (wndclass) ;
     wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
     wndclass.lpfnWndProc   = WndProc ;
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra    = 0 ;
     wndclass.hInstance     = hInstance ;
     wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
     wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
     wndclass.lpszMenuName  = NULL ;
     wndclass.lpszClassName = szAppName ;
     wndclass.hIconSm       = LoadIcon (NULL, IDI_APPLICATION) ;
 
     RegisterClassEx (&wndclass) ;
 
     hwnd = CreateWindow (szAppName,         // window class name
                    "Smoothing",                 // window caption
                    WS_OVERLAPPEDWINDOW,     // window style
                    CW_USEDEFAULT,           // initial x position
                    CW_USEDEFAULT,           // initial y position
                    600,                    // initial x size
                    600,                    // initial y size
                    NULL,                    // parent window handle
                    NULL,                    // window menu handle
                    hInstance,               // program instance handle
                    NULL) ;                  // creation parameters
 
     ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow (hwnd) ;
 
     while (GetMessage (&msg, NULL, 0, 0))
          {
          TranslateMessage (&msg) ;
          DispatchMessage (&msg) ;
          }
     return msg.wParam ;
     }
 
void gist(int xx)
{
    Rectangle(Hdc,xx-1,350,xx+186,350);
    int r,g,b,spectr,sumspectr,k2;
    for (int x=xx;x<xx+250;x++)
    {
        sumspectr=0;
        for (int y=100;y<350;y++)
        {
            r=GetRValue(GetPixel(Hdc, x, y));
        //  g=GetGValue(GetPixel(Hdc, x, y));
            //b=GetBValue(GetPixel(Hdc, x, y));
            spectr=r;
            sumspectr+=spectr;
        }
        k2=1;
        sumspectr=sumspectr/500;
        for (int q=0;q<sumspectr;q++)
        {
            SetPixel(Hdc, x, 350-k2, RGB(0,0,0));
            k2++;
        }
    }
}
 
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
     {
     HDC         hdc=GetDC(hwnd);
     PAINTSTRUCT ps ;
     RECT        rect ;
     Hdc=hdc;
     TCHAR buf1[256];
     TCHAR buf2[256];
     char buf111[256];
     int buf11;
     int buf22;
    CharToOem(buf1,buf111);
     buf11=int(buf111);
     buf22=int(buf2);
 
     switch (iMsg)
          {
          case WM_CREATE :
              bmp=(HBITMAP) LoadImage(NULL, "f.bmp", IMAGE_BITMAP,0,0, LR_LOADFROMFILE);
              button1 = CreateWindow ("EDIT","255",SS_CENTER | WS_CHILD | WS_VISIBLE,150,50,150,50,hwnd,NULL,0,NULL);
              button2 = CreateWindow ("BUTTON","перерисовка",WS_CHILD | WS_VISIBLE,300,50,150,50,hwnd,NULL,0,NULL);
              button3 = CreateWindow ("BUTTON","Ввести нижнюю границу",WS_CHILD | WS_VISIBLE,0,0,150,50,hwnd,NULL,0,NULL);
              button4 = CreateWindow ("BUTTON","Ввести верхнюю границу",WS_CHILD | WS_VISIBLE,150,0,150,50,hwnd,NULL,0,NULL);
              button5 = CreateWindow ("BUTTON","гистограмма",WS_CHILD | WS_VISIBLE,300,0,150,50,hwnd,NULL,0,NULL);
              orig = CreateWindow("EDIT","0", SS_CENTER | WS_CHILD | WS_VISIBLE, 0, 50, 150, 50, hwnd, NULL, 0, NULL);
             
              return 0 ;
          
          case WM_COMMAND:
        /*    if (lParam==LPARAM(button1))
              {
                 TCHAR buf1[256];
             GetWindowText(orig,buf1,lstrlen(buf1));
             TCHAR b1[256];
                   GetWindowText(button5,b1,lstrlen(b1));
              }*/
 
              if (lParam==LPARAM(button2))
              {
                  for (int x=1;x<250;x++)
                      for (int y=101;y<287;y++)
                  {
                      newcolors=GetRValue(GetPixel(hdc, x-1, y-1));
                      if(buf11>=newcolors)
                      {
                          SetPixel(hdc, x, y, RGB(0,0,0));
                      };
                      if(buf22<=newcolors)
                      {
                      SetPixel(hdc, x, y, RGB(255,255,255));
                      };
                      if(buf11<=newcolors && buf22>=newcolors)
                      {
                      newcolors=newcolors-buf11;
                      SetPixel(hdc,x,y,RGB(newcolors,newcolors,newcolors));
                      }
                      }       
                                      
              }
              
              if (lParam==LPARAM(button3))
              {
                  GetWindowText(orig,buf1,lstrlen(buf1));
              }
 
              if (lParam==LPARAM(button4))
              {
                   GetWindowText(button1,buf2,lstrlen(buf2));
              }
 
              if (lParam==LPARAM(button5))
              {
                  gist(0);
              }
              return 0;
 
          case WM_PAINT :
               hdc = BeginPaint (hwnd, &ps) ;
               HDC memdc;
               memdc=CreateCompatibleDC(hdc);
               SelectObject(memdc,bmp);
               BitBlt(hdc, 0, 100, 250, 186, memdc, 0, 0, SRCCOPY);
               DeleteDC(memdc);
               EndPaint (hwnd, &ps) ;
               return 0 ;
 
          case WM_DESTROY :
               PostQuitMessage (0) ;
               return 0 ;
          }
 
     return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
     }
Нужно преобразовать значения из EDITов в int. Как только не пытался сделать ничего не выходит. Пробовал int(buf1) выдавал большое значение. Пробовал из TCHAR в char, а потом в int получался мусор. Хотя при вводе данных в EDIT в buf1 все правильно записывается. Помогите преобразовать пожалуйста!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.05.2013, 20:18
Ответы с готовыми решениями:

map <int, TCHAR*> C++
Добрый день. Столкнулся с проблемой использования контейнера map под С++, заполненного массивами TCHAR, с ключем типа int. Проболел тему с...

Преобразование из TCHAR в string
HWND hwnd_wind; hwnd_wind = GetForegroundWindow(); int length; length = GetWindowTextLength(hwnd_wind); title = new TCHAR; ...

Преобразование char в TCHAR
Здравствуйте, ломаю голову как преобразовать char в TCHAR, для того чтобы вывести его потом через SetWindowText

5
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
13.05.2013, 20:26

Не по теме:

Цитата Сообщение от Сеня 2007 Посмотреть сообщение
Пробовал int(buf1) выдавал большое значение.
Изучаем WinAPI, не знаем основ...



Цитата Сообщение от Сеня 2007 Посмотреть сообщение
Нужно преобразовать значения из EDITов в int.
Можно заюзать функцию atoi
0
 Аватар для FreeMan108
121 / 121 / 32
Регистрация: 04.03.2013
Сообщений: 370
13.05.2013, 22:18
C++
1
2
int iResult;
sscanf (EditString,"%i",&iResult);
0
78 / 78 / 9
Регистрация: 26.12.2011
Сообщений: 217
14.05.2013, 00:07
Цитата Сообщение от Croessmah Посмотреть сообщение

Не по теме:


Изучаем WinAPI, не знаем основ...




Можно заюзать функцию atoi
Раз работаем с TCHAR, то логичнее соответствующую ей функцию _tstoi взять.

Не по теме:

Не в придирку будет сказано. Просто автор на соответствующие грабли может наступить при работе с atoi.

0
14.05.2013, 00:20

Не по теме:

Цитата Сообщение от zelim Посмотреть сообщение

Не по теме:

Не в придирку будет сказано. Просто автор на соответствующие грабли может наступить при работе с atoi.

Я лишь привел функцию, а как её будут использовать и какими макросами "скрывать" переделки - это уже не мое дело :)

0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 182
15.05.2013, 21:15  [ТС]
Спасибо всем использовал atoi. Теперь есть вопрос по поводу интерполяции. Как ее реализовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.05.2013, 21:15
Помогаю со студенческими работами здесь

Преобразование LPSTR в int
Есть 3 edit'аedit = CreateWindow(&quot;edit&quot;, NULL, WS_EX_CLIENTEDGE | WS_VISIBLE | WS_CHILD | ES_NUMBER, 35, 22, 100, 20, hWnd3, NULL, NULL,...

Преобразование HMODULE в int или DWORD
Здравствуйте, как можно преобразовать HMODULE в int или DWORD? И во что его вообще можно преобразовать?

Как привести строку типа TCHAR в int
Есть строка TCHAR tmp; в ней записано число, нужно вытащить это число и записать его в переменную типа Int. Раньше я использовал для этого...

TCHAR to int
Помогите, пожалуйста, исправить ошибку в программе. //программа выводит время песни в мс #include &quot;stdafx.h&quot; # include...

Преобразование TCHAR в double и обратно
Всем привет! Есть TCHAR массив, допустим со значением &quot;12.5&quot;, как его можно преобразовать в double? Пробовал так: TCHAR str; char...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru