С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Win32 API ввод текста в окно. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Возведение в стрепень, рекурсивная функция. http://www.cyberforum.ru/cpp/thread76634.html
Задание: написать рекурсивную функцию, которая возводит число в степень путем многократного умножения числа самого на себя. (Сам знаю, что можно сделать гораздо проще и оптимальнее, но надо именно...
C++ Функция даны действительные числа s,t. Получить: http://www.cyberforum.ru/cpp/thread76505.html
C++ Что такое стрип?
Говорят, релизные бинарники надо стрипать. А что такое стрип и как его делать?
Есть программа (замена строк), надо как-то доработать. C++
Программа компилируется, однако при зауске, выдает ошибку: "Segmentation fault" Программа меняет две строки Name1 и Name2. Нужно, чтобы была именно с указателями, а также чтобы внешная функция...
C++ Семестровая Программа http://www.cyberforum.ru/cpp/thread76395.html
у меня на семестровой такая тема : Программа для библиотеки. Продумать какая информация должна храниться в библиотеке, и какого рода обработка возможна (например, выдать карточку на книгу, выдать...
C++ Интерполяция Ньютона с равномерными интервалами Написать програаму по теме "Интерполяция Ньютона с равномерными интервалами" задаются значение узлов и значение точек и ищем интерполяцию функции кто нибудь сможет мне помочь?) подробнее

Показать сообщение отдельно
Aye Aye
369 / 283 / 36
Регистрация: 17.12.2009
Сообщений: 567

Win32 API ввод текста в окно. - C++

19.12.2009, 19:12. Просмотров 1330. Ответов 0
Метки (Все метки)

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
LONG APIENTRY WindowProcedure(HWND hwndMain, UINT uMsg, WPARAM wParam,LPARAM lParam)
//...
   case WM_CHAR:
                switch (wParam) {
         case 0x08: /*при нажатии [backspace] Г*Г* ñèìâîë Г*Г*Г§Г*Г¤ */
                HideCaret(hwndMain);
                hdc = GetDC(hwndMain);
                GetCharWidth32(hdc, (UINT) ch, (UINT) ch, &nCharWidth);
                ch=char(255);//пустой знак
                TextOut(hdc,
                    //вот тут вычиляю - начиная с какого места рисовать пустой знак.
                            nCaretPosX=nCaretPosX-nCharWidth, 
                            nCaretPosY * dwCharY, 
                            &ch, 1);
                SetCaretPos(nCaretPosX, nCaretPosY * dwCharY); 
                ShowCaret(hwndMain);
                ReleaseDC(hwndMain, hdc);
 
         /* очищаем буфер */
                pchInputBuf[cch] = ' ';
                cch--; //индекс буфера.               
                return 0;
//...
как сделать, чтобы закрашивался весь символ который коретка должна стереть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.