Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ WinAPI Win Api - GetSystemInfo на сайте msdn.com увидел как выглядит тип SYSTEM_INFO: typedef struct _SYSTEM_INFO { union { DWORD dwOemId; struct { WORD wProcessorArchitecture; WORD wReserved; }; https://www.cyberforum.ru/ win-api/ thread1102632.html Ошибки при компиляции C++ WinAPI
Здравствуйте. Со вчерашнего дня при компиляции любого проекта начали выскакивать подобные ошибки: C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\winnt.h(350): error : identifier "WPCHAR" is undefined 1> typedef WPCHAR PWCHAR, *LPWCH, *PWCH; 1> ^ 1> 1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\winnt.h(351): error : identifier "WPCHAR" is undefined 1> ...
C++ WinAPI WinApi хук для обработчика событий глобальных хоткеев Привет, как сделать обработчик глобальных хоткеев ? и как их регистрировать в системе ? https://www.cyberforum.ru/ win-api/ thread1102506.html C++ WinAPI Мьютексы https://www.cyberforum.ru/ win-api/ thread1101727.html
Добрый день. Есть два вопроса по мьютексам. Если я создаю n потоков в приостановленном состоянии CREATE_SUSPENDED, а затем возобновляю их в таком же порядке, то синхронизация не работает. Пример: ... void main() { ghMutex = CreateMutex(NULL, FALSE, NULL); hThread1 = CreateThread(NULL,0,func1,NULL,CREATE_SUSPENDED,NULL); hThread2 =...
Manual по Win API C++ WinAPI
помогите разобраться с Win API. хочу попробовать написать на С++ желательно на русском и с примерами, чтоб понятнее было
C++ WinAPI Изменить цвет дочернего окна Создаю дочерние окна таким образом: #define ID_FIRSTCHILD 100 ... ... ... for (int i = 0; i < 5; i++) { WNDCLASS w; memset(&w, 0, sizeof(WNDCLASS)); https://www.cyberforum.ru/ win-api/ thread1100452.html
C++ WinAPI Отключить группу Radio Button https://www.cyberforum.ru/ win-api/ thread1100407.html
НА форме есть несколько групп Radio Button. Как можно отключить одну группу Radio Button, т.е. чтобы все в одной группе стали не доступными. Отключать по одной мне кажется не совсем правильно.
Три бегущие строки в многопоточном приложении C++ WinAPI
Здраствуйте! Столкнулся со следующей проблемой: дали задачку в которой нужно Разработать многопоточную программу, в одном окне которой одновременно отображаются с задержкой 4с три бегущие строки. По сути многопоточность я знаю вот только как сделать бегущую строку на winapi я не знаю. Литературы подходящей не нашел, помогите пожайлуста или приведите пример как это реализовать, заранее...
C++ WinAPI Обработка нажатий клавиш подскажите как обрабатывать нажатия клавиш символов (цифры, буквы) в WinApi C++, служебные клавиши обрабатываются как то так: switch (message) { case WM_DESTROY: PostQuitMessage(0); break; case WM_KEYDOWN: switch (wParam) { case VK_LEFT: https://www.cyberforum.ru/ win-api/ thread1099850.html C++ WinAPI Микшеры под win7 Разбираюсь с управлением звуком на уровне WinAPI. Требуется однозначно определить какой регулятор или выключатель куда относится и как называется. С XP проблем с распознаванием было не так много. Практически всегда понятно что к чему относится. На Win7 поменяли все кардинально. И самое главное это поменяли логику соединений в микшерах. То есть если я нахожу в какой то узле название, то для него... https://www.cyberforum.ru/ win-api/ thread1099370.html
Функция-обёртку для вызова некоторых диалоговых окон Windows. Нарушение прав доступа C++ WinAPI
Доброго времени суток. Пытаюсь создать функцию-обёртку для вызова некоторых диалоговых окон Windows. Пока разбираюсь с диалоговым окном открытия файла, но после компиляции программа выдаёт необработанное исключение: Необработанное исключение по адресу 0x75D508F8 (KernelBase.dll) в OFBench.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCCCCCCCC. Код (пока в таком виде): class...
C++ WinAPI Создание процесса (калькулятор) https://www.cyberforum.ru/ win-api/ thread1099269.html
Здравствуйте . У меня есть пример программы , которая создаёт процесс "Калькулятор" . Вот пытаюсь всё с ней разобраться , но некоторые моменты непонятны . Надеюсь на Вашу помощь) Вот сама прога: #include "stdafx.h" #include <iostream> #include <windows.h> int _tmain(int argc, _TCHAR* argv) { STARTUPINFO si; //структура PROCESS_INFORMATION pi;//структура LPTSTR IpszSystemInfo; TCHAR...
1 / 1 / 0
Регистрация: 29.12.2013
Сообщений: 39
05.03.2014, 00:16  [ТС] 0

Вытащить нужный символ из ListBox или из EditBox - C++ WinAPI - Ответ 5860373

05.03.2014, 00:16. Показов 1095. Ответов 14
Метки (Все метки)

Ответ

Если бы я учился в институте то мне было-бы стыдно неделями разбираться и задавать такие глупые вопросы, а я так просто один упёртый електрик которому надо сделать свою програмку для управления портом. Я к сожалению уже стар чтоы изучать все азы языка, но находя готовые примеры в ГООГЛЕ мне всё таки удалось почти закончить свою цель. Вобщем я маленько разобрался (спасибо большое за ваши ответы). Вот мой примерчик (прошу не судить это не отлаженная программа а просто пример работы с ListBox). ПОЖАЙЛУСТА подскажите ещё как выгружать (и загружать) всё из ListBox в файл если не сложно с OpenFileDialog и с SaveFileDialog. Как закончу мою программу выложу в теме "LPT порт в winapi под winXP".

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
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
#include <windows.h>
#include <stdio.h>
 
#define ID_LOAD      100
#define ID_SAVE      101
#define ID_EXIT      102
#define ID_BT_ADD    201
#define ID_BT_DEL    204
#define ID_BT_PLUS   203
#define ID_BT_WRITE  200
 
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
char szClass[ ] = "List Box", sName[ ] = "Program", sString[ ] = "", 
sReadStr[4] = "000", sSym1[3] = "11", sSym2[3] = "14", sNrString[4] = "", 
sWrite[4] = "000", sResult[8] = " XX";
char buf[256];
int iNrString=1, iSym1, iSym2, iResult, iString, index=1, iReadStr;
HWND hList, hInfo, hReadStr, hSym1, hSym2, hResult, hWrite;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow)
{
    HWND hwnd;               
    MSG msg;          
    
    WNDCLASSEX wc;      
    wc.hInstance = hInstance;
    wc.lpszClassName = szClass;
    wc.lpfnWndProc = WindowProcedure;      
    wc.style = CS_DBLCLKS;                
    wc.cbSize = sizeof (WNDCLASSEX);
    wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wc.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor (NULL, IDC_ARROW);
    wc.lpszMenuName = NULL;                 
    wc.cbClsExtra = 0;                     
    wc.cbWndExtra = 0;                     
    wc.hbrBackground = CreateSolidBrush(RGB(211,211,211));
 
    if (!RegisterClassEx (&wc))
        return 0;
 
    hwnd = CreateWindowEx (0, szClass, "Strings ListBox", WS_OVERLAPPEDWINDOW, 
           400, 100, 400, 300, HWND_DESKTOP, NULL, hInstance, NULL);
    ShowWindow (hwnd, iCmdShow);
 
    while (GetMessage (&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
 
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{                
    switch (message) 
    {
     case WM_CREATE: 
          {                      
             HMENU hmenu = CreateMenu(); 
             HMENU hfile = CreateMenu();
             AppendMenu(hmenu, MF_POPUP, (UINT_PTR)hfile,"File");
             AppendMenu(hfile, MF_STRING, ID_LOAD,"Load");
             AppendMenu(hfile, MF_STRING, ID_SAVE,"Save");
             AppendMenu(hfile, MF_STRING, ID_EXIT,"Exit");
             SetMenu(hwnd, hmenu);  
                          
             CreateWindow("button", "Add", WS_VISIBLE | WS_CHILD,
             200,40,40,30, hwnd, (HMENU) ID_BT_ADD, NULL, NULL);
             CreateWindow("button", "Del String", WS_VISIBLE | WS_CHILD,
             250,40,80,30, hwnd, (HMENU) ID_BT_DEL, NULL, NULL);             
             CreateWindow("button", "Plus", WS_VISIBLE | WS_CHILD,
             140,95,50,50, hwnd, (HMENU) ID_BT_PLUS, NULL, NULL);
             CreateWindow("button", "Write Result in Nr.", WS_VISIBLE | WS_CHILD,
             10,180,130,30, hwnd, (HMENU) ID_BT_WRITE, NULL, NULL);
             
             hList = CreateWindow("listbox", "", WS_VISIBLE | WS_CHILD | WS_VSCROLL | ES_AUTOVSCROLL | LBS_DISABLENOSCROLL, 
             200, 80, 170, 150, hwnd,(HMENU) 1, NULL, NULL);
             SendMessage(hList, LB_ADDSTRING, 0, (LPARAM)"0 Example String");             
             hInfo = CreateWindow("edit", sName, WS_VISIBLE | WS_CHILD | WS_VSCROLL | ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_MULTILINE,
             70,10,120,40, hwnd, (HMENU) 1, NULL, NULL);
             hReadStr = CreateWindow("edit", sReadStr, WS_VISIBLE | WS_CHILD | ES_NUMBER,
             120,60,30,20, hwnd, (HMENU) 1, NULL, NULL);
             hSym1 = CreateWindow("edit", sSym1, WS_VISIBLE | WS_CHILD | ES_NUMBER,
             110,95,20,20, hwnd, (HMENU) 1, NULL, NULL);
             hSym2 = CreateWindow("edit", sSym2, WS_VISIBLE | WS_CHILD | ES_NUMBER,
             110,120,20,20, hwnd, (HMENU) 1, NULL, NULL);
             hResult = CreateWindow("edit", sResult, WS_VISIBLE | WS_CHILD,
             110,150,40,20, hwnd, (HMENU) 1, NULL, NULL);
             hWrite = CreateWindow("edit", sWrite, WS_VISIBLE | WS_CHILD | ES_NUMBER,
             150, 190, 30, 20, hwnd,(HMENU) 1, NULL, NULL);
          } break;
             
     case WM_PAINT:
         {   PAINTSTRUCT ps; HDC hDC; 
             hDC = BeginPaint(hwnd, &ps);
             SetTextColor(hDC, RGB(0,0,255));
             SetBkColor(hDC, RGB(211, 211, 211));
             TextOut(hDC, 10, 10, "Info", 4); 
             TextOut(hDC, 270, 10, "ListBox", 7);         
             TextOut(hDC, 10, 60, "Read string Nr.", 15);
             TextOut(hDC, 10, 95, "Symvol 1 Nr.", 12);  
             TextOut(hDC, 10, 120, "Symvol 2 Nr.", 12);
             TextOut(hDC, 10, 150, "Resultat", 8);   
             EndPaint(hwnd, &ps); 
         } break;
     
     case WM_COMMAND:
         switch(LOWORD(wParam))
         {
              case ID_LOAD:
              {    int iFileSize;
                   FILE *fz;
                   char *buffer = NULL;
                   fz = fopen("text.txt", "rb");
                   if(fz != NULL)          {  
                   fseek(fz, 0, SEEK_END);
                   iFileSize = ftell(fz);
                   buffer = (char*)malloc(iFileSize);
                   fseek(fz, 0, SEEK_SET);
                   fread(buffer, 1, iFileSize, fz);
                   fclose(fz);   }             
                   SendMessage((HWND)hInfo,(UINT) WM_SETTEXT, (WPARAM)1, (LPARAM)&*buffer);                    
                   free(buffer); 
              } break;
            
              case ID_SAVE:
              {    FILE *fz;
                   char *buffer = NULL;
                   int iLength; 
                   iLength = GetWindowTextLength(hInfo); 
                   buffer = (char*)malloc(iLength); 
                   GetWindowText(hInfo, buffer, iLength+1); 
                   fz = fopen("text.txt", "wb");
                   fwrite(buffer, 1, iLength, fz);
                   fclose(fz); 
                   free(buffer);
              } break;
              
              case ID_EXIT:
              {    PostQuitMessage(0);
              } break;
              
              case ID_BT_ADD:
              {    itoa(iNrString, sNrString,10);
                   SendMessage(hList, LB_ADDSTRING, 0, (LPARAM)&sNrString);
                   SendMessage(hList, LB_SETTOPINDEX, iNrString, 0);
                   SendMessage(hList, LB_SELECTSTRING, iNrString,(LPARAM)&sNrString );
                   iNrString++;                              
              } break;
              
              case ID_BT_DEL:
              {    if (iNrString>0)
                   {  iNrString--; 
                      SendMessage(hList, LB_DELETESTRING , iNrString, (LPARAM) 0);
                      SendMessage(hList, LB_SETTOPINDEX,iNrString-1, 0);
                      SendMessage(hList, LB_SETCURSEL, iNrString-1, 0); 
                   }
                   if (iNrString>15)
                   {  iNrString=0;  
                      SendMessage(hList, LB_RESETCONTENT , 0, (LPARAM) 0);       
                   }
              } break;
              
              case ID_BT_PLUS:
              {    SendMessage((HWND)hReadStr,(UINT) EM_GETLINE, 0, (LPARAM)&sReadStr);
                   iReadStr = atoi(sReadStr);                   
                   SendMessage(hList, LB_GETTEXT, iReadStr, (LPARAM)&sString);
                   SendMessage((HWND)hSym1,(UINT) EM_GETLINE, 0, (LPARAM)&sSym1);
                   iSym1 = atoi(sSym1);                   
                   memset(sResult, 0, sizeof(sResult));
                   sResult[0] = sString[iSym1];                
                   SendMessage((HWND)hSym2,(UINT) EM_GETLINE, 0, (LPARAM)&sSym2);
                   iSym2 = atoi(sSym2);
                   sResult[1] = sString[iSym2];
                   SendMessage((HWND)hResult,(UINT) WM_SETTEXT, (WPARAM)1, (LPARAM)&sResult);                     
              }
              break;
   
              case ID_BT_WRITE:
              {    SendMessage((HWND)hWrite,(UINT) EM_GETLINE, 0, (LPARAM)&sWrite);
                   index = atoi(sWrite);
                   SendMessage(hList, LB_GETTEXT, index, (LPARAM) (LPCTSTR) buf);
                   SendMessage((HWND)hResult,(UINT) EM_GETLINE, (WPARAM)1, (LPARAM)&sResult);   
                   strcat(buf,sResult);
                   SendMessage(hList, LB_DELETESTRING , index, (LPARAM) 0);
                   SendMessage(hList,  LB_INSERTSTRING, index, (LPARAM) (LPCTSTR) buf);
                   SendMessage(hList, LB_SELECTSTRING, index,(LPARAM)& buf);                               
              } break;     
         } break;
          
     case WM_DESTROY:
            PostQuitMessage (0);       
            break;
        default:                      
            return DefWindowProc (hwnd, message, wParam, lParam);
    }
    return 0;
}


Вернуться к обсуждению:
Вытащить нужный символ из ListBox или из EditBox C++ WinAPI
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.03.2014, 00:16
Готовые ответы и решения:

Как из типа string вытащить нужный по меру символ
подскажите как из типе string вытащить нужный по меру символ.

EditBox в ListBox-е
Хочу реализовать редактирование текста в CListCtrl, дополнительное окно вводить программу не хочу!...

Save and Load Strings to EditBox or ListBox
Доброго времени суток. Потихоньку во всём разобрался как работать со строками, с массивами, с...

Вытащить нужный текст из переменной
Здравствуйте, помогите вытащить нужный текст.. Текст находится между: Текст там может любой...

14
05.03.2014, 00:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2014, 00:16
Помогаю со студенческими работами здесь

Как из URI вытащить нужный текст
Всем доброго времени суток, Прошу помощи в таком вопросе. берем REQUEST_URI текущей страницы,...

Вытащить нужный текст с web-страницы
в общем проблема такая...нужно чтоб гороскоп обновлялся с определенной страницы....подскажите я...

Заменить каждый четный символ или на 'a', если символ не равен 'a' или 'b', или на 'c' в противном случае
Дана строка. Заменить каждый четный символ или на 'a', если символ не равен 'a' или 'b', или на ...

Найти в строке нужный символ
Здраствуйте. Мне необходимо реализовать нахождение имени картинки в пути к картинке. В дальнейшем...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru