![]() |
|
![]() ![]() ![]() |
|
XSonicX |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 14.7.2006 Где: Таллинн, Edinburg h Репутация: нет Всего: 0 |
Всем добрый вечер.
До настоящего момента писал console приложения для Виндовса, теперь перешел на MFC. Столкнулся с морем проблем, на одну из которых я не нашёл ответа. 1)Имеется код для консоли:(выводит значение дискриминанта, попутно выводя на экран промежуточные значения)
Мои познания в MFC пока довольно малы, и пока что, для единственного способа, которым можно сделать тоже самое, но в MFC понадобится целая куча разных переменных и боксов типа Static Text для каждого значения, чередуя их тип от CString до double... 2) вот у мну есть три Text edit после ввода в последнюю и нажатия энтер на настоящий момент моя прога закрывается, я хотел спросить как сделать так, что бы при нажатии на энтер прога как бы нажимала на опред. кнопку и выполняла ее действие? 3) у меня есть много статик текста, я хочу что бы при нажатии на одну копку все эти окна скрывались, а при нажатии на другую появлялись, как мне это притворить в жизнь? Я уверен, что есть более целесообразный способ, как решить эту проблемму и надеюсь на вашу помощь, спасибо) |
|||
|
||||
dizzy1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 10 Всего: 25 |
1. Ну смотря что ты хочешь сделать, для вывода как в консоли можно, например, использовать Edit Control с флагом Multiline. Для каждого неизвестного, конечно, нужно отдельное поле для ввода.
2. Я использовал решение из http://www.codeproject.com/KB/dialog/DisableReturnEsc.aspx и у меня работало. 3. Ты можешь записать идентификаторы статиков в массив и ходить по нему в обеих функциях. |
|||
|
||||
XSonicX |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 14.7.2006 Где: Таллинн, Edinburg h Репутация: нет Всего: 0 |
1 вобщем нет никакого универсального типа переменной, что бы можно было выводить текст и переменные в одной строке? ну типа "a=" a "b=" b ; ?
2 объясните пожалста поподробнее) я могу сделать например что бы при потере фокуса с третьего эдит бокса запускалась кнопка, но нужно тоже самое, тока по нажатию на энтер в томже боксе 3 есть у мну большой кусок статик текста, который закрывает то, что я пока не хочу показывать, у него тип CString control (может быть надо другой) название переменной ekran , сейчас она видима, т.е все что я хочу скрыть скрывается, но если я хочу допустим при нажатии на кнопку скрыть этот элемент и показать необходимый текст мод ним, как мне добраться до свойства behavior, visible этого элемента и изменить true na false ? спасибо зарание) сейчасс уточнил вопрос,вроде бы очень легко, но одному не разгрести ( |
|||
|
||||
voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: 8 Всего: 8 |
1. Есть класс CString, а у него есть метод Format. + есть мсдн
2. Не совсем понятно, что должно получиться и зачем такое нужно. Потому неясно, что лучше посоветовать. Если это поможет, то у кнопки есть свойство DefaultButton. На диалоге может быть только одна кнопка с установленым свойством DefaultButton. При нажатии Enter на диалоге срабатывает эта кнопка. 3. Любой контол является в первую очередь окном (CWnd), а у окна есть метод ShowWindow(int nCmdShow). + мсдн |
|||
|
||||
XSonicX |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 14.7.2006 Где: Таллинн, Edinburg h Репутация: нет Всего: 0 |
voov, спасибо большое, 2 и 3 получилось
![]() |
|||
|
||||
dizzy1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 10 Всего: 25 |
Как на счет
|
|||
|
||||
XSonicX |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 14.7.2006 Где: Таллинн, Edinburg h Репутация: нет Всего: 0 |
все спасибо большое еще раз, со всем справился ))
осталась одна проблемка, есть у мну Static text у него переменная c_d типа control, как можно изменить в нем программно значение border с false na true? вообще, что бы закрепить и больше не спрашивать, как можно добираться до этих значений? enable, border, default button, color и т.д(кароч все которые в свойствах элемента) ? на счет border весь мсдн перерыл, нифига, есть тока на создание окна ( спасибо зарание) |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Свойства, которые тебе визард показывает - это всего лишь оболочки. В основном, это флаги стиля или расширенного стиля или и того и другого (border). Насчет цвета - не поняла, какой-такой цвет у статика в свойствах. Если ты имеешь в виду BLACKRECT и т.д. - это тоже стиль, а произвольного цвета нема. Можно через CTLCOLOR реализовать или через OwnerDraw или как-то еще, но это требует переопределения класса. -------------------- ... |
|||
|
||||
XSonicX |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 14.7.2006 Где: Таллинн, Edinburg h Репутация: нет Всего: 0 |
все, и первое у меня тоже получилось
![]() ![]() dizzy1984, способ просто офигенный )) тока если бы можно было бы вывести это в поле не с помощью MessageBox, т.к он мне тут совершенно неуместен( это реально вообще? Earnest, спасибо за ответ ![]() В таком случае как можно программно выделить static text (может быть цвет, жирность(я хотел рамкой ![]() ![]() |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Можно - я уже написала - изменением стиля.
На MFC это будет так:
Вдавленность - это расширенные стили - см. символы WS_EX_... и функцию ModifyStyleEx У каждого типа контрола, кроме общих (WS_), есть специализированные стили. Например, у статика это константы SS_... Короче смотри в MSDN. Почти любой флаг можно добавить через изменение стилей. Но не все - некоторые как установлены при создании, так и будут. Дефолт баттон - это тоже стиль, но это лучше станавливать соответствующей функцией диалога, т.к. нужно снять это свойство с предыдущей Deafaul Button. -------------------- ... |
|||
|
||||
XSonicX |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 14.7.2006 Где: Таллинн, Edinburg h Репутация: нет Всего: 0 |
Earnest, аааа спасибо большоеее!!!
![]() ![]() ![]() и если можно, последний вопрос на сегодня ![]() есть такая штучка
очень хочу узнать, что означет вот этот участок
я не знаю как это называется , но путем подбора втыкал, что эта штука управляет кол-ом знаков после запятой... скажите пожалуйста, что это такое, какие они бывают и где можно их найти ![]() А также самое главное, как сделать, чтобы оно не писало 4.0000(4.9000, 4.0500 и т.д) , если стоит определение %.4f, ну т.е отбрасывало последние нули, как это обычно делаем мы ?) ![]() огромное спасибо заранее ) ![]() |
||||
|
|||||
voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: 8 Всего: 8 |
XSonicX, все описано в мсдн. строка формата как в printf
A format specification, which consists of optional and required fields, has the following form: %[flags] [width] [.precision] [{h | l | ll | I | I32 | I64}]type В случае, когда type = f : The precision value specifies the number of digits after the decimal point. If a decimal point appears, at least one digit appears before it. The value is rounded to the appropriate number of digits. Default precision is 6; if precision is 0, or if the period (.) appears without a number following it, no decimal point is printed. т.е. так задается кол-во символов после запятой (последняя цыфра округляется). %.4f - 4 знака %f - 6 знаков %.f - без десятичной точки (только целая часть) нули средствами Format убрать нельзя, но так как это у нас строка, то можно сделать так
Это сообщение отредактировал(а) voov - 25.12.2008, 15:20 |
|||
|
||||
XSonicX |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 14.7.2006 Где: Таллинн, Edinburg h Репутация: нет Всего: 0 |
voov, спасибо, но к сожалению если знак, который необходимо убрать находится по средине строки(допустим в скобках) то он его не убирает( пришлось сравнивать с (int)и в зависимости от результата писать %.4f or %.f, но все равно спасибо) пока что вопросов нет, помечаю как решенный
![]() |
|||
|
||||
Bukmop |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.6.2006 Где: Москва Репутация: 2 Всего: 3 |
||||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |