Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 629 • Страница 25 из 32<  1 ... 22  23  24  25  26  27  28 ... 32  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
theone писал(а):
(*dlg1).DoModal();

по моему так красивее:
Код:
dlg1->DoModal();

:) .


theone писал(а):
писал "SendMessage((UINT)m_hWnd,WM_APP+1)" (если не писать "(UINT)", то компилятор выдает ошибку "error C2664: 'CWnd::SendMessageW' : cannot convert parameter 1 from 'HWND' to 'UINT'"),

Ещё бы не выдавал ошибки - первым параметром этот метод класса CWnd ждёт сообщение, а не хэндл окна. В данном случае нужно использовать вместо CWnd::SendMessage просто ::SendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) , где первым параметром должен быть хэндл того окна в котором определён обработчик(тоесть там где нужно вызывать UpdateData). В первую очередь в обработчике нужно писать что-то типа MessageBox(_T("эврика")) , чтобы убедиться что сообщение доходит туда, куда его слали(или брэйкпоинты юзать). А уж потом нагружать обработчик полезным кодом.

theone писал(а):
мне надо прочитать содержимое Edit Control'а с формы, пишу "GetDlgItemText(IDC_OUTPUTFILE1,str1)" (str1 - строка CString), но все равно изменения, внесенные в этот Edit Control во время работы потока, не читаются.

Опять же скорее всего GetDlgItemText читает информацию не с той формы что нужно(точнее он вообще ничего не читает). Нужно опять же использовать ::GetDlgItemText(HWND hDlg, int nIDDlgItem, LPTSTR lpString, int nMaxCount ), где hDlg хэндл окна, где находится нужный нам контрол. Ситуация в общем-то такая же как и в первом случае.

зы: общие рекомендации: не стесняться читать MSDN по любому поводу, и пользовать отладку.



Партнер
 

Member
Статус: Не в сети
Регистрация: 10.12.2003
mein
Теперь всё работает. Не заметил, что есть несколько разных SendMessage. Теперь я могу делать так:
Код:
::SendMessage(m_hWnd,WM_APP+1,0,0)

могу так:
Код:
SendMessage(WM_APP+1)

и все обновляется и никаких ошибок.
"GetDlgItemText(IDC_OUTPUTFILE1,str1)" тоже кстати работает без всяких хэндлов, просто я затупил в прошлый раз....
Спасибо!!!


 

Member
Статус: Не в сети
Регистрация: 17.10.2005
Начал кодить в MVS 2008, ну и возник вопрос - как использовать классы MFC? Создаю простой проект windows forms appl., добавляю #include <afxwin.h> и получаю:
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\afx.h(24) : fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]

в чем проблема :?:


 

Member
Статус: Не в сети
Регистрация: 21.01.2004
Откуда: ядерная помойка
Delin
так всё же написано: #define _AFXDLL or do not use /MD
Неясно только, зачем вообще может понадобиться использовать MFC в .net приложении

_________________
memento mori


 

Member
Статус: Не в сети
Регистрация: 03.04.2005
Откуда: СПб
Пишу в Visual Studio 2005 C++.

Можно ли как-нибудь автоматизировать назначение имён переменных? А то при выделении элемента с нужным именем и его копировании в старом конструкторе ресурсов к его текущему имени прибавлялось число или инкрементировалось. А в конструкторе Windows Forms новым элементам присваивается имя по умолчанию и число в общем списке...

Тоесть: Если раньше при копировании ip_label_Alarm_0 получалось ip_label_Alarm_1, то в WF получаем label1. А при большом количестве разных элементов вручную задавать каждому осмысленные имена — это с ума сойти можно. При этом т.к. среда переписывает кучу названий функций и потом обновляет форму каждая смена имени занимает МИНУТУ. Это на 3GHz двуядерном проце... Тратить по 5 часов, чтоб накидать элементы управления — это же никуда не годится.

Кто знает решение проблемы, помогите пожалуйста.

_________________
Intel Core2Duo E2180(Conroe-1M) 2000MHz@3150MHz, 4096Mb PC2-6400 DDR2, 512Mb nVidia GeForce 8800GT


 

Member
Статус: Не в сети
Регистрация: 15.11.2003
Откуда: Moscow\Russia
Всем здарова.
Кто знает как можно заставить систему загрузить Visual Studio всю в память сразу?
Вот например открыл я проект. Запустилась студия, вкладка Properties у меня не фиксирована сбоку, а выдвигается при наведении мышьки. Так вот первый раз или когда долго не используешь она выдвигается очень медленно, комп подвисает похоже что часть программы он дозагружает потом с харда, и это раздражает, я хочу чтоб у меня все шустро выдвигалось и не подвисало.
Как это сделать кто знает?


 

Member
Статус: Не в сети
Регистрация: 27.03.2007
Стоит ли заниматься программированием ГПУ на Brook+?


 

Junior
Статус: Не в сети
Регистрация: 12.11.2006
Товарищи программисты, как сделать вистоподобный стиль кнопок в MFC, а то после компиляции выходит самый обыкновенный стиль(использую Visual Studio 2008)?


 

Member
Статус: Не в сети
Регистрация: 02.03.2005
Откуда: Владивосток
Вопрос к знатокам - как в проге можно обработать нажатие сочетания клавиш Win+M, Win+D - идея такая чтобы приложение не скрывалось (если это конечно возможно) ???

З.Ы. Прогу написанна на VS 2005/2008 ...


 

Member
Статус: Не в сети
Регистрация: 24.04.2008
Добрый вечер гуру программирования!
Есть небольшой код на С++ написанный "С++ Builder" - Лабораторная работа, так вот принес домой пытаюсь запустить этот код в Visual Studio а он сыпет ошибками :weep:
Я нуб в С++ только начинаю его осваивать... не судите строго :-)
Так вот меня интересует вообще совместимы ли между собой С++ Builder и Visual C++ ? :oops: И если совместимы то как мне откомпилировать код?
И имеет ли вообще смысл писать код на С++ Builder а потом пытаться его исполнить в Visual C++ или все же установить С++ Builder?


 

Member
Статус: Не в сети
Регистрация: 17.10.2005
SKY-LOST
проекты несовместимы. Проще всего переносить туда-сюда код c/c++ с использованием функций winapi. Переписывать все равно придется порядочно, поэтому лучше этим не заморачиваться, установи билдер и делай лабы в нем. Ну или договорись с преподом, что в студии будешь делать.

2010-ую кто-нибудь ужеюзал, как впечатления?


 

Member
Статус: Не в сети
Регистрация: 09.07.2008
freeHerz писал(а):
Стоит ли заниматься программированием ГПУ на Brook+?

Вы имеете в виду ATI Stream? Я думаю, стоит, почему нет? :)

Добавлено спустя 1 минуту 15 секунд:
Delin писал(а):
2010-ую кто-нибудь ужеюзал, как впечатления?

И еще вопрос: стоит ли на нее переходить с 2008, или ничего особенного там нет?


 

Advanced member
Статус: Не в сети
Регистрация: 20.11.2004
Фото: 23
__alex8 писал(а):
Вы имеете в виду ATI Stream?

Я думаю freeHerz за полтора года уже забыл что он имел ввиду. :D
Вообще судя по активности в этой теме (один вопрос в год) на с++ уже никто не пишет. :)


 

Member
Статус: Не в сети
Регистрация: 09.07.2008
CoolCmd писал(а):
за полтора года уже забыл что он имел ввиду.

тю, а я и не заметил дату...
На С++ пишут, еще и как. Это, видать, ветка умерла.


 

Member
Статус: Не в сети
Регистрация: 11.07.2004
Откуда: Москва
как из полей edit получить значения? через класс визард присвоил значение...как по кнопке OK просуммировать их и вывести в другой edit...
Код:
// stoimostDlg.cpp : implementation file
//

#include "stdafx.h"
#include "stoimost.h"
#include "stoimostDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
   CAboutDlg();

// Dialog Data
   //{{AFX_DATA(CAboutDlg)
   enum { IDD = IDD_ABOUTBOX };
   //}}AFX_DATA

   // ClassWizard generated virtual function overrides
   //{{AFX_VIRTUAL(CAboutDlg)
   protected:
   virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
   //}}AFX_VIRTUAL

// Implementation
protected:
   //{{AFX_MSG(CAboutDlg)
   //}}AFX_MSG
   DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
   //{{AFX_DATA_INIT(CAboutDlg)
   //}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
   CDialog::DoDataExchange(pDX);
   //{{AFX_DATA_MAP(CAboutDlg)
   //}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
   //{{AFX_MSG_MAP(CAboutDlg)
      // No message handlers
   //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CStoimostDlg dialog

CStoimostDlg::CStoimostDlg(CWnd* pParent /*=NULL*/)
   : CDialog(CStoimostDlg::IDD, pParent)
{
   //{{AFX_DATA_INIT(CStoimostDlg)
   m_e1 = _T("");
   m_e2 = _T("");
   m_e3 = _T("");
   //}}AFX_DATA_INIT
   // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
   m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CStoimostDlg::DoDataExchange(CDataExchange* pDX)
{
   CDialog::DoDataExchange(pDX);
   //{{AFX_DATA_MAP(CStoimostDlg)
   DDX_Text(pDX, IDC_EDIT1, m_e1);
   DDX_Text(pDX, IDC_EDIT2, m_e2);
   DDX_Text(pDX, IDC_EDIT3, m_e3);
   //}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CStoimostDlg, CDialog)
   //{{AFX_MSG_MAP(CStoimostDlg)
   ON_WM_SYSCOMMAND()
   ON_WM_PAINT()
   ON_WM_QUERYDRAGICON()
   //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CStoimostDlg message handlers

BOOL CStoimostDlg::OnInitDialog()
{
   CDialog::OnInitDialog();

   // Add "About..." menu item to system menu.

   // IDM_ABOUTBOX must be in the system command range.
   ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
   ASSERT(IDM_ABOUTBOX < 0xF000);

   CMenu* pSysMenu = GetSystemMenu(FALSE);
   if (pSysMenu != NULL)
   {
      CString strAboutMenu;
      strAboutMenu.LoadString(IDS_ABOUTBOX);
      if (!strAboutMenu.IsEmpty())
      {
         pSysMenu->AppendMenu(MF_SEPARATOR);
         pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
      }
   }

   // Set the icon for this dialog.  The framework does this automatically
   //  when the application's main window is not a dialog
   SetIcon(m_hIcon, TRUE);         // Set big icon
   SetIcon(m_hIcon, FALSE);      // Set small icon
   
   // TODO: Add extra initialization here
   
   return TRUE;  // return TRUE  unless you set the focus to a control
}

void CStoimostDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
   if ((nID & 0xFFF0) == IDM_ABOUTBOX)
   {
      CAboutDlg dlgAbout;
      dlgAbout.DoModal();
   }
   else
   {
      CDialog::OnSysCommand(nID, lParam);
   }
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CStoimostDlg::OnPaint()
{
   if (IsIconic())
   {
      CPaintDC dc(this); // device context for painting

      SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

      // Center icon in client rectangle
      int cxIcon = GetSystemMetrics(SM_CXICON);
      int cyIcon = GetSystemMetrics(SM_CYICON);
      CRect rect;
      GetClientRect(&rect);
      int x = (rect.Width() - cxIcon + 1) / 2;
      int y = (rect.Height() - cyIcon + 1) / 2;

      // Draw the icon
      dc.DrawIcon(x, y, m_hIcon);
   }
   else
   {
      CDialog::OnPaint();
   }
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CStoimostDlg::OnQueryDragIcon()
{
   return (HCURSOR) m_hIcon;
}

void CStoimostDlg::OnOK()
{
   m_e1="вывести";
   m_e2="это";
   m_e3="ыыыыы";
   DoModal();
   AfxMessageBox(m_e1 + " " + m_e2 + " " +m_e3);

   CDialog::OnOK();
}


 

Junior
Статус: Не в сети
Регистрация: 23.11.2008
Здравствуйте, учусь на первом курсе, задали задание - записать данные в файл и считать с него. Но на чистом Си. Я по програмированию можно сказать второй в группе, так что сложные решения тоже подойдут. Но вот записать не получаеться, создать создает, но записфвает туда бог весть что. Мне нужно записать в файл двухмерный масив в текстовом режиме и в бинарном. (ну хз как оно правильно называеться, в основном самоучка я) Масив у меня организован динамически, все вычисления прошли. Наведите пожалуйста пример записи данных из масива буду очень благодарен.

_________________
Русскими учёнными было установлено что ничто так отрицательно не влияет на здоровье печени как неправильно отфильтрованый базар.


 

Member
Статус: Не в сети
Регистрация: 17.10.2005
filename - имя файла для записи, mode - режим бинарный (0)/текстовый (!=0), height/width - размерности матрицы, mat - двойной указатель на матрицу.
Код:
#include <stdio.h>
int SaveMatrixToFile(char* filename, int mode, int height, int width, long **mat) {
   FILE *stream;
   stream = fopen(filename, "w");
   if (stream==NULL) return -1;
   if (mode==0) { // binary mode
      for (int q=0; q<height; q++)
         fwrite(mat[q], sizeof(long), width, stream);
   }
   else { // text mode
      for (int q=0; q<height; q++) {
         for (int w=0; w<width; w++) {
            fprintf (stream, "%f\t", (float)mat[q][w]);
         }
         fprintf (stream, "\n");
      }
   }
   return fclose(stream);
}


 

Member
Статус: Не в сети
Регистрация: 06.05.2009
Visual Studio 2008, код компилируется, но при выполнении после ввода первого же значения все вываливается с ошибкой
Цитата:
Необработанное исключение в "0x5c8ff9c4 (msvcr90d.dll)" в "Rarjpeg_c.exe": 0xC0000005: Нарушение прав доступа при чтении "0x631dfdbd".

По замыслу, прога должна делать раржпег после ввода пути к исходным .rar и .jpg
Код:
#include <iostream>
#include <string>
using namespace std;

class creator
 {
 public:
    char rar,jpg;

    int init()
    {
       cout << "rar: ";
       cin  >> rar;
       cout << "jpg: ";
       cin  >> jpg;
       if ((rar!=0) & (jpg!=0))
         {return 1;}
       else
         {return 0;}
    }

    void make()
    {
       char *rarp,*jpgp;
      rarp=&rar; jpgp=&jpg;

      char kick;
       char *comp;
      comp=&kick;

      char *cop="copy /b";
      strncat(comp,cop,1);
       strncat(comp,jpgp,80);

      char *plu="+";
      strncat(comp,plu,1);

      strncat(comp,rarp,80);

      char *res="result.jpg";
      strncat(comp,res,80);

      char com;
       com=*comp;
      cmd(com);
      delete rarp; delete jpgp; delete comp;
     }

 private:
    void cmd(char str)
    {
       const char *makeme;
      makeme=&str;
       system (makeme);
      delete makeme;
     }
  };
int main()
{   
   creator pip;
   switch(pip.init())
   {   case 0: system ("@echo input error"); break;
       case 1: pip.make(); break;
      default: system ("@echo fail"); break;   }
   system ("pause");
   return 0;
}

Где ошибка?


 

Member
Статус: Не в сети
Регистрация: 07.01.2010
Код:
char rar,jpg;

char - это 1 байт, а ты туда строки пытаешься запихнуть... раз уж решил на плюсах писать и с классами работать - так юзай string для строк, с указателями у тебя в голове каша, видимо.


 

Member
Статус: Не в сети
Регистрация: 06.05.2009
в system() можно использовать только const char * , посему изначально и использую типы данных char; все вываливается, даже если ввести один символ.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 629 • Страница 25 из 32<  1 ... 22  23  24  25  26  27  28 ... 32  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan