powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Win API С++ создание формы со всеми элементами
25 сообщений из 87, страница 2 из 4
Win API С++ создание формы со всеми элементами
    #37022517
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravЗачем писать интерфейс именно на WinAPI ?

Это достаточно нетривиальное мероприятие.


Наоборот, это достаточно просто. В теме кстати классический пример есть.


petravИ, даже если, вы дорастете до уровня "создавать GUI на WinAPI" вы такие вопросы перестанете задавать.



Учится нужно снизу, с основ.
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37022577
Niwalke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Необходимо написать программу создающие окно, но без использования библиотеки windows.h
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37022911
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NiwalkeНеобходимо написать программу создающие окно, но без использования библиотеки windows.hwindows.h это не библиотека. Это комбинирующий заголовок для заголовков описывающих WinAPI. Использовать его конечно не обязательно, но тогда тебе прийдется вручную повторить все то что написано внутри всех этих заголовков.

Живя в windows ты не можешь создавать окна не используя функции windows. Они могут быть спрятаны под какой-то библиотекой-оберткой, но они внутри этой библиотеки будут все те-же вызовы CreateWindow()
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37022974
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к сожалению (( единственный способ написать абсолютно автономное приложение,
это написать свою собственную ОС ))

проще говоря под какой системой ты запускаешь софт,
те базовые функции и юзаешь..

под Windows ME, XP, Vista.. это WinAPI
под Mac OS это Cocoa
В общем все это API операционных систем

и мало того, даже если тебе в голову придет идея собрать свое маленькое API,
ты все равно сможешь запустить его используя стандартное API той системы где запускаешь

проще говоря под виндой без CreateWindow() ты ничего не сделаешь.
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37022975
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вывод господа! Все пишем на WinAPI )
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37030136
Фотография ML380
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseousк сожалению (( единственный способ написать абсолютно автономное приложение,
это написать свою собственную ОС ))

проще говоря под какой системой ты запускаешь софт,
те базовые функции и юзаешь..

под Windows ME, XP, Vista.. это WinAPI
под Mac OS это Cocoa
В общем все это API операционных систем

и мало того, даже если тебе в голову придет идея собрать свое маленькое API,
ты все равно сможешь запустить его используя стандартное API той системы где запускаешь



Хм, интересно, а как тогда работают проги, запускаемые до запуска ОС, но имеющие нормальные контролы (типа акронис ОСселектор)?

Или когда говорят, что wxWidgets используют нативные контролы, а QT или свинг - нет.
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37030163
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторWin API С++ создание формы со всеми элементамиречь идет о под платформенных программах )) не кидайте автора в загрузочную яму! )
для создания приложения с формами.. сектора юзать не надо!

В идеале все возможно ;) но мы же не разработку собственной ОС обсуждаем )
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37030176
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ML380QT точно нет, разве что в порядке установки
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37032765
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
думаю что за wxWidgets будущее
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37032777
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseousдумаю что за wxWidgets будущее
Обоснуйте. =)
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37032795
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://ru.wikipedia.org/wiki/WxWidgets Преимущества wxWidgets
Особенность, которая отличает wxWidgets от многих других фреймворков, таких как MFC и OWL, — это многоплатформенная природа . wxWidgets имеет API, который одинаков или почти одинаков на всех поддерживаемых платформах. Это означает, что вы можете написать приложение, к примеру, под Windows и затем с очень немногими (если они вообще понадобятся) изменениями перекомпилировать его под Linux или Mac OS X. Это дает огромное преимущество по сравнению с раздельным программированием под каждую платформу: вам не придется изучать специализированный API для каждой платформы. Кроме того, при выпуске новых версий операционных систем и версий wxWidgets уже написанные приложения всегда будут выглядеть актуально и использовать последние графические версии элементов управления.

Другая отличительная особенность — wxWidgets использует графические элементы интерфейса операционной системы. Многие фреймворки такие как Swing и Qt используют собственные графические элементы управления, снабжая их сменяемыми темами для каждой платформы. Напротив, wxWidgets использует родные графические элементы пользовательского интерфейса всюду где это возможно. В результате они не только выглядят как родные для операционной системы — они на самом деле родные. Это очень важно для пользователей, привыкших работать в конкретной среде, поскольку любое, даже самое незначительное, изменение интерфейса сказывается на их способности свободно использовать свой опыт управления в стиле стандарта их ОС. Вместо этого wxWidgets предоставляет тонкую абстракцию к существующим компонентам системы.

wxWidgets использует C++. Почему не Java? Java отлично подходит для web-приложений, но не является удачным выбором для десктопа. Прежде всего, C++ приложения, работающие с wxWidgets быстрее, имеют более естественный вид. Они проще в установке, поскольку не требуется специальная виртуальная машина. C++, к тому же, предоставляет простой доступ к низкоуровневой функциональности, и написанный код может быть легко интегрирован с уже имеющимся C/C++ кодом .

wxWidgets — бесплатная свободная платформа . Это важный психологический и стратегический момент. Создавая исходный код с использованием бесплатных свободных библиотек, всегда можно решить свои задачи редактируя исходный код; это гораздо практичнее, чем отправлять запрос на требуемую функциональность производителю библиотеки и дожидаться обновления.

Многие аспекты создания приложений, которые иначе пришлось бы решать самостоятельно, в wxWidgets уже инкапсулированы в готовые к применению классы. wxWidgets имеет широкий спектр пользователей — от программистов энтузиастов до крупных корпораций, от отделов научного программирования до медицинских исследовательских групп, от экологических исследователей до телекоммуникационной индустрии.

Разработчики используют wxWidgets по разным причинам: от замены MFC на одной платформе до обеспечения возможности быстрого портирования приложения с, к примеру, Windows на Unix и Mac OS X . wxWidgets также позволяет переносить приложения на мобильные платформы, такие как встраиваемый Linux, Pocket PC, или Palm OS.

Все уже сказано до меня )
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37032798
Фотография ML380
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseousML380QT точно нет, разве что в порядке установки

White OwlЖивя в windows ты не можешь создавать окна не используя функции windows. Они могут быть спрятаны под какой-то библиотекой-оберткой, но они внутри этой библиотеки будут все те-же вызовы CreateWindow()

wikipediaДругая отличительная особенность — wxWidgets использует графические элементы интерфейса операционной системы. Многие фреймворки такие как Swing и Qt используют собственные графические элементы управления, снабжая их сменяемыми темами для каждой платформы. Напротив, wxWidgets использует родные графические элементы пользовательского интерфейса всюду где это возможно. В результате они не только выглядят как родные для операционной системы — они на самом деле родные.


Т.е. все-же получается, что QT не использует родные виндовые фунуции для отрисовки окон, а свои. Насколько я знаю, QT все-таки зависит от каких-то системных длл, но более низкоуровнеых, чем те, что содержат CreateWindow().
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37032803
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseousВсе уже сказано до меня )
Повторюсь с уточнением (мне казалось это очевидным).

Чем wxWidget лучше Qt?

Плиз, обойдитесь без рекламных текстов. Иначе я повторю свой вопрос в третий раз.
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37032807
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravwxWidgets использует родные графические элементы
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37032816
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ML380Т.е. все-же получается, что QT не использует родные виндовые фунуции для отрисовки окон, а свои. Насколько я знаю, QT все-таки зависит от каких-то системных длл, но более низкоуровнеых, чем те, что содержат CreateWindow().Использует Qt родные виндовые функции для отрисовки окон. Использует.
У Qt же код открыт. Ну загляни ты в него и сам все увидишь. А то что в Qt можно кучу разных стилей для окон задавать, так это все надстройки над все тем-же несчастным CreateWindowEx().
И нету в Виндах никаких "более низкоуровневых" dll.
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37032827
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravЧем wxWidget лучше Qt?

Плиз, обойдитесь без рекламных текстов. Иначе я повторю свой вопрос в третий раз.Пора бы уже запустить поиск на слова wxWidgets & Qt.
Впрочем, тогда ты узнаешь чем wxWidgets хуже Qt...
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37032832
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlПора бы уже запустить поиск на слова wxWidgets & Qt.
Впрочем, тогда ты узнаешь чем wxWidgets хуже Qt...
Я запускал много раз. Ничего кроме флуда не нашел. А выбор делал по другому, что ли, не знаю как сказать. =)
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37032835
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseouspetravwxWidgets использует родные графические элементы
Плиз. Аккуратнее с цитатами - это же не мои слова, но это мелочь.

Я повторяю свой вопрос в третий раз: чем wxWidget лучше Qt - обоснованно ?
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37032847
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
selfwxWidgets использует родные графические элементы операционной системы, а QT нетдля меня это основной довод, проще говоря соберите под скажем Windows простое QT приложение, и посмотрите на его размер, сделайте тоже самое при помощи скажем WxDev-C++ и вы все поймете )
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37032849
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,

зачем ходить в гости со своим стулом?
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37032851
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravЯ повторяю свой вопрос в третий раз: чем wxWidget лучше Qt - обоснованно ? лично я против QT ничего не имею, просто считаю что о унаследовал ошибки borland(a) (VCL)
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37032881
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
off/2

А мне больше приглянулись подходы в DWT
Код: 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.
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.
/*******************************************************************************
 * Copyright (c) 2000, 2005 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
module examples.addressbook.DataEntryDialog;

import dwt.DWT;
import dwt.events.ModifyEvent;
import dwt.events.ModifyListener;
import dwt.events.SelectionAdapter;
import dwt.events.SelectionEvent;
import dwt.layout.GridData;
import dwt.layout.GridLayout;
import dwt.widgets.Button;
import dwt.widgets.Composite;
import dwt.widgets.Display;
import dwt.widgets.Label;
import dwt.widgets.Shell;
import dwt.widgets.Text;

import dwt.dwthelper.ResourceBundle;
import dwt.dwthelper.utils;

/**
 * DataEntryDialog class uses <code>org.eclipse.swt</code>
 * libraries to implement a dialog that accepts basic personal information that
 * is added to a <code>Table</code> widget or edits a <code>TableItem</code> entry
 * to represent the entered data.
 */
public class DataEntryDialog {

    private static ResourceBundle resAddressBook;

    Shell shell;
    char[][] values;
    char[][] labels;

public this(Shell parent, ResourceBundle bdl ) {
    if( resAddressBook is null ){
        resAddressBook = bdl;//ResourceBundle.getBundle("examples_addressbook");
    }
    shell = new Shell(parent, DWT.DIALOG_TRIM | DWT.PRIMARY_MODAL);
    shell.setLayout(new GridLayout());
}

private void addTextListener(Text text) {
    text.addModifyListener(new class(text) ModifyListener {
        Text text;
        this( Text text ){ this.text = text; }
        public void modifyText(ModifyEvent e){
            Integer index = cast(Integer)(this.text.getData("index"));
            values[index.intValue()] = this.text.getText();
        }
    });
}
private void createControlButtons() {
    Composite composite = new Composite(shell, DWT.NONE);
    composite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
    GridLayout layout = new GridLayout();
    layout.numColumns =  2 ;
    composite.setLayout(layout);

    Button okButton = new Button(composite, DWT.PUSH);
    okButton.setText(resAddressBook.getString("OK"));
    okButton.addSelectionListener(new class() SelectionAdapter {
        public void widgetSelected(SelectionEvent e) {
            shell.close();
        }
    });

    Button cancelButton = new Button(composite, DWT.PUSH);
    cancelButton.setText(resAddressBook.getString("Cancel"));
    cancelButton.addSelectionListener(new class() SelectionAdapter {
        public void widgetSelected(SelectionEvent e) {
            values = null;
            shell.close();
        }
    });

    shell.setDefaultButton(okButton);
}

private void createTextWidgets() {
    if (labels is null) return;

    Composite composite = new Composite(shell, DWT.NONE);
    composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    GridLayout layout= new GridLayout();
    layout.numColumns =  2 ;
    composite.setLayout(layout);

    if (values is null)
        values = new char[][labels.length];

    for (int i =  0 ; i < labels.length; i++) {
        Label label = new Label(composite, DWT.RIGHT);
        label.setText(labels[i]);
        Text text = new Text(composite, DWT.BORDER);
        GridData gridData = new GridData();
        gridData.widthHint =  400 ;
        text.setLayoutData(gridData);
        if (values[i] !is null) {
            text.setText(values[i]);
        }
        text.setData("index", new Integer(i));
        addTextListener(text);
    }
}

public char[][] getLabels() {
    return labels;
}
public char[] getTitle() {
    return shell.getText();
}
/**
 * Returns the contents of the <code>Text</code> widgets in the dialog in a
 * <code>char[]</code> array.
 *
 * @return  char[][]
 *          The contents of the text widgets of the dialog.
 *          May return null if all text widgets are empty.
 */
public char[][] getValues() {
    return values;
}
/**
 * Opens the dialog in the given state.  Sets <code>Text</code> widget contents
 * and dialog behaviour accordingly.
 *
 * @param   dialogState int
 *                  The state the dialog should be opened in.
 */
public char[][] open() {
    createTextWidgets();
    createControlButtons();
    shell.pack();
    shell.open();
    Display display = shell.getDisplay();
    while(!shell.isDisposed()){
        if(!display.readAndDispatch())
            display.sleep();
    }

    return getValues();
}
public void setLabels(char[][] labels) {
    this.labels = labels;
}
public void setTitle(char[] title) {
    shell.setText(title);
}
/**
 * Sets the values of the <code>Text</code> widgets of the dialog to
 * the values supplied in the parameter array.
 *
 * @param   itemInfo    char[][]
 *                      The values to which the dialog contents will be set.
 */
public void setValues(char[][] itemInfo) {
    if (labels is null) return;

    if (values is null)
        values = new char[][labels.length];

    int numItems = Math.min(values.length, itemInfo.length);
    for(int i =  0 ; i < numItems; i++) {
        values[i] = itemInfo[i];
    }
}
}


и в DFL
Код: 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.
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.
// This code is public domain.

// To compile:
// 	dfl beginner -gui


private import std.conv;

private import dfl.all;


class MainForm: Form
{
	GroupBox myGroup;
	RadioButton likeDfl, okDfl, hateDfl, whatDfl;
	TextBox myTextBox;
	Button voteBtn;
	
	
	this()
	{
		// Initialize some of this Form's properties.
		width = 220;
		startPosition = FormStartPosition.CENTER_SCREEN;
		formBorderStyle = FormBorderStyle.FIXED_DIALOG; // Don't allow resize.
		maximizeBox = false;
		text = "DFL Beginner Example"; // Form's caption text.
		
		// Add a GroupBox.
		with(myGroup = new GroupBox)
		{
			bounds = Rect(4, 4, this.clientSize.width - 8, 120); // Set the x, y, width, and height.
			text = "DFL &Poll"; // Text displayed at the top of the box.
			parent = this; // Set myGroup's parent to this Form.
		}
		
		// Add some RadioButton`s to the GroupBox myGroup..
		
		with(likeDfl = new RadioButton)
		{
			bounds = Rect( 6 ,  18 ,  160 ,  13 ); // x, y, width and height within the GroupBox.
			text = "I Like DFL"; // Text displayed next to the selector thing.
			checked = true; // Check this one, but not the others.
			parent = myGroup; // Set likeDfl's parent to the GroupBox.
		}
		
		with(okDfl = new RadioButton)
		{
			bounds = Rect(6, likeDfl.bottom + 4, 160, 13); // 4px below likeDfl.
			text = "DFL is OK";
			//checked = false; // false is default. Set one to true per group.
			parent = myGroup;
		}
		
		with(hateDfl = new RadioButton)
		{
			bounds = Rect(6, okDfl.bottom + 4, 160, 13);
			text = "I hate DFL!";
			parent = myGroup;
		}
		
		with(whatDfl = new RadioButton)
		{
			bounds = Rect(6, hateDfl.bottom + 4, 160, 13);
			text = "What is DFL?";
			parent = myGroup;
		}
		
		// Update myGroup's height to fit all the RadioButtons.
		// The client size is the area inside the control, excluding the border.
		myGroup.clientSize = Size(myGroup.clientSize.width, whatDfl.bottom +  6 );
		
		// Add a Label for the following TextBox.
		Label myLabel;
		with(myLabel = new Label)
		{
			bounds = Rect( 4 , myGroup.bottom +  4 ,  200 ,  13 ); // 4px below myGroup.
			myLabel.text = "&Comments (one per line):";
			parent = this;
		}
		
		// Add a TextBox below the GroupBox.
		with(myTextBox = new TextBox)
		{
			bounds = Rect( 4 , myLabel.bottom +  4 , this.clientSize.width -  8 ,  100 ); // 4px below Label.
			multiline = true;
			acceptsReturn = true;
			parent = this;
		}
		
		// Add a button and a click event handler.
		with(voteBtn = new Button)
		{
			location = Point(this.clientSize.width - voteBtn.width -  4 , myTextBox.bottom +  4 ); // width/height are default.
			text = "&Vote";
			parent = this;
			
			click ~= &this.voteBtn_click;
		}
		
		// Set the Form's "accept button", or default button.
		acceptButton = voteBtn;
		
		// Update the Form's height to fit all the controls.
		// The client size is the area inside the Form, excluding the border and caption.
		clientSize = Size(clientSize.width, voteBtn.bottom +  4 );
	}
	
	
	// Click handler for voteBtn.
	private void voteBtn_click(Object sender, EventArgs ea)
	{
		string s;
		string[] comments;
		RadioButton voteOption;
		
		// Gather comments.
		comments = myTextBox.lines;
		if(!comments.length)
		{
			if(DialogResult.YES != msgBox("Are you sure that you do not want to comment on DFL?",
				"DFL Comments", MsgBoxButtons.YES_NO, MsgBoxIcon.QUESTION))
			{
				// They're not sure, they want to stop the vote and add a comment..
				return; // Abort.
			}
		}
		
		// See which option they voted for.
		if(likeDfl.checked)
			voteOption = likeDfl;
		else if(okDfl.checked)
			voteOption = okDfl;
		else if(hateDfl.checked)
			voteOption = hateDfl;
		else if(whatDfl.checked)
			voteOption = whatDfl;
		else
			assert( 0 );
		
		s = "You voted for \"" ~ voteOption.text ~ "\".\r\n\r\n";
		if(comments.length)
		{
			s ~= "Your comments are:";
			foreach(int i, string comment; comments)
			{
				s ~= "\r\n   " ~ std.conv.to!string(i +  1 ) ~ ") " ~ comment;
			}
		}
		else
		{
			s ~= "You did not add comments.";
		}
		
		msgBox(s, "Thanks for Voting!", MsgBoxButtons.OK, MsgBoxIcon.INFORMATION);
		
		// Now reset everything.
		voteOption.checked = false;
		likeDfl.checked = true;
		myTextBox.text = "";
	}
}


int main()
{
	int result =  0 ;
	
	try
	{
		Application.run(new MainForm);
	}
	catch(Object o)
	{
		msgBox(o.toString(), "Fatal Error", MsgBoxButtons.OK, MsgBoxIcon.ERROR);
		
		result =  1 ;
	}
	
	return result;
}



Впрочем, подход ближе к Яве, чем к плюсам.
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37032888
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно, если бы не для души, а для работы - я бы брал надежные варианты - Qt, MFC, WinForms.

Пару ссылок нарыл - блог любителя wx и с него же ссылку на демку . Пошел смотреть.
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37032894
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseousselfwxWidgets использует родные графические элементы операционной системы, а QT нетдля меня это основной довод, проще говоря соберите под скажем Windows простое QT приложение, и посмотрите на его размер, сделайте тоже самое при помощи скажем WxDev-C++ и вы все поймете )
А... так вы пишите про 10 мегобайт библиотек Qt. Аж 10-ть мегобайт !!1

А почему они для вас так важны? На дискету не влезает? Или что-то специальное - узкоспециализированное пишите?

PS: И уж тем более это совсем не тот фактор, который мог бы обеспечить будущее wxWidgets... =)
...
Рейтинг: 0 / 0
Win API С++ создание формы со всеми элементами
    #37032897
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemarglесли бы не для души, а для работы - я бы брал надежные варианты - Qt.к кьюту есть претензии по datalayer, очень хочетцо нормальной поддержки хранимых процедур, как минимум
...
Рейтинг: 0 / 0
25 сообщений из 87, страница 2 из 4
Форумы / C++ [игнор отключен] [закрыт для гостей] / Win API С++ создание формы со всеми элементами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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