![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| serge_mok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 6.12.2006 Репутация: нет Всего: нет |
вобщем написал диалоговое приложенье на VC++6, для работы с com-портом, заработало и проблем никаких. Теперь делаю диалоговое приложенье с вкладками, а не работает.
Суть: раньше инициализировал порт в конструкторе класса "диалоговое окно":CDialog, потом по таймеру отправлял посылку в порт, и всё было нормально. Теперь пытаюсь сделать то же, только в конструкторе CPropertySheet, также пробовал в конструкторе страницы CPropertyPage, и ещё по всякому...ни в какую: таймер работает каждую секунду, проверял. порт открывается(параллельно запущенное аналогичное , но работоспособное приложение этот же порт открыть не может), а вот по ф.WriteFile(..) ничего не отправляется... Мож кто подскажет, в каком месте правильно будет иниц.порт или ссылку толковую. спасибо |
|||
|
||||
| witex |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 16.10.2006 Где: Эстония Репутация: 1 Всего: 4 |
Покажь исходик что ли?
--------------------
Я не волшебник, я только учусь."Шлёпни в Гугл" - Афтор Былов Ю.М. |
|||
|
||||
| serge_mok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 6.12.2006 Репутация: нет Всего: нет |
#include "stdafx.h"
#include "SheetApp.h" #include "SheetAppDlg.h" #include "Sheet.h" ///////////////////////////////////////////////////////////////////////////// // CSheetAppApp BEGIN_MESSAGE_MAP(CSheetAppApp, CWinApp) //{{AFX_MSG_MAP(CSheetAppApp) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG //ON_COMMAND(ID_HELP, CWinApp::OnHelp) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CSheetAppApp construction CSheetAppApp::CSheetAppApp() { // TODO: add construction code here, // Place all significant initialization in InitInstance } ///////////////////////////////////////////////////////////////////////////// // The one and only CSheetAppApp object CSheetAppApp theApp; ///////////////////////////////////////////////////////////////////////////// // CSheetAppApp initialization BOOL CSheetAppApp::InitInstance() { AfxEnableControlContainer(); // Standard initialization // If you are not using these features and wish to reduce the size // of your final executable, you should remove from the following // the specific initialization routines you do not need. #ifdef _AFXDLL Enable3dControls(); // Call this when using MFC in a shared DLL #else Enable3dControlsStatic(); // Call this when linking to MFC statically #endif CSheet dlg("Диалоговое окно с вкладками"); m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: Place code here to handle when the dialog is // dismissed with OK } else if (nResponse == IDCANCEL) { // TODO: Place code here to handle when the dialog is // dismissed with Cancel } // Since the dialog has been closed, return FALSE so that we exit the // application, rather than start the application's message pump. return FALSE; } Sheet.cpp #include "stdafx.h" #include "SheetApp.h" #include "Sheet.h" #include <string.h> #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CSheet IMPLEMENT_DYNAMIC(CSheet, CPropertySheet) CSheet::CSheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage) :CPropertySheet(nIDCaption, pParentWnd, iSelectPage) { AddPage(&m_page1); AddPage(&m_page2); AddPage(&m_page3); buf = new char[65]; buf_in = new char[70]; bufGraf = new char[70]; strcpy( buf, "D HELLO #1A11F#"); bufStatus="Останов"; dcb=(DCB*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(DCB)); dcb->DCBlength=sizeof(DCB); BuildCommDCB("baud=2400 parity=N data=8 stop=1",dcb); dcb->fNull=false; dcb->fAbortOnError=true; dcb->fRtsControl=RTS_CONTROL_TOGGLE; dcb->fOutxDsrFlow=true; ct.ReadIntervalTimeout=10; ct.ReadTotalTimeoutMultiplier=ct.ReadTotalTimeoutConstant=100; ct.WriteTotalTimeoutMultiplier=ct.WriteTotalTimeoutConstant=200; port=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING, FILE_FLAG_OVERLAPPED,NULL); if(port==INVALID_HANDLE_VALUE) { //MessageBox("Не возможно открыть последовательный порт","Error",MB_OK); ExitProcess(1); } SetCommState(port,dcb); SetCommTimeouts(port,&ct); // memset(&ovr,0,sizeof(ovr)); // ovr.hEvent=CreateEvent(NULL,FALSE,FALSE,NULL); HeapFree(GetProcessHeap(),0,dcb); PurgeComm(port,PURGE_TXCLEAR|PURGE_RXCLEAR); SetupComm(port,32,70); } CSheet::~CSheet() { delete [] buf; delete [] buf_in; delete [] bufStatus; delete [] bufGraf; PurgeComm(port,PURGE_TXCLEAR|PURGE_RXCLEAR); CloseHandle(port); } BEGIN_MESSAGE_MAP(CSheet, CPropertySheet) //{{AFX_MSG_MAP(CSheet) ON_WM_TIMER() ON_WM_DESTROY() ON_WM_PAINT() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CSheet message handlers BOOL CSheet::OnInitDialog() { BOOL bResult = CPropertySheet::OnInitDialog(); // TODO: Add your specialized code here if( !SetTimer(1,2000,NULL) ) { MessageBox("Не удалось создать таймер","Error",MB_OK); ExitProcess(1); } m_page1.UpDatePage(); return bResult; } void CSheet::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default m_page1.UpDatePage(); WriteFile(port,buf,strlen(buf),&bc,&ovr); CPropertySheet::OnTimer(nIDEvent); } void CSheet::OnDestroy() { CPropertySheet::OnDestroy(); // TODO: Add your message handler code here KillTimer(1); } m_page1...m_page3 вкладки в CSheet |
|||
|
||||
| serge_mok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 6.12.2006 Репутация: нет Всего: нет |
Всё, снята тема...надо было просто глаза разуть
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |