powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Win API С++ создание формы со всеми элементами
25 сообщений из 87, страница 1 из 4
Win API С++ создание формы со всеми элементами
    #36960952
Niwalke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Возник такой вопрос можно ли с помощью API функций создать форму и несколько компонентов на ней(текстбокс, статусбар и.т.д)?
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #36960958
BpeguH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Niwalke, да.
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #36960990
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 17.11.2010 10:04, Niwalke wrote:

> Здравствуйте. Возник такой вопрос можно ли с помощью API функций создать форму и
> несколько компонентов на ней(текстбокс, статусбар и.т.д)?

Конечно можно. А ты как думал ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #36961081
Не верь им!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Niwalke, они все врут.
C++Builder и VCL только.
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #36962172
mammmoth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так это ж и есть интерфейс прикладного программирования при помощи которого все и делается, глубже тока машинные коды, ассэмблер.
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #36962384
schizophrenic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давайте низкоуровневые языки не упоминать..
текстбокс, статусбар и.т.д есть не только а VCL
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #36962833
Niwalke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если все-таки можно это прописать через апишные функции, подскажите какими операторами это делается?
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #36963076
pemp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все это и все остальное очень просто создается одной функцией CreateWindow(подробности в мсдне) гораздо веселее с этими контролами потои что-то делать и обрабатывать от них сообщения :) лучше для начала книжку полистать Петцольда например без знания матчасти после ВЛЦ писать на винАПИ сплошной разрыв шаблона :)
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #36966702
Niwalke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CreateWindow(BUTTON, "Press me", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
10, 10, 80, 30, hwnd, (HMENU)10000, hInstance, NULL) Использую такую запись он не понимает Button hwnd hInstance. Что неправильно я делаю?
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #36966708
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NiwalkeCreateWindow(BUTTON, "Press me", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
10, 10, 80, 30, hwnd, (HMENU)10000, hInstance, NULL) Использую такую запись он не понимает Button hwnd hInstance. Что неправильно я делаю?
Вам конкретно для чего все это нужно ?
Зачем писать интерфейс именно на WinAPI ?

Это достаточно нетривиальное мероприятие. И, даже если, вы дорастете до уровня "создавать GUI на WinAPI" вы такие вопросы перестанете задавать.
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #36966870
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
i remove some stuff but you will find out how to use:
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #36980408
Niwalke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне требуетсясделать эти операции с использованием библиотек. Я сделал это через класс, в которо прописывал структуру окна и с помощью CreateWindow создавал окно и элементы на ней. Но мне необходимо реализовать это используя библиотеки, что-то вроде как это делается в макросах: прописываешь библиотеку и в дальнейшем выполняются все действия
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #36980578
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NiwalkeМне требуетсясделать эти операции с использованием библиотек. Я сделал это через класс, в которо прописывал структуру окна и с помощью CreateWindow создавал окно и элементы на ней. Но мне необходимо реализовать это используя библиотеки, что-то вроде как это делается в макросах: прописываешь библиотеку и в дальнейшем выполняются все действияТы уж определись что ты хочешь.
Если тебе нужно использовать библиотеку, то тебе совсем не нужно вручную вызывать CreateWindow. Если тебе нужно вручную вызывать CreateWindow, значит все библиотеки идут лесом.
Либо библиотеки, либо WinAPI. Смешивать их глупо.
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #36980626
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не понял, нужно разработать свою библиотеку и ее использовать, или брать готовую ????
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #36980630
Niwalke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощение что ввел в заблуждение необходимо использовать готовую библиотеку
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #36980666
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Niwalke,

Тогда бери MFC - она очень бизка к WinAPI, но скрывает как раз мороку с хендлами и прочим.
И примеров по ней много.

Единственное - в Express - редакции ее нет.

Как вариант, можно рассмотреть OWLNext или WTL
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #36980894
Niwalke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Только вот попытался это сделать через макрос в Excel создать форму с копкой не получилось. Библиотеку видимо надо прописать. Как мне кажется.
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #36980968
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NiwalkeСпасибо. Только вот попытался это сделать через макрос в Excel создать форму с копкой не получилось. Библиотеку видимо надо прописать. Как мне кажется.Так какая у тебя конечная цель то?
Что ты хочешь в итоге получить?
Из Экселя создавать окошки через WinAPI в принципе (наверное) можно а вот узнавать о события произошедших в созданом окне - нельзя. Эксель работает через VBA, а на нем сделать колбеки могущие работать с машинным стеком нереально.
Если хочешь создавать окошки из Экселя, изучай ActiveX.
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #36981088
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl Эксель работает через VBA, а на нем сделать колбеки могущие работать с машинным стеком нереально.
Реально(AddressOf), но боюсь топикстартер не осилит
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37022037
Niwalke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Возник вопрос: как создать окно windows, с помощью библиотеки .dll?. Я создал приложение которое создает окно и различные элементы, но через класс окна, и затем через CreateWindow() создавал все необходимое. Можно ли этот код изменить чтобы создавалось окно посредством библиотеки .dll?
Код:
Код: plaintext
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.
// Hello1.cpp
#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
///////////////////////////////////////////////////////////////////////////////////////////////
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
HWND hMainWnd;
HWND hwndButtonHide;
HWND hwndCombo;
HWND hwndEdit;
HWND hwndCheck;
HWND hwndRadioCheck;
char szClassName[] = "MyClass";
MSG msg;
WNDCLASSEX wc;

// Заполняем структуру класса окна
wc.cbSize = sizeof(wc);
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra =  0 ;
wc.cbWndExtra =  0 ;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName = szClassName;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

// Регистрируем класс окна
if (!RegisterClassEx(&wc)) {
MessageBox(NULL, "Cannot register class", "Error", MB_OK);
return  0 ;
}

// Создаем основное окно приложения
hMainWnd = CreateWindow(
szClassName, "A Hello1 Application", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,  0 , CW_USEDEFAULT,  0 ,
(HWND)NULL, (HMENU)NULL,
(HINSTANCE)hInstance, NULL
);
hwndButtonHide = CreateWindow("BUTTON","BUTTON!", WS_VISIBLE | WS_CHILD,
 10 , 10 , 261 , 90 , hMainWnd, NULL, (HINSTANCE)hInstance, NULL);

hwndCombo = CreateWindow("COMBOBOX","Combo!", WS_VISIBLE | WS_CHILD,
 10 , 100 , 261 , 90 , hMainWnd, NULL, (HINSTANCE)hInstance, NULL);
hwndEdit = CreateWindow("EDIT","Edit!", WS_VISIBLE | WS_CHILD,
 10 , 200 , 261 , 90 , hMainWnd, NULL, (HINSTANCE)hInstance, NULL);
hwndCheck = CreateWindow("BUTTON","Checkbox!", WS_CHILD|WS_VISIBLE|BS_AUTOCHECKBOX,
 10 , 300 , 261 , 90 , hMainWnd, NULL, (HINSTANCE)hInstance, NULL);
hwndRadioCheck = CreateWindow("BUTTON","RadioCheck!", WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON,
 10 , 400 , 261 , 90 , hMainWnd, NULL, (HINSTANCE)hInstance, NULL);


if (!hMainWnd) {
MessageBox(NULL, "Cannot create main window", "Error", MB_OK);
return  0 ;
}

// Показываем наше окно
ShowWindow(hMainWnd, nCmdShow);
// UpdateWindow(hMainWnd);

// Выполняем цикл обработки сообщений до закрытия приложения
while (GetMessage(&msg, NULL,  0 ,  0 )) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return msg.wParam;
}
///////////////////////////////////////////////////////////////////////////////////////////////
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
HDC hDC;
PAINTSTRUCT ps;
RECT rect;

switch (msg)
{
case WM_PAINT:
hDC = BeginPaint(hWnd, &ps);

GetClientRect(hWnd, &rect);
DrawText(hDC, "Hello, World!", - 1 , &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER );

EndPaint(hWnd, &ps);
return  0 ;

case WM_CLOSE:
DestroyWindow(hWnd);
return  0 ;

case WM_DESTROY:
PostQuitMessage( 0 );
return  0 ;

default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}

return  0 ;
}
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37022102
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Niwalke,

Я тебе открою страшную тайну: ты уже пользуешься .dll

Ты же сам не писал код функции CreateWindow, верно? Ты ее только используешь. А раз ты сам функцию не описываешь, а она при этом работает, то значит эта функция где-то находится... А где она находится? Правильно, в одной из системных .dll
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37022199
Niwalke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как создать собственную библиотеку типа createwindow, чтобы исключить использование windows.h. И создать окно со всеми компонентами на основании кода выше
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37022509
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NiwalkeКак создать собственную библиотеку типа createwindow, чтобы исключить использование windows.h. И создать окно со всеми компонентами на основании кода выше

Это невозможно. В той или иной степени тебе придётся использовать Win32 API чтобы запрограммировать GUI, хотя бы чтобы рисовать на экране.
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37022511
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NiwalkeКак создать собственную библиотеку типа createwindow, чтобы исключить использование windows.h. И создать окно со всеми компонентами на основании кода выше

Слушай, ну что ж тебе надо -то ? Уже окно, через API, с использованием .dll.
что ещё-то надо ?
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37022514
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlИз Экселя создавать окошки через WinAPI в принципе (наверное) можно а вот узнавать о события произошедших в созданом окне - нельзя. Эксель работает через VBA, а на нем сделать колбеки могущие работать с машинным стеком нереально.


Ну, в VB такое точно можно.
В общем, там можно вызвать любую функцию из любой С-шной DLL, и наоборот, экспортнуть
свою. На VBA точно не знаю, но подозреваю, что тоже можно.
...
Рейтинг: 0 / 0
25 сообщений из 87, страница 1 из 4
Форумы / C++ [игнор отключен] [закрыт для гостей] / Win API С++ создание формы со всеми элементами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]