Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Visual C++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13

Открыть новую тему     Написать ответ в эту тему

distance

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AKRAS
пошарь по этой теме или в соседней, было неоднократно.

Всего записей: 878 | Зарегистр. 28-03-2004 | Отправлено: 20:24 25-03-2008
marrow1

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
всем привет. Visual Studio 2005 C++
 
на диалоговом окне у меня есть по несколько контролов radio, check, edit.
Сделать нужно так, что когда выбираю RADIO1 то нужно чтобы у CHECK1 параметр Disabled установился в значение False , так как я его по умолчанию  задал true, так как нужно его сначала отключить. Также сделать потм проверку, что если CHECK1 отмечен на окне, то аналогично предыдущему включить EDIT1. И последнее, сделать условие типа if (выбран RADIO1), то выполнить подсчет. Помогите, пожалуйста, а то я в 2005 студии не работал практически, да и в самом Visual C++ чуть работал, давно.

Всего записей: 801 | Зарегистр. 21-12-2006 | Отправлено: 19:12 27-03-2008
distance

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
marrow1
на диалоге выбираешь контрол, вызываешь контекстное меню, там Add Variable.
уазываешь тип переменной Control, тогда контрол на диалоге будет "обёрнут" в соответствующий класс. Далее смотришь msdn какие функции надо вызывать.
Например для отключения контрола => EnableWindow(FALSE);

Всего записей: 878 | Зарегистр. 28-03-2004 | Отправлено: 13:09 28-03-2008
marrow1

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
distance
а какого контрола брать? того действие которого нужно отследить или же того который мне нужно ключать или отключать? Можете хоть приблизительный пример дать так например отключить контрол CHECK1 когда задействовали контрол RADIO1 Извините за сильное расспрашивание, но очень нужно, вчера просто долго долюался и ничего не выходило.

Всего записей: 801 | Зарегистр. 21-12-2006 | Отправлено: 17:00 28-03-2008 | Исправлено: marrow1, 17:15 28-03-2008
marrow1

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
спасибо, уже разобрался. а какой функцией можно проверить состояние контрола Check1, типа отмечен он или нет (Checked, Unchecked), чтобы я мог написать типа:
 
if (IDC_CHECK1.isChecked=true)
 
{
действие
}
 
и аналогично сделать проверку состояния для контрола Radio1.
 
а то в MSDN туго и не нашел.

Всего записей: 801 | Зарегистр. 21-12-2006 | Отправлено: 00:37 29-03-2008
marrow1

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
distance
Спасибо огромное. Вы мне реально помогли. Разобрался со всем этим и понял принцып. Сейчас же проблема у меня реально посложнее и нужен соыет того кто знает.
К примеру вот есть у меня вот такой подсчет(реально их несколько, но я тут я взял для примера один только):  
 
if (k1<257&k1>0) {p=a1; r=b1; s=c1; t=d1;
                u=a1; v=b1; w=c1;
                e1=255; f1=255; g1=255;
                if (k1<8&k1>3){h1=252; l2=30; m=2; t=t&h1; z=t+3;}
                if (k<16&k1>7){h1=248; l2=29; m=6; t=t&h1; z=t+7;}
                if (k1<32&k1>15){h1=240; l2=28; m=14; t=t&h1; z=t+15;}
                if (k1<64&k1>31){h1=224; l2=27; m=30; t=t&h1; z=t+31;}
                if (k1<128&k1>63){h1=192; l2=26; m=62; t=t&h1; z=t+63;}
                if (k1<256&k1>127){h1=128; l2=25; m=126; t=t&h1; z=t+127;}
                if (k1<257&k1>255){h1=0; l2=24; m=254; t=t&h1; z=t+255;}
                
        }
 
есть еще переменная k отдельно от k1. Данный фрагмент кода, что я привел считатет новые значения p,r,s,t,u,v,w,z . И этих меременных будет не по 1, а столько сколько нам будет задано значение k, т.е. нужно сделать цикл, чтобы программа считала значения p1,r1,s1,t1,u1,v1,w1,z1, потом считала p2,r2,s2,t2,u2,v2,w2,z2 и т.д., столько раз сколько у нас будет равно k. И чтобы потом можно было эти же данные вывести. Т.е. мы наперед не можем знать сколько у нас будет разных значений переменных p,r,s,t,u,v,w,z, и они все нам нужны. Как это можно реализовать? Помогите пожалуйста.

Всего записей: 801 | Зарегистр. 21-12-2006 | Отправлено: 17:27 30-03-2008
NoAngel777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
marrow1
http://forum.ru-board.com/topic.cgi?forum=33&topic=3174&start=2140#20

Всего записей: 2561 | Зарегистр. 04-04-2006 | Отправлено: 20:25 30-03-2008
marrow1

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем доброго времени суток! У меня в Visual C++ 2005 есть на диалоговом окне контрол типа IP Address controll. Он используеться для введения значения IP адреса или маски. Контрол дает переменную типа DWORD. Для тех кто не знает, то скажу, что адрес сети - 4 числа по одному байту (т.е. получаеться 32 бита), каждое разделено точкой, и значение каждого байта возможно от 0 до 255. Как мне из переменной, т.е. из данного контрола вытянуть отдельнозначения каждого из 4-х байтов, в 10-тичном коде. Очень нужно, а я не очень уж программер. Помогите пожалуйста.

Всего записей: 801 | Зарегистр. 21-12-2006 | Отправлено: 01:35 03-04-2008
NoAngel777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
marrow1
 

Код:
 
...
 
//--------------------------------------------------------------------------
 
#include <stdio.h>
 
unsigned int ip_addr_4b=IP Address controll->nan_toka_property(?); //enter it here(I don't know)
 
...
 
unsigned char betsu_betsu_baito[4];
 
for(int i=0;i<4;++i)
{
    betsu_betsu_baito[i]=(unsigned char)(ip_addr_4b & 0x000000ff);
    ip_addr_4b>>=8;
}
 
printf("%u.%u.%u.%u\n",betsu_betsu_baito[3],betsu_betsu_baito[2],betsu_betsu_baito[1],betsu_betsu_baito[0]);
 
//--------------------------------------------------------------------------
 
...

Всего записей: 2561 | Зарегистр. 04-04-2006 | Отправлено: 21:39 03-04-2008 | Исправлено: NoAngel777, 21:44 03-04-2008
marrow1

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NoAngel777
спасибо. разобрался.  
 
теперь проблема состоит в селдюющем. Подщет и сохранени данных я сделал, ух записывает построчно в текстовый файл. В данный момент нахожусь в диалоговом окне (NETDlg.cpp), после подщета мне нужно вывести содерщимое файла в другое диалоговое окно (NETDlg1.cpp), контрол Edit1 на нем.
файл читаю вот таким методом
 

Код:
 
   FILE *stream;
   char line[100];
 
   if( fopen_s( &stream, "netcalc.txt", "r" ) == 0 )
   {
      if( fgets( line, 100, stream ) == NULL)
         printf( "fgets error\n" );
      else
         printf( "%s", line);
      fclose( stream );
   }
 

 
Для Edit1 в диалоговом окне (NETDlg1.cpp) создал переменную netcalc типа CString. Диалоговое окно вызываю функцией  
 

Код:
 
NETDlg1 aDlg;
aDlg.DoModal();
 

 
Как мне сделать исходя их вышесказанного, чтобы вывести все строки файла netcalc.txt во втором диалоговом окне, точнее в его контроле Edit1, так желательно чтобы если строк в файле netcalc.txt будет очень много то чтобы была вертикальная прокрутка. Спасибо большое.
 
Или же напишите пожалуйста как сделать чтобы после подсчетов программа просто вывела содержимое текстового файла через свой какой-то просмотрщик или в своем окне и т.д., т.е. данные нужно в даннй момент вывести только чтобы пользователь смог просмотреть, ну максимум еще чтобы можно было распечатать напрямую его из проги и все.

Всего записей: 801 | Зарегистр. 21-12-2006 | Отправлено: 16:24 04-04-2008 | Исправлено: marrow1, 17:38 04-04-2008
susuman

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
marrow1

Цитата:
значение каждого байта возможно от 0 до 255. Как мне из переменной, т.е. из данного контрола вытянуть отдельнозначения каждого из 4-х байтов, в 10-тичном коде. Очень нужно, а я не очень уж программер. Помогите пожалуйста.

 
Через union это делается и быстрее и проще. Скажу больше уже
все сделано
#include <winsock2.h>
....
in_addr addr;
addr.S_un.S_addr = 0x12345678;
char a1 = addr.S_un.S_un_b.s_b1;
char a2 = addr.S_un.S_un_b.s_b2;
...
 
Или ещё проще:
in_addr addr;
addr.s_addr = 0x12345678;
CString inetaddr(inet_ntoa(addr));
- получите готовый стринг с адресом.

Всего записей: 12 | Зарегистр. 21-12-2005 | Отправлено: 07:05 06-04-2008
AlexeyN2

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может кто-нибудь программирует на NXOpen С++ для Unigraphics? Есть задача: построить скругление 3-х сплайнов. Программа сплайны строит, а скругление нет. Ошибок и предупреждений нет. Помогите пожалуйста, всю голову разбил... Вот код:
 
#ifdef WIN32
#define USE_MFC
#endif
 
#ifdef USE_MFC
#include <afxdlgs.h>
#include <afx.h>
#endif
 
#include <NXOpen/Session.hxx>
#include <NXOpen/Part.hxx>
#include <NXOpen/PartCollection.hxx>
#include <NXOpen/Point.hxx>
#include <NXOpen/PointCollection.hxx>
#include <NXOpen/Curve.hxx>
#include <NXOpen/Spline.hxx>
#include <NXOpen/Sketch.hxx>
#include <NXOpen/SketchCollection.hxx>
#include <NXOpen/NXObjectManager.hxx>
#include <NXOpen/Arc.hxx>
#include <NXOpen/CurveCollection.hxx>
 
#include <Ug_spline.hxx>
 
#include <fstream>
 
/*****************************************************************************
**  Activation Methods
*****************************************************************************/
/*  Explicit Activation
**      This entry point is used to activate the application explicitly, as in
**      "File->Execute UG/Open->User Function..." */
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
{
    int i;
    bool is_periodic=false;
//    double param[5];
    /* Initialize the API environment */
    int errorCode = UF_initialize();
 
    NXOpen::Session *theSession = NXOpen::Session::GetSession();
 
    NXOpen::Part *workPart = theSession->Parts()->Work();
    if ( workPart == NULL )
        workPart = theSession->Parts()->NewDisplay("File2Points", NXOpen::Part::UnitsMillimeters);
 
 
    const UgObject* part_or_obj=UgSession::getWorkPart();
    int N=5;
    double delta;
    std::vector <double> knots(9);
  delta = 1.0/((double)(N-4+1));
    for(i = 0; i < 4; i++)  
     knots[i]=0;
 
  for(i = 4; i < N ; i++)
     knots[i] = (i-4+1)*delta;
   
  for(i = N; i < N + 4; i++)  
     knots[i] = 1;
  std::vector <Point4> points4(5);
std::vector <Point4> points4_1(5);
std::vector <Point4> points4_2(5);
  for(i = 0; i < N ; i++)
      points4[i] = Point4::Point4(i,i,i,1);
    for(i = 0; i < N ; i++)
      points4_1[i] = Point4::Point4(0.2*i,0,0,1);
    for(i = 0; i < N ; i++)
      points4_2[i] = Point4::Point4(i+0.8,i,i,1);
 
UgSpline *spline=UgSpline::create(4,knots,points4,part_or_obj);
UgSpline *spline1=UgSpline::create(4,knots,points4_1,part_or_obj);
UgSpline *spline2=UgSpline::create(4,knots,points4_2,part_or_obj);
NXOpen::Spline *s1 = (NXOpen::Spline*)NXOpen::NXObjectManager::Get(spline->getTag());
NXOpen::Spline *s2 = (NXOpen::Spline*)NXOpen::NXObjectManager::Get(spline1->getTag());
NXOpen::Spline *s3 = (NXOpen::Spline*)NXOpen::NXObjectManager::Get(spline2->getTag());
NXOpen::Point3d p1(0,0,0);
NXOpen::Point3d p2(0.8,0,0);
NXOpen::Point3d p3(0.8,0,0);
NXOpen::Point *point1;
point1 = workPart->Points()->CreatePoint(p1);
NXOpen::Point *point2;
point2 = workPart->Points()->CreatePoint(p2);
NXOpen::Point *point3;
point3 = workPart->Points()->CreatePoint(p3);
                
                std::vector <NXOpen::SketchConstraint*> c;
double rad=1;
 
    NXOpen::Sketch *s;
NXOpen::SketchCollection *sc;
sc=workPart->GetSketches();    
s=sc->GetOwningSketch(s2);
    std::vector <NXOpen::Arc *> Fillet1=s->Fillet(
    s1,s2,s3,
    p1,p2,p3,
    rad,
    NXOpen::Sketch::TrimInputOptionTrue,
    NXOpen::Sketch::DeleteThirdCurveOptionTrue,
    NXOpen::Sketch::CreateDimensionOptionTrue,
    NXOpen::Sketch::AlternateSolutionOptionTrue,
    c);
 
        /* Terminate the API environment */
        errorCode = UF_terminate();
}
 
extern int ufusr_ask_unload( void )
{
    return(UF_UNLOAD_IMMEDIATELY);
}

Всего записей: 7 | Зарегистр. 08-04-2008 | Отправлено: 14:42 09-04-2008
marrow1

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот что у меня вышло по поводу сохранения файла (копирования)
 
void CNETApp::OnSave1()  
{  
CFileDialog fileDialog(FALSE,NULL,_T("*.txt"),NULL,_T("Text"));  
if (fileDialog.DoModal()==IDOK)  
{  
LPCTSTR sfile=_T("netcalc.txt");    
CopyFile(sfile,(fileDialog.GetPathName()),TRUE);    
}  
}
 
работает но не совсем так как нужно. Если файл сохраняю(копирую с другим именем) в текущюю директорию, то копирует без проблем, а вот если хоть только на уровень выше или еще чего, то уже не сохраняет файл (не копирует). В чем проблема? Помогите плиз.

Всего записей: 801 | Зарегистр. 21-12-2006 | Отправлено: 18:46 09-04-2008
Lyrik

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
marrow1
код покажи, как копируешь на уровень выше. все должно нормально работать.

Всего записей: 388 | Зарегистр. 04-04-2006 | Отправлено: 15:51 12-04-2008
marrow1

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lyrik
что именно из кода показать? только в данный каталог копирует нормально, а на уровень и больше уже не копирует. Спасибо. Уже решил проблему. Пришлось сделать чтобы прога преобразовывала сама относительный путь исходного файла в полный и тогда копирувала.

Всего записей: 801 | Зарегистр. 21-12-2006 | Отправлено: 22:00 13-04-2008
Lyrik

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
marrow1
странно как-то. у меня все нормально так работает:

Код:
CopyFile( _T("1.txt"), _T("..\\2.txt"), TRUE );

Всего записей: 388 | Зарегистр. 04-04-2006 | Отправлено: 00:10 14-04-2008
euheny



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Собрался я тут С++ изучать(VS2003).
 
Может кто-нибудь даст ссылки на уроки для начинающих ?

Всего записей: 4060 | Зарегистр. 22-11-2006 | Отправлено: 08:51 29-04-2008
psys6



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сори за нубство, тока начал изучать.
 
проблема:
 
стоит VS2008
делаю форму обычную,  CLR-> Windows Forms Application
на полученную форму кидаю кнопку.
 
на нажатие кнопки, беру пример работы с файлом - и на включенный файл stdio.h выдает кучу ошибок.

Код:
 
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                       #include <stdio.h>
                    void main()
                    {
                    int a, b;
                    scanf("%d", &a);
                    printf("Last digit: %d\n", a%10);
 
                    b = 0;
                    }
    };
 

Всего записей: 320 | Зарегистр. 26-04-2002 | Отправлено: 03:35 20-05-2008
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
psys6
если работаем с .NET/CLR, так и используем соответсвующие функции. а то и намешали...
#include не употребляется для этого типа приложений.
 
Вам нужен тип Win32 Console, правда не знаю, есть ли там такой. В 2005 студии точно есть.

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 16:45 20-05-2008
NoAngel777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
psys6

Код:
 
using namespace System;
 
int main(array<System::String ^> ^args)
{
    int a, b;  
    {
        String ^s=Console::ReadLine();
        a=Convert::ToInt32(s);
    }
    Console::WriteLine("Last digit: {0}\n", a%10);  
 
    b = 0;  
 
}

Всего записей: 2561 | Зарегистр. 04-04-2006 | Отправлено: 19:26 24-05-2008
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Visual C++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru