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 по любому поводу, и пользовать отладку.
mein Теперь всё работает. Не заметил, что есть несколько разных SendMessage. Теперь я могу делать так:
Код:
::SendMessage(m_hWnd,WM_APP+1,0,0)
могу так:
Код:
SendMessage(WM_APP+1)
и все обновляется и никаких ошибок.
"GetDlgItemText(IDC_OUTPUTFILE1,str1)" тоже кстати работает без всяких хэндлов, просто я затупил в прошлый раз....
Спасибо!!!
Начал кодить в 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
Статус: Не в сети Регистрация: 03.04.2005 Откуда: СПб
Пишу в Visual Studio 2005 C++.
Можно ли как-нибудь автоматизировать назначение имён переменных? А то при выделении элемента с нужным именем и его копировании в старом конструкторе ресурсов к его текущему имени прибавлялось число или инкрементировалось. А в конструкторе Windows Forms новым элементам присваивается имя по умолчанию и число в общем списке...
Тоесть: Если раньше при копировании ip_label_Alarm_0 получалось ip_label_Alarm_1, то в WF получаем label1. А при большом количестве разных элементов вручную задавать каждому осмысленные имена — это с ума сойти можно. При этом т.к. среда переписывает кучу названий функций и потом обновляет форму каждая смена имени занимает МИНУТУ. Это на 3GHz двуядерном проце... Тратить по 5 часов, чтоб накидать элементы управления — это же никуда не годится.
Member
Статус: Не в сети Регистрация: 15.11.2003 Откуда: Moscow\Russia
Всем здарова.
Кто знает как можно заставить систему загрузить Visual Studio всю в память сразу?
Вот например открыл я проект. Запустилась студия, вкладка Properties у меня не фиксирована сбоку, а выдвигается при наведении мышьки. Так вот первый раз или когда долго не используешь она выдвигается очень медленно, комп подвисает похоже что часть программы он дозагружает потом с харда, и это раздражает, я хочу чтоб у меня все шустро выдвигалось и не подвисало.
Как это сделать кто знает?
Товарищи программисты, как сделать вистоподобный стиль кнопок в MFC, а то после компиляции выходит самый обыкновенный стиль(использую Visual Studio 2008)?
Member
Статус: Не в сети Регистрация: 02.03.2005 Откуда: Владивосток
Вопрос к знатокам - как в проге можно обработать нажатие сочетания клавиш Win+M, Win+D - идея такая чтобы приложение не скрывалось (если это конечно возможно) ???
Добрый вечер гуру программирования! Есть небольшой код на С++ написанный "С++ Builder" - Лабораторная работа, так вот принес домой пытаюсь запустить этот код в Visual Studio а он сыпет ошибками Я нуб в С++ только начинаю его осваивать... не судите строго Так вот меня интересует вообще совместимы ли между собой С++ Builder и Visual C++ ? И если совместимы то как мне откомпилировать код? И имеет ли вообще смысл писать код на С++ Builder а потом пытаться его исполнить в Visual C++ или все же установить С++ Builder?
SKY-LOST проекты несовместимы. Проще всего переносить туда-сюда код c/c++ с использованием функций winapi. Переписывать все равно придется порядочно, поэтому лучше этим не заморачиваться, установи билдер и делай лабы в нем. Ну или договорись с преподом, что в студии будешь делать.
// 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 }
// 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
// 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; }
Здравствуйте, учусь на первом курсе, задали задание - записать данные в файл и считать с него. Но на чистом Си. Я по програмированию можно сказать второй в группе, так что сложные решения тоже подойдут. Но вот записать не получаеться, создать создает, но записфвает туда бог весть что. Мне нужно записать в файл двухмерный масив в текстовом режиме и в бинарном. (ну хз как оно правильно называеться, в основном самоучка я) Масив у меня организован динамически, все вычисления прошли. Наведите пожалуйста пример записи данных из масива буду очень благодарен.
_________________ Русскими учёнными было установлено что ничто так отрицательно не влияет на здоровье печени как неправильно отфильтрованый базар.
char - это 1 байт, а ты туда строки пытаешься запихнуть... раз уж решил на плюсах писать и с классами работать - так юзай string для строк, с указателями у тебя в голове каша, видимо.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения