<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3703715</guid>
        <pubDate>Tue, 24 Jan 2017 11:54:54 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3703715</link>
        <description><![CDATA[Acvarif: Спасибо за уточнение и пример.]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3701472</guid>
        <pubDate>Wed, 11 Jan 2017 08:52:03 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3701472</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3701095'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2017-01-08T15:56:02+00:00">08.01.17, 15:56</time></span><div class='quote '>По поводу встраивания окна Glut в MFC <a class='tag-url' href='http://www.codeguru.com/cpp/cpp/cpp_mfc/tutorials/article.php/c10975/Setting-Up-OpenGL-in-an-MFC-Control.htm#page-2' target='_blank'>http://www.codeguru.com/cpp/cpp/cpp_mfc/tu...trol.htm#page-2</a></div></div><br>
Хочу внести уточнение, на самом деле GLUT это независимая от платформы библиотека со своей оконной системой, поэтому ее нельзя было встроить в окно MFC или еще куда. А пример по ссылке приводится описание интеграции OpenGL и GLU (это не GLUT) в MFC через механизм Windows GL (WGL)<br>
 ;)<br>
<br>
На самом деле это даже более правильный способ использования OpenGL с MFC  :)<br>
GLUT как правило используется в программировании игр, ну и хорошо подходит для изучения OpenGL.<br>
<br>
Сделал пример отрисовки OpenGL в окно MFC (максимально упростил  :D):<br>
<span class="b-attach" data-size="69106" data-hits="144" data-attach-id="51382" data-attach-post-id="3701472">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3701472&amp;attach_id=51382' title='Скачать файл' target='_blank'>Example5.rar</a> (, : 144)
		</span>]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3701096</guid>
        <pubDate>Sun, 08 Jan 2017 16:05:34 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3701096</link>
        <description><![CDATA[Cfon: :victory:]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3701095</guid>
        <pubDate>Sun, 08 Jan 2017 15:56:02 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3701095</link>
        <description><![CDATA[Acvarif: Спасибо. Работает. Метка начала двигаться. По поводу встраивания окна Glut в MFC <a class='tag-url' href='http://www.codeguru.com/cpp/cpp/cpp_mfc/tutorials/article.php/c10975/Setting-Up-OpenGL-in-an-MFC-Control.htm#page-2' target='_blank'>http://www.codeguru.com/cpp/cpp/cpp_mfc/tu...trol.htm#page-2</a>]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3701087</guid>
        <pubDate>Sun, 08 Jan 2017 14:17:46 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3701087</link>
        <description><![CDATA[Acvarif: Спасибо. Пробую так. Весь код в файле MFCtestDlg.cpp<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">...</div><div class="code_line">int x = 0, y = 0; </div><div class="code_line">int counterTr;</div><div class="code_line">...</div><div class="code_line">void Idle()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;/* Код, который меняет переменные, определяющие следующий кадр */ </div><div class="code_line">&nbsp;&nbsp;x = x + 5;</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
Функция тображающая сетку с меткой в координатах x y<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void Display()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;/* Код OpenGL, который отображает кадр */ </div><div class="code_line">&nbsp;&nbsp; &nbsp;glMatrixMode(GL_PROJECTION);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glLoadIdentity();</div><div class="code_line">&nbsp;&nbsp; &nbsp;glOrtho(-WinWidth/2, WinWidth/2, -WinHeight/2, WinHeight/2, -1.0, 1.0);</div><div class="code_line">&nbsp;&nbsp; &nbsp;// горизонтальные и вертикальные линии сетки</div><div class="code_line">&nbsp;&nbsp; &nbsp;glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);</div><div class="code_line">&nbsp;&nbsp;glBegin(GL_LINES);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glColor3f(1.0, 1.0, 1.0);</div><div class="code_line">&nbsp;&nbsp; &nbsp;// по горизонтали</div><div class="code_line">&nbsp;&nbsp;for(int i = -WinWidth/2; i &#60;= WinWidth/2; i += 5)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if(i%100 == 0 || i == 0) glColor3f(0.0, 1.0, 1.0);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;else glColor3f(0.5, 0.5, 0.5);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;glVertex2f(i, -WinHeight);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glVertex2f(i, WinWidth);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;glColor3f(0.5, 0.5, 0.5);</div><div class="code_line">&nbsp;&nbsp; &nbsp;// по вертикали</div><div class="code_line">&nbsp;&nbsp;for(int i = -WinWidth/2; i &#60;= WinWidth/2; i += 100)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;glVertex2f(-WinHeight, i);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glVertex2f(WinHeight, i);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp;glEnd();</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;// зеленая мета с координатами x, y</div><div class="code_line">&nbsp;&nbsp;glColor3f( 0.0, 1.0, 0.0 ); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div><div class="code_line">&nbsp;&nbsp;glPolygonMode( GL_FRONT, GL_FILL );</div><div class="code_line">&nbsp;&nbsp;glBegin( GL_POLYGON ); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp;glVertex2i( x+0, y+2 );</div><div class="code_line">&nbsp;&nbsp;glVertex2i( x+5, y+2 ); &nbsp;</div><div class="code_line">&nbsp;&nbsp;glVertex2i( x+5, y+0 ); &nbsp; </div><div class="code_line">&nbsp;&nbsp;glVertex2i( x+0, y+0 ); &nbsp;</div><div class="code_line">&nbsp;&nbsp;glEnd();</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;glFlush();</div><div class="code_line">&nbsp;</div><div class="code_line">/* После отрисовки мы переставляем (заменяем) буфера */ &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;glutSwapBuffers(); &nbsp;</div><div class="code_line">}</div></ol></div></div></div></div><br>
<br>
Далее поток рисования<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">DWORD WINAPI ImageThread(LPVOID lpParam)</div><div class="code_line">{</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; // контроль работы потока по изменению counterRX</div><div class="code_line">&nbsp;&nbsp; &nbsp;counterTr = counterTr + 5;</div><div class="code_line">&nbsp;&nbsp; &nbsp;CString str_static10;</div><div class="code_line">&nbsp;&nbsp; &nbsp;// </div><div class="code_line">&nbsp;&nbsp; &nbsp;CWnd* pWnd = CWnd::FromHandle((HWND)lpParam);</div><div class="code_line">&nbsp;&nbsp; &nbsp;// получить указатель на IDC_STATIC10 </div><div class="code_line">&nbsp;&nbsp; &nbsp;CStatic* pText10 = (CStatic*)pWnd-&#62;GetDlgItem(IDC_STATIC10);</div><div class="code_line">&nbsp;&nbsp;//вывести сообщение об этом в строке состояния</div><div class="code_line">&nbsp;&nbsp; &nbsp;str_static10.Format(_T(&quot;Прием %d&quot;), counterTr);</div><div class="code_line">&nbsp;&nbsp; &nbsp;pText10-&#62;SetWindowText(str_static10);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">// выполняется один раз после запуса программы</div><div class="code_line">if(!win)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;win = 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glMatrixMode(GL_PROJECTION);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glLoadIdentity();</div><div class="code_line">&nbsp;&nbsp; &nbsp;glViewport(0, 0, WinWidth, WinHeight); </div><div class="code_line">&nbsp;&nbsp;glutInitWindowSize(WinWidth, WinHeight);</div><div class="code_line">&nbsp;&nbsp;glutCreateWindow(&quot;Drawing with GLUT&quot;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);</div><div class="code_line">}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </div><div class="code_line">&nbsp;&nbsp;// вызов функций рисования Display и смены координаты x Idle</div><div class="code_line">&nbsp;&nbsp;glutDisplayFunc(Display);</div><div class="code_line">&nbsp;&nbsp;glutIdleFunc(Idle);</div><div class="code_line">&nbsp;&nbsp;glutMainLoop();</div><div class="code_line">&nbsp;&nbsp;Sleep(1);</div><div class="code_line">&nbsp;&nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div><br>
Все прорисовывается нормально, но застревает на glutMainLoop() Счетчик counterTr останавливается на положении 5. Не врубаюсь, что я сделал не верно?]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3701070</guid>
        <pubDate>Sun, 08 Jan 2017 10:03:50 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3701070</link>
        <description><![CDATA[Cfon: думаю надо юзать glutIdleFunc и передать ей колбяк функцию:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void MyIdleProc()</div><div class="code_line">{  </div><div class="code_line">&nbsp;&nbsp; &nbsp;/* Код, который меняет переменные, определяющие следующий кадр */  </div><div class="code_line">&nbsp;&nbsp; &nbsp;....  </div><div class="code_line">};  </div><div class="code_line">&nbsp;</div><div class="code_line">void MyDisplayProc()</div><div class="code_line">{  </div><div class="code_line">&nbsp;&nbsp; &nbsp;/* Код OpenGL, который отображает кадр */  </div><div class="code_line">&nbsp;&nbsp; &nbsp;....  </div><div class="code_line">&nbsp;&nbsp; &nbsp;/* После отрисовки мы переставляем (заменяем) буфера */  </div><div class="code_line">&nbsp;&nbsp; &nbsp;glutSwapBuffers();  </div><div class="code_line">};  </div><div class="code_line">&nbsp;</div><div class="code_line">void main(int argcp, char **argv)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;....</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;/* Регистрация вызываемых функций */  </div><div class="code_line">&nbsp;&nbsp; &nbsp;glutDisplayFunc(MyDisplay);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glutIdleFunc(MyIdle);</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;/* Запуск механизма обработки событий */  </div><div class="code_line">&nbsp;&nbsp; &nbsp;glutMainLoop();  </div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3701069</guid>
        <pubDate>Sun, 08 Jan 2017 09:33:48 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3701069</link>
        <description><![CDATA[Acvarif: Glut неплохо все рисует.<span class="b-attach" data-size="180363" data-hits="965" data-attach-id="51292" data-attach-post-id="3701069">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3701069&amp;attach_id=51292' title='Скачать файл' target='_blank'>am1.jpg</a> (, : 965)
		</span><br>
Но возникла проблема с прорисовкой движения мети (зеленая полоска на изображении).<br>
Оказалось, что функция glutMainLoop() не имеет возврата. Если она вызывается, например, в потоке рисования то на ней все и застревает. <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">// сетка с меткой</div><div class="code_line">void Display()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);</div><div class="code_line">&nbsp;&nbsp;glBegin(GL_LINES);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glColor3f(1.0, 1.0, 1.0);</div><div class="code_line">&nbsp;&nbsp; &nbsp;// по горизонтали</div><div class="code_line">&nbsp;&nbsp;for(int i = -WinWidth/2; i &#60;= WinWidth/2; i += 5)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if(i%100 == 0 || i == 0) glColor3f(0.0, 1.0, 1.0);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;else glColor3f(0.5, 0.5, 0.5);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;glVertex2f(i, -WinHeight);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glVertex2f(i, WinWidth);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;glColor3f(0.5, 0.5, 0.5);</div><div class="code_line">&nbsp;&nbsp; &nbsp;// по вертикали</div><div class="code_line">&nbsp;&nbsp;for(int i = -WinWidth/2; i &#60;= WinWidth/2; i += 100)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;glVertex2f(-WinHeight, i);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glVertex2f(WinHeight, i);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp;glEnd();</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;glColor3f( 0.0, 1.0, 0.0 ); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div><div class="code_line">&nbsp;&nbsp;glPolygonMode( GL_FRONT, GL_FILL );</div><div class="code_line">&nbsp;&nbsp;glBegin( GL_POLYGON ); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;glVertex2i( x+0, y+1 );</div><div class="code_line">&nbsp;&nbsp; &nbsp;glVertex2i( x+5, y+1 ); &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;glVertex2i( x+5, y+0 ); &nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp;glVertex2i( x+0, y+0 ); &nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;glEnd();</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;glFlush();</div><div class="code_line">&nbsp;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">//---------------------------------------------------------------------------</div><div class="code_line">// Поток рисования</div><div class="code_line">DWORD WINAPI ImageThread(LPVOID lpParam)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;counterRX = counterRX + 5;</div><div class="code_line">&nbsp;&nbsp; &nbsp;CString str_static10;</div><div class="code_line">&nbsp;&nbsp; &nbsp;// </div><div class="code_line">&nbsp;&nbsp; &nbsp;CWnd* pWnd = CWnd::FromHandle((HWND)lpParam);</div><div class="code_line">&nbsp;&nbsp; &nbsp;// получить указатель на IDC_STATIC10 </div><div class="code_line">&nbsp;&nbsp; &nbsp;CStatic* pText10 = (CStatic*)pWnd-&#62;GetDlgItem(IDC_STATIC10);</div><div class="code_line">&nbsp;&nbsp; &nbsp;str_static10.Format(_T(&quot;Прием %d&quot;), counterRX);</div><div class="code_line">&nbsp;&nbsp; &nbsp;pText10-&#62;SetWindowText(str_static10);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glMatrixMode(GL_PROJECTION);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glLoadIdentity();</div><div class="code_line">&nbsp;&nbsp; &nbsp;glViewport(0, 0, WinWidth, WinHeight); </div><div class="code_line">&nbsp;&nbsp;glutInitWindowSize(WinWidth, WinHeight);</div><div class="code_line">&nbsp;&nbsp;glutCreateWindow(&quot;Drawing with GLUT&quot;);</div><div class="code_line">&nbsp;&nbsp;glutDisplayFunc(Display);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;glutMainLoop();</div><div class="code_line">&nbsp;&nbsp; &nbsp;Sleep(1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div><br>
Для проверки в поток добавил счетчик counterRX с выводом на IDC_STATIC10.<br>
После запуска программы появляется рисунок но дальше явно все застревает на glutMainLoop(); поскольку счетчик останавливается на числе 5. При этом поток приема-передачи по COM работает нормально.<br>
Получается что в данном случае можно нарисовать только статическую картинку.<br>
Понимаю, что вопрос не в тему MFC, но может кто сталкивался с MFC+GLUT и динамическими картинками. Как решить вопрос MFC+GLUT_динамическое?]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700657</guid>
        <pubDate>Mon, 02 Jan 2017 21:16:24 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700657</link>
        <description><![CDATA[Acvarif: Можно-ли поместить окно GLUT в окно Edit Contol MFC? Или просто жестко привязать - разместить на форме MFC.]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700616</guid>
        <pubDate>Mon, 02 Jan 2017 13:07:01 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700616</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3700604'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2017-01-02T12:09:01+00:00">02.01.17, 12:09</time></span><div class='quote '>Или можно-ли встроить интерфейс сделанный в MFC в графическое окно GLUT?</div></div><br>
У GLUT есть свой цикл обработки сообщений, как их совместить с MFC циклом хз. Надо лезть в сорсы глут и изучать.]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700604</guid>
        <pubDate>Mon, 02 Jan 2017 12:09:01 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700604</link>
        <description><![CDATA[Acvarif: По ходу возник актуальный вопрос. Если возникнет необходимость на GLUT нарисовать весь интерфейс с сеткой, кнопками, окнами прокрутки - можно-ли будет управлять кнопками, окнами с помощью мышки и клавиатуры? Или можно-ли встроить интерфейс сделанный в MFC в графическое окно GLUT?]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700529</guid>
        <pubDate>Sun, 01 Jan 2017 17:02:15 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700529</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3700523'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2017-01-01T15:33:00+00:00">01.01.17, 15:33</time></span><div class='quote '>Фух.. Запустилось.</div></div><br>
:good:  :victory:]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700523</guid>
        <pubDate>Sun, 01 Jan 2017 15:33:00 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700523</link>
        <description><![CDATA[Acvarif: Фух.. Запустилось. Толком и не понял в чем была проблема. Перезагрузил в системные папки Windows файлы .dll и в папки Lib и др. Visual Studio файлы скачанные из другого источника.<br>
<span class="b-attach" data-size="38068" data-hits="1035" data-attach-id="51121" data-attach-post-id="3700523">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3700523&amp;attach_id=51121' title='Скачать файл' target='_blank'>am1.jpg</a> (, : 1035)
		</span>]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700518</guid>
        <pubDate>Sun, 01 Jan 2017 13:50:49 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700518</link>
        <description><![CDATA[Acvarif: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>определяешь функцию потока, в которой пишешь код glut, потом вызываешь через AfxBeginThread <br>
из какого места? например по нажатию кнопки.<br>
с наступающим Новым годом петуха&#33;<br>
</div></div>С Новым Годом&#33; Всех благ&#33;<br>
Определил функцию потока рисования и входящие в нее функции <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void display()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;glPushMatrix();</div><div class="code_line">&nbsp;&nbsp; &nbsp;glRotatef(ang, 0.0, 1.0, 0.0);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glutSolidTeapot(1.0);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glPopMatrix();</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;glutSwapBuffers();</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">void reshape(int x, int y)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;glMatrixMode(GL_PROJECTION);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glLoadIdentity();</div><div class="code_line">&nbsp;&nbsp; &nbsp;gluPerspective(60, (float)x/(float)y, 0.1, 100);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glMatrixMode(GL_MODELVIEW);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glLoadIdentity();</div><div class="code_line">&nbsp;&nbsp; &nbsp;gluLookAt(0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;glEnable(GL_DEPTH_TEST);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glEnable(GL_LIGHTING);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glEnable(GL_LIGHT0);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">void idle()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;glutPostRedisplay();</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">DWORD WINAPI ImageThread(LPVOID lpParam)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glutCreateWindow(&quot;test&quot;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;glutDisplayFunc(display);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glutReshapeFunc(reshape);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glutIdleFunc(idle);</div><div class="code_line">&nbsp;&nbsp; &nbsp;glutMainLoop();</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div><br>
<br>
По запуску программы создал поток<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp;image = CreateThread( NULL, 0, ImageThread, GetSafeHwnd(), CREATE_SUSPENDED, NULL);</div><div class="code_line">&nbsp;&nbsp;Sleep(10);</div></ol></div></div></div></div><br>
По нажатию кнопки поток запускается<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void CMFCtestDlg::OnBnClickedButton4()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;// активировать поток рисования</div><div class="code_line">&nbsp;&nbsp; &nbsp;ResumeThread(image);</div><div class="code_line">}</div></ol></div></div></div></div><br>
При запуске &#39;Build&#39; все застревает на функции создания окна<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp;glutCreateWindow(&quot;test&quot;);</div></ol></div></div></div></div><br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Error &nbsp; 1 &nbsp; error LNK2019: unresolved external symbol ___glutCreateWindowWithExit@8 referenced in function _glutCreateWindow_ATEXIT_HACK@4 &nbsp;MFCtestDlg.obj &nbsp;MFCtest</div><div class="code_line">Error &nbsp; 2 &nbsp; fatal error LNK1120: 1 unresolved externals</div></ol></div></div></div></div><br>
Не врубаюсь, что не определено?]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700417</guid>
        <pubDate>Sat, 31 Dec 2016 20:49:02 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700417</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3700396'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-31T18:07:59+00:00">31.12.16, 18:07</time></span><div class='quote '>Не врубаюсь где нужно писать код с GLUT, в каком файле? Где запускать поток, в каком файле? Каким образом в проекте должно появиться графическое окно? Совсем смутно с этим.</div></div><br>
определяешь функцию потока, в которой пишешь код glut, потом вызываешь через AfxBeginThread  :) <br>
из какого места? например по нажатию кнопки. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2016-12-31T20:50:36+00:00">31.12.16, 20:50</time></span></span><br>
с наступающим Новым годом петуха&#33; :D]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700398</guid>
        <pubDate>Sat, 31 Dec 2016 18:33:54 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700398</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3700396'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-31T18:07:59+00:00">31.12.16, 18:07</time></span><div class='quote '>Но обычно делаются качели - 2 глобальных буфера которые заполняются попеременно. Пока один заполняется с другим можно работать. в следующую секунду все меняется местами. Ничего особенного..</div></div><br>
..И тут вдруг будет обнаружено, что эта &quot;естественная синхронизация&quot; может,<br>
хотя и изредко, нарушаться.<br>
Когда второй буфер уже заполнен и происходит обмен буферами, первый ещё не считан<br>
и, как раз в этот момент, считывается.]]></description>
        <author>ЫукпШ</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700396</guid>
        <pubDate>Sat, 31 Dec 2016 18:07:59 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700396</link>
        <description><![CDATA[Acvarif: Думаю с помщью флага. Ведь период обмена 1 сек. Буфер заполняется (115200) примерно через 100 мс. Далее установка флага и работа с буфером до конца секунды. Но обычно делаются качели - 2 глобальных буфера которые заполняются попеременно. Пока один заполняется с другим можно работать. в следующую секунду все меняется местами. Ничего особенного.. Не врубаюсь где нужно писать код с GLUT, в каком файле? Где запускать поток, в каком файле? Каким образом в проекте должно появиться графическое окно? Совсем смутно с этим.<br>По поводу двух потоков - понял. Спасибо. <br>Не в тему. <br>С наступающим Новым Годом&#33; Всех благ&#33; Удачи&#33;]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700388</guid>
        <pubDate>Sat, 31 Dec 2016 17:43:57 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700388</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3700383'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-31T17:18:26+00:00">31.12.16, 17:18</time></span><div class='quote '>Очевидно должен быть еще один поток. В имеющемся файле ..Dlg или.. не врубаюсь. Чем плох глобальный буфер?</div></div><br>
Этим вот и плох.<br>
Из одного потока буфер заполняется.<br>
Из другого читается.<br>
Как будешь синхронизировать эти потоки для доступа к данным ?]]></description>
        <author>ЫукпШ</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700383</guid>
        <pubDate>Sat, 31 Dec 2016 17:18:26 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700383</link>
        <description><![CDATA[Acvarif: Структуру не представляю. Простейший поиск по сети  - приложения GLUT консольные WIN32. Какова должна быть структура MFC GLUT пока смутно представляю. Очевидно должен быть еще один поток. В имеющемся файле ..Dlg или.. не врубаюсь. Чем плох глобальный буфер?]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700381</guid>
        <pubDate>Sat, 31 Dec 2016 16:32:45 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700381</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3700362'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-31T13:53:38+00:00">31.12.16, 13:53</time></span><div class='quote '>Все же попробую GLUT. <br>
...<br>
В проекте имеется глобальный буфер bufrd[]... <br>
Дальше немного растерялся. <br>
...<br>
Какова технология добавления графического окна к уже существующему проекту?</div></div><br>
Упс...<br>
Получается, что ты даже отдалённо не знаешь, какова<br>
должна быть структура проекта.<br>
А выбор уже сделал.. :huh: <br>
Глобальный буфер с данными в многопоточной программе я бы не посоветовал.<br>
Это и не нужно ни с какой точки зрения.]]></description>
        <author>ЫукпШ</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700362</guid>
        <pubDate>Sat, 31 Dec 2016 13:53:38 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700362</link>
        <description><![CDATA[Acvarif: Все же попробую GLUT. Скачал и раскидал нужные файлы по нужным местам <a class='tag-url' href='http://rucodes.com/opengl-microsoft-visual-studio-c.html' target='_blank'>http://rucodes.com/opengl-microsoft-visual-studio-c.html</a><br>
Дальше немного растерялся. В проекте имеется глобальный буфер bufrd[] где каждую секунду обновляются данные с COM порта, которые нуно разобрать и отобразить в графическом окне.<br>
Каким образом создается графическое окно с GLUT? Это должен быть отдельный файл в составе существующего проекта? Какова технология добавления графического окна к уже существующему проекту?]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700131</guid>
        <pubDate>Thu, 29 Dec 2016 18:50:48 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700131</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3700074'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-29T13:16:57+00:00">29.12.16, 13:16</time></span><div class='quote '>Прикручивать к проекту OpenGl (GLUT и т.п.) или можно обойтись средствами MFC?</div></div><br>
Скорее всего MFC (т.е. обычного GDI) хватит.]]></description>
        <author>ЫукпШ</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700111</guid>
        <pubDate>Thu, 29 Dec 2016 16:57:24 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700111</link>
        <description><![CDATA[Acvarif: В скрепке архив проекта MFCtest. <span class="b-attach" data-size="150397" data-hits="134" data-attach-id="51083" data-attach-post-id="3700111">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3700111&amp;attach_id=51083' title='Скачать файл' target='_blank'>MFCtest.rar</a> (, : 134)
		</span> Может кому пригодится в качестве примера приема-передачи по COM в асинхронном режиме. Также в архиве есть текстовый файл MFCtest.txt который является тестовой текстовой строкой для известной программы работы с COM портом ComPortTolkit. На ПК должно быть как минимум 2 COM порта соединенных перекрестным кабелем (выход передачи одного на вход приема другого). Один работает на передачу из программы ComPortTolkit. Другой на прием с пом. проги из проекта MFCtest. <br>
ComPortTolkit передает порядка 850 байт на MFCtest обратно получает ответ 128 байт. <br>
Если где чего не так не судите строго.]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700081</guid>
        <pubDate>Thu, 29 Dec 2016 14:54:41 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700081</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3700079'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-29T14:30:29+00:00">29.12.16, 14:30</time></span><div class='quote '>Нет. Дальше графика действительно сложная. Сетка это пока начало.</div></div><br>
я бы GLUT прикрутил для реально сложной графики  :)]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700079</guid>
        <pubDate>Thu, 29 Dec 2016 14:30:29 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700079</link>
        <description><![CDATA[Acvarif: Нет. Дальше графика действительно сложная. Сетка это пока начало.]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700075</guid>
        <pubDate>Thu, 29 Dec 2016 13:22:13 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700075</link>
        <description><![CDATA[MBo: И ради этого ты с Билдера ушёл?<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>приклепать сложную графику</div></div>]]></description>
        <author>MBo</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700074</guid>
        <pubDate>Thu, 29 Dec 2016 13:16:57 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700074</link>
        <description><![CDATA[Acvarif: Спасибо за помощь. <br>Билдеровскую прогу удалось повторить на MFC. Все (прием-передача) крутится в одном потоке. Немного причешу и выложу в архиве. Может кому будет полезна. <br>Далее задачка разобрать по косточкам буфер приема и отобразить на цветной панели цветные прямоугольники. Панель разбита сеткой прямоугольных ячеек. 120 по горизонтали, 500 по вертикали 120Х500. Принимаемые данные грубо говоря это координаты ячеек в сетке которые нужно засвечивать цветом отличным от цвета сетки и цвета пустой ячейки. Пока это задача минимум. Как правильно поступиь? Прикручивать к проекту OpenGl (GLUT и т.п.) или можно обойтись средствами MFC?]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700067</guid>
        <pubDate>Thu, 29 Dec 2016 12:11:51 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700067</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3700066'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-29T11:54:38+00:00">29.12.16, 11:54</time></span><div class='quote '>Былдер в свое время был идеальной средой для разработки визуальных приложений. Если в метку типа Label1 (Static Control)нужно поместить текст то без всяких заморочек <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Label1-&#62;Caption = &quot;текст&quot;;</div></ol></div></div></div></div></div></div><br>
MFC код длинее, но не сложнее  :D <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">SetDlgItemText(IDC_STATIC1,&quot;текст&quot;);</div></ol></div></div></div></div><br>
IDC_STATIC1 - это идентификатор ресурса в файле rc, SetDlgItemText - функция-член класса CWnd. Все просто :) <br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3700066'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-29T11:54:38+00:00">29.12.16, 11:54</time></span><div class='quote '>MFC неплохо придуман. На первый взгляд небольшое неудобство - мало компонентов. Хотя может в большинстве случаев того, что есть, вполне достаточно..</div></div><br>
их (компонентов) вообще нет, это контролы - классы для управления объектами виндос (окнами) :D]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700066</guid>
        <pubDate>Thu, 29 Dec 2016 11:54:38 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700066</link>
        <description><![CDATA[Acvarif: Может быть. Мне трудно судить. Былдер в свое время был идеальной средой для разработки визуальных приложений. Если в метку типа Label1 (Static Control)нужно поместить текст то без всяких заморочек <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Label1-&#62;Caption = &quot;текст&quot;;</div></ol></div></div></div></div> Потом они продались Delphi и все пошло враздрай. До сих пор пользуюсь Builder 6. Это новое Embarcadero - страшно к нему подступиться, такого там наворочали. MFC неплохо придуман. На первый взгляд небольшое неудобство - мало компонентов. Хотя может в большинстве случаев того, что есть, вполне достаточно..]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700056</guid>
        <pubDate>Thu, 29 Dec 2016 09:00:51 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700056</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3700033'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-28T20:29:35+00:00">28.12.16, 20:29</time></span><div class='quote '>А Статика вообще проще-простого</div></div><br>
Если в MFC &quot;этого&quot; нет, ты можешь сам &quot;это&quot; сделать.<br>
Прямо сейчас, и даже ещё лучше..<br>
Наследуемся от класса... эээ.. который &quot;статик&quot;.<br>
Который, наверное, CStatic.<br>
Перегружаем метод SetWindowText.<br>
Или пишем метод SetWindowTextEx.<br>
И пишем что-то вроде:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">// ---------------------------------------------------------------------------------</div><div class="code_line">void WINAPI CStaticEx::SetWindowTextEx(const TCHAR* pFmt,...)</div><div class="code_line">{</div><div class="code_line">&nbsp;if(!pFmt) return;</div><div class="code_line">&nbsp;va_list ap; &nbsp; &nbsp; &nbsp; &nbsp;//Указатель на список параметров</div><div class="code_line">&nbsp;va_start(ap,pFmt); //Настроились на список параметров</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;TCHAR sss[32768]; </div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;size_t sizeBuff &nbsp;= ARRAYSIZE(sss);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;_vsntprintf_s(sss,sizeBuff,_TRUNCATE,pFmt,ap);</div><div class="code_line">&nbsp;SetWindowText(sss);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;va_end(ap); //Завершаем работу с макрокомандами </div><div class="code_line">}</div><div class="code_line">// ---------------------------------------------------------------------------------</div></ol></div></div></div></div><br>
<br>
В результате ты сможешь писать:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">CStaticEx xxmm;</div><div class="code_line">//...</div><div class="code_line">&nbsp;xxmm.SetWindowTextEx(_T(&quot;Дистанция: %d м&quot;), Distm);</div><div class="code_line">//...</div></ol></div></div></div></div><br>
<br>
В результате число таких конструкций:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">char Buffer[20]; sprintf(Buffer,&quot;Дистанция: %d м&quot;, Distm);</div><div class="code_line">//Buffer - обычно &nbsp;- достаточно для небольшого текста</div></ol></div></div></div></div><br>
резко уменьшится.]]></description>
        <author>ЫукпШ</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700033</guid>
        <pubDate>Wed, 28 Dec 2016 20:29:35 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700033</link>
        <description><![CDATA[Acvarif: В Билдере все автоматизировано.<br>
Например клик по ComboBox5 (который уже выставлен на форму) - появляется функция в которой производятся операции с переменными, локальными или глобальными <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void __fastcall TForm1::ComboBox5Click(TObject *Sender)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;if(ComboBox5-&#62;Text == &quot;15-25м&quot;)</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp;bufwr[1] &amp;= ~(1 &#60;&#60; 5);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp;else if(ComboBox5-&#62;Text == &quot;25-40м&quot;)</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp;bufwr[1] |= (1 &#60;&#60; 5);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">}</div></ol></div></div></div></div><br>
В качестве ID просто названия типа ComboBox5.<br>
По поводу Контрола. Что имеется ввиду? Если например CSpinEdit который повторяет Edit Control+Spin Control MFC то тоже все просто. Например изменение данных в окне на 1<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void __fastcall TForm1::CSpinEdit2Change(TObject *Sender)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;PrCanal = CSpinEdit2-&#62;Value;</div><div class="code_line">&nbsp;</div><div class="code_line">}</div></ol></div></div></div></div><br>
Value - готовая переменная, одинаковая почти для всех Контролов, в которой данные меняются при клике вверх или вниз. <br>
PrCanal - пользовательская переменная<br>
А Статика вообще проще-простого<br>
Например вывод данных в Статик под названием Label16 (это то же что и ID)из пременной Distm<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">sprintf(Buffer,&quot;Дистанция: %d м&quot;, Distm);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Form1-&#62;Label16-&#62;Caption = Buffer;</div></ol></div></div></div></div><br>
Buffer - обычно char Buffer[20] - достаточно для небольшого текста]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700031</guid>
        <pubDate>Wed, 28 Dec 2016 20:12:52 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3700031</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699975'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-28T12:55:14+00:00">28.12.16, 12:55</time></span><div class='quote '>Переменную <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">m_spin2Value</div></ol></div></div></div></div> создавал через Add Variable для Spin<span class="b-attach" data-size="85197" data-hits="853" data-attach-id="51060" data-attach-post-id="3699975">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3699975&amp;attach_id=51060' title='Скачать файл' target='_blank'>am3.jpg</a> (, : 853)
		</span></div></div><br>
&quot;Частота бод&quot; - звучит, как фраза из далёкого прошлого.<br>
Сечас пишут &quot;bps&quot; - bits per second - бит в секунду.<br>
---<br>
я вот чего хотел узнать - в среде Борланд Билдера надо-ли<br>
каким-то образом указывать ID контрола ?<br>
(Того-же статика, как у тебя в этом проекте, например)<br>
Или там всё автомотизировано ?]]></description>
        <author>ЫукпШ</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699976</guid>
        <pubDate>Wed, 28 Dec 2016 12:59:35 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699976</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699975'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-28T12:55:14+00:00">28.12.16, 12:55</time></span><div class='quote '>Переменную <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">m_spin2Value</div></ol></div></div></div></div> создавал через Add Variable для Spin</div></div><br>
правильно, но в данном случае она не нужна :) <br>
это в C++Builder их лепят без надобности, тут все по взрослому :D]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699975</guid>
        <pubDate>Wed, 28 Dec 2016 12:55:14 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699975</link>
        <description><![CDATA[Acvarif: Спасибо. Разобрался. Добавил через Properties -&gt; Messages<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void CMFCtestDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;// TODO: Add your message handler code here and/or call default</div><div class="code_line">&nbsp;&nbsp;if (pScrollBar-&#62;GetDlgCtrlID() == IDC_SPIN2)</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;//int spinValue = reinterpret_cast&#60;CSpinButtonCtrl*&#62;(pScrollBar)-&#62;GetPos32();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;bufwr[124] = (nPos - 1) | ((Dist &#62;&#62; 1) &amp; 0x80);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;CDialog::OnVScroll(nSBCode, nPos, pScrollBar);</div><div class="code_line">}</div></ol></div></div></div></div> <br>
Работает.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">static_cast&#60;CSpinButtonCtrl*&#62;(GetDlgItem(IDC_SPIN2))-&#62;SetRange(0,100);</div></ol></div></div></div></div><br>
Это тоже работает. Очевидно была механ. ошибка. В CSpinButtonCtrl вместо l(L) стояла 1(1)<br>
Переменную <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">m_spin2Value</div></ol></div></div></div></div> создавал через Add Variable для Spin<span class="b-attach" data-size="85197" data-hits="853" data-attach-id="51060" data-attach-post-id="3699975">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3699975&amp;attach_id=51060' title='Скачать файл' target='_blank'>am3.jpg</a> (, : 853)
		</span>]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699916</guid>
        <pubDate>Wed, 28 Dec 2016 11:13:53 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699916</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699846'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-28T08:50:33+00:00">28.12.16, 08:50</time></span><div class='quote '>У Edit Control есть событие типа <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void CMFCtestDlg::OnEnVscrollEdit5()</div></ol></div></div></div></div></div></div><br>
Edit Control в данном случае можно вообще игнорировать все делает Spin control.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699846'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-28T08:50:33+00:00">28.12.16, 08:50</time></span><div class='quote '><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Error &nbsp; 6 &nbsp; error C2509: &#39;OnVScroll&#39; : member function not declared in &#39;CMFCtestDlg&#39;</div></ol></div></div></div></div><br>
Что представляет из себя функция void ::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)?</div></div><br>
это обработчик сообщения WM_VSCROLL.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699846'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-28T08:50:33+00:00">28.12.16, 08:50</time></span><div class='quote '>Я ее просто прописал в файл MFCtestDld.cpp.</div></div><br>
можно вручную, но тогда надо сделать по шагам следующее:<br>
1) объявить в классе диалога функцию-обработчик void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);<br>
2) определить ее;<br>
3) ну и обязательно разместить след код в таблице сообщений:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">BEGIN_MESSAGE_MAP(CMFCtestDlg, CDialog)</div><div class="code_line">...</div><div class="code_line">&nbsp;&nbsp; &nbsp;ON_WM_VSCROLL()</div><div class="code_line">...</div><div class="code_line">END_MESSAGE_MAP()</div></ol></div></div></div></div><br>
но проще воспользоваться соотвествующим мастером ClassView, который добавит весь этот код сам. Для этого открываешь окно ClassView, выбираешь класс CMFCtestDlg, далее в окне Properties -&gt; Messages и там находишь сообщение WM_VSCROLL  :D<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699846'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-28T08:50:33+00:00">28.12.16, 08:50</time></span><div class='quote '> В функции BOOL CMFCtestDlg::OnInitDialog() добавил строку <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">static_cast&#60;CSpinButtonCtrl*&#62;(GetDlgItem(IDC_SPIN2))-&#62;SetRange(0,100);</div></ol></div></div></div></div> (работаю с IDC_SPIN2)<br>
Появилась ошибка <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Error &nbsp; 5 &nbsp; error C2061: syntax error : identifier &#39;CSpinButtonCtr1&#39;</div></ol></div></div></div></div></div></div><br>
хз должно работать. CSpinButtonCtrl это обертка для виндового spin контрола.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699846'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-28T08:50:33+00:00">28.12.16, 08:50</time></span><div class='quote '>Хотя потом создал переменную типа m_spin2Value и сделал запись<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">m_spin2Value.SetRange(1,120);</div></ol></div></div></div></div> что установило диапазон изменения для Spin</div></div><br>
а как создал? код приведи.]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699846</guid>
        <pubDate>Wed, 28 Dec 2016 08:50:33 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699846</link>
        <description><![CDATA[Acvarif: Спасибо. С установкой Spin+Edit Control разобрался. Все нормально ставится. С обработкой клика не получается. <br>
В функции BOOL CMFCtestDlg::OnInitDialog() добавил строку <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">static_cast&#60;CSpinButtonCtrl*&#62;(GetDlgItem(IDC_SPIN2))-&#62;SetRange(0,100);</div></ol></div></div></div></div> (работаю с IDC_SPIN2)<br>
Появилась ошибка <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Error &nbsp; 5 &nbsp; error C2061: syntax error : identifier &#39;CSpinButtonCtr1&#39;</div></ol></div></div></div></div>	Хотя потом создал переменную типа m_spin2Value и сделал запись<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">m_spin2Value.SetRange(1,120);</div></ol></div></div></div></div> что установило диапазон изменения для Spin<br>
Подключение в основной файл MFCtestDld.cpp функции <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void CMFCtestDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)</div><div class="code_line">{ &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (pScrollBar-&#62;GetDlgCtrlID() == IDC_SPIN2)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;bufwr[124] = (nPos - 1) | ((Dist &#62;&#62; 1) &amp; 0x80);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;CDialog::OnVScroll(nSBCode, nPos, pScrollBar);</div><div class="code_line">}</div></ol></div></div></div></div><br>
вызывает ошибку <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Error &nbsp; 6 &nbsp; error C2509: &#39;OnVScroll&#39; : member function not declared in &#39;CMFCtestDlg&#39;</div></ol></div></div></div></div>	<br>
Тут не совсем врубился. У Edit Control есть событие типа <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void CMFCtestDlg::OnEnVscrollEdit5()</div></ol></div></div></div></div><br>
Что представляет из себя функция void CMFCtestDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)?<br>
Я ее просто прописал в файл MFCtestDld.cpp.]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699704</guid>
        <pubDate>Tue, 27 Dec 2016 15:01:45 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699704</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699690'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-27T14:23:25+00:00">27.12.16, 14:23</time></span><div class='quote '>Как в MFC можно создать подобный компонент. Имеется в наличии Spin Control но без окна Edit. Очевидно придется компоновать Spin Control + Edit Control?</div></div><br>
:yes: надо у спин конторла установить свойства Auto Buddy = True и Set Buddy Integer = True, клики на кнопках обрабатываются через сообщение WM_VSCROLL, которое отлавливается окном диалога. Начальную инициализацию &quot;спина&quot; можно сделать в OnInitDialog.<br>
Edit Control надо ставить рядом слева от Spin контрола согласно Tab-порядку.<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">BOOL CMyDialog::OnInitDialog()</div><div class="code_line">{ &nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp;CDialog::OnInitDialog();</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;static_cast&#60;CSpinButtonCtrl*&#62;(GetDlgItem(IDC_SPIN1))-&#62;SetRange(0,100); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;return TRUE; &nbsp;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">void CMyDialog::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)</div><div class="code_line">{ &nbsp; &nbsp; &nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp;if (pScrollBar-&#62;GetDlgCtrlID() == IDC_SPIN1)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;//int spinValue = reinterpret_cast&#60;CSpinButtonCtrl*&#62;(pScrollBar)-&#62;GetPos32();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;bufwr[124] = (nPos - 1) | ((Dist &#62;&#62; 1) &amp; 0x80);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;CDialog::OnVScroll(nSBCode, nPos, pScrollBar);</div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699690</guid>
        <pubDate>Tue, 27 Dec 2016 14:23:25 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699690</link>
        <description><![CDATA[Acvarif: Спасибо. Static работает. В билдере имеется компонент тпа CSpinEdit<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;void __fastcall TForm1::CSpinEdit6Change(TObject *Sender)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;bufwr[124] = (CSpinEdit6-&#62;Value - 1) | ((Dist &#62;&#62; 1) &amp; 0x80);</div><div class="code_line">&nbsp;</div><div class="code_line">}</div></ol></div></div></div></div><br>
Работает он по событию клика на верхнюю или нижнюю стрелку прокрутки<span class="b-attach" data-size="4977" data-hits="908" data-attach-id="51044" data-attach-post-id="3699690">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3699690&amp;attach_id=51044' title='Скачать файл' target='_blank'>am2.jpg</a> (, : 908)
		</span><br>
Значение в нем меняется на 1 вверх или вниз в пределах заранее установленных границ в свойствах компонента (например min 1 max 120).<br>
Как в MFC можно создать подобный компонент. Имеется в наличии Spin Control но без окна Edit. Очевидно придется компоновать Spin Control + Edit Control?]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699655</guid>
        <pubDate>Tue, 27 Dec 2016 11:01:07 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699655</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699624'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-27T09:06:21+00:00">27.12.16, 09:06</time></span><div class='quote '>Спасибо. Заработал прием и передача в одном потоке. Вывод данных на Edit Control в норме.<br>
Имеются еще некоторые нюансы. Например Static Text почему-то не имеет своего ID. Любой Static Text (1,2 или 9 )имеет ID IDC_STATIC вместо IDC_STATIC1, IDC_STATIC2, ..IDC_STATIC9<br>
<br>
Это ошибка самой среды Visual Studio2008+MFC?</div></div><br>
по умолчанию статик контролы имеют одинаковый ID: IDC_STATIC, поэтому чтобы обратиться к ним надо просто указать ID отличный от IDC_STATIC, например IDC_STATIC1  :)]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699624</guid>
        <pubDate>Tue, 27 Dec 2016 09:06:21 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699624</link>
        <description><![CDATA[Acvarif: Спасибо. Заработал прием и передача в одном потоке. Вывод данных на Edit Control в норме.<br>
Имеются еще некоторые нюансы. Например Static Text почему-то не имеет своего ID. Любой Static Text (1,2 или 9 )имеет ID IDC_STATIC вместо IDC_STATIC1, IDC_STATIC2, ..IDC_STATIC9<span class="b-attach" data-size="27665" data-hits="932" data-attach-id="51034" data-attach-post-id="3699624">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3699624&amp;attach_id=51034' title='Скачать файл' target='_blank'>am1.jpg</a> (, : 932)
		</span><br>
Попытка обратиться к нему по <br>
    <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">CStatic* pText = (CStatic*)GetDlgItem(IDC_STATIC9);</div><div class="code_line">&nbsp;&nbsp; &nbsp;pText-&#62;SetWindowText(_T(&quot;Hello&quot;));</div></ol></div></div></div></div>ID типа IDC_STATIC9 приводит к ошибке<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Error &nbsp; 4 &nbsp; error C2065: &#39;IDC_STATIC9&#39; : undeclared identifier</div></ol></div></div></div></div>	Это ошибка самой среды Visual Studio2008+MFC?]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699397</guid>
        <pubDate>Mon, 26 Dec 2016 09:46:51 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699397</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699390'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-26T09:13:17+00:00">26.12.16, 09:13</time></span><div class='quote '>Возник один неприятный момент. При переносе проекта из одного компа на другой (с домашнего на рабочий) при компиляции возникает ошибка:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Error &nbsp; 1 &nbsp; fatal error C1853: &#39;Debug\MFCtest.pch&#39; precompiled header file is from a previous version of the compiler, or the precompiled header is C++ and you are using it from C (or vice versa) d:\mydesignsxp\visualstprj\mfctest\mfctest\mfctestdlg.cpp &nbsp; 1 &nbsp; MFCtest</div></ol></div></div></div></div><br>
В чем фишка? На компах разные версии компиляторов? (не уверен, что ставил Студию из одного и того-же источника) Как с этим бороться?<br>
Проект пока еще не такой большой. Можно начать заново. Но потом наверняка ситуация повторится если на выходные буду переносить проект обранто с рабочего компа на домашний.</div></div><br>
просто удали этот файл и снова откомпилируй  :)<br>
вообще когда переносишь проект куда-нибудь, то делай перед этим очистку командой Build -&gt; Clean, это действие удаляет почти все вспомогательные файлы, в том числе файл предкомпилированого заголовка pch, а также объектные и exe файлы, которые  слову сказать много весят, особенно pch.]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699390</guid>
        <pubDate>Mon, 26 Dec 2016 09:13:17 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699390</link>
        <description><![CDATA[Acvarif: Возник один неприятный момент. При переносе проекта из одного компа на другой (с домашнего на рабочий) при компиляции возникает ошибка:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Error &nbsp; 1 &nbsp; fatal error C1853: &#39;Debug\MFCtest.pch&#39; precompiled header file is from a previous version of the compiler, or the precompiled header is C++ and you are using it from C (or vice versa) d:\mydesignsxp\visualstprj\mfctest\mfctest\mfctestdlg.cpp &nbsp; 1 &nbsp; MFCtest</div></ol></div></div></div></div><br>
В чем фишка? На компах разные версии компиляторов? (не уверен, что ставил Студию из одного и того-же источника) Как с этим бороться?<br>
Проект пока еще не такой большой. Можно начать заново. Но потом наверняка ситуация повторится если на выходные буду переносить проект обранто с рабочего компа на домашний.]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699346</guid>
        <pubDate>Mon, 26 Dec 2016 04:35:18 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699346</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699336'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-25T20:19:44+00:00">25.12.16, 20:19</time></span><div class='quote '>В билдере имеется функция закрытия формы типа <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &amp;Action)</div></ol></div></div></div></div><br>
В ней обычно останавливаются потоки, закрывается порт и т. п.<br>
Как можно сделать то-же в MFC?</div></div><br>
обработать сообщение WM_CLOSE :) <br>
пс. на самом деле MFC является всего лишь классовой надстройкой над Win32 API, поэтому все то что делалось в чистом Win32 API применимо и к MFC.]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699336</guid>
        <pubDate>Sun, 25 Dec 2016 20:19:44 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699336</link>
        <description><![CDATA[Acvarif: Спасибо. Работает.  <br>
В билдере имеется функция закрытия формы типа <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &amp;Action)</div></ol></div></div></div></div><br>
В ней обычно останавливаются потоки, закрывается порт и т. п.<br>
Как можно сделать то-же в MFC?]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699320</guid>
        <pubDate>Sun, 25 Dec 2016 18:08:36 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699320</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699305'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-25T13:41:11+00:00">25.12.16, 13:41</time></span><div class='quote '>В билдере элемент выбора типа ComboBox работает непосредственно с выбранным в окне текстом.<br>
В MFC код выбора работает с опозданием на строку.<br>
<br>
Как сделать так чтобы срабатывало то, что выбрано в настоящий момент? </div></div><br>
дело в том что событие OnCbnSelchangeCombo3 срабатывает до замены текста в редакторе комбо, поэтому вызов GetDlgItemText считывает предыдущее значение. Выход считывать текущее значение на основе выбранного пункта из списка значений комбо с помощью GetLBText.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void CMFCtestDlg::OnCbnSelchangeCombo3()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;CString strCombo3;</div><div class="code_line">&nbsp;&nbsp; &nbsp;CComboBox* pCombo = (CComboBox*)GetDlgItem(IDC_COMBO3); </div><div class="code_line">&nbsp;&nbsp; &nbsp;pCombo-&#62;GetLBText(pCombo-&#62;GetCurSel(),strCombo3);</div><div class="code_line">&nbsp;</div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699305</guid>
        <pubDate>Sun, 25 Dec 2016 13:41:11 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699305</link>
        <description><![CDATA[Acvarif: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Или принимай по-одному..</div></div> Так и делаю. Вроде работает.<br>
 <br>
 <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; CStatic* pText = (CStatic*)GetDlgItem(IDC_STATIC1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;pText-&#62;SetWindowText(_T(&quot;Hello&quot;));</div></ol></div></div></div></div></div></div><br>
Понятно. Спасибо. По ходу разобрался со сменой фонта в 	IDC_EDIT1 <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">// фонт для IDC_EDIT1</div><div class="code_line">&nbsp;&nbsp; &nbsp;CFont *font = new CFont;</div><div class="code_line">&nbsp;&nbsp; &nbsp;CEdit* pEditFont = (CEdit*)pWnd-&#62;GetDlgItem(IDC_EDIT1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;font-&#62;CreateFont (</div><div class="code_line">&nbsp;&nbsp; &nbsp;20, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// nHeight</div><div class="code_line">&nbsp;&nbsp; &nbsp;0, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // nWidth</div><div class="code_line">&nbsp;&nbsp; &nbsp;0, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // nEscapement</div><div class="code_line">&nbsp;&nbsp; &nbsp;0, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // nOrientation</div><div class="code_line">&nbsp;&nbsp; &nbsp;FW_NORMAL, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // nWeight</div><div class="code_line">&nbsp;&nbsp; &nbsp;FALSE, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // bItalic</div><div class="code_line">&nbsp;&nbsp; &nbsp;FALSE, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // bUnderline</div><div class="code_line">&nbsp;&nbsp; &nbsp;0, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // cStrikeOut</div><div class="code_line">&nbsp;&nbsp; &nbsp;ANSI_CHARSET, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// nCharSet</div><div class="code_line">&nbsp;&nbsp; &nbsp;OUT_DEFAULT_PRECIS, &nbsp; &nbsp; &nbsp; &nbsp;// nOutPrecision</div><div class="code_line">&nbsp;&nbsp; &nbsp;CLIP_DEFAULT_PRECIS, &nbsp; &nbsp; &nbsp; // nClipPrecision</div><div class="code_line">&nbsp;&nbsp; &nbsp;DEFAULT_QUALITY, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // nQuality</div><div class="code_line">&nbsp;&nbsp; &nbsp;DEFAULT_PITCH | FF_SWISS, &nbsp;// nPitchAndFamily</div><div class="code_line">&nbsp;&nbsp; &nbsp;L&quot;Arial&quot;); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // lpszFacename</div><div class="code_line">&nbsp;&nbsp; &nbsp;pEditFont-&#62;SetFont(font);</div></ol></div></div></div></div>  <br>
Похоже удастся весь процесс приема передачи сделать в одном потоке.<br>
<br>
<br>
В билдере элемент выбора типа ComboBox работает непосредственно с выбранным в окне текстом.<br>
В MFC код выбора работает с опозданием на строку.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void CMFCtestDlg::OnCbnSelchangeCombo3()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;CString strCombo3;</div><div class="code_line">&nbsp;&nbsp; &nbsp;GetDlgItemText(IDC_COMBO3, strCombo3);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;if(strCombo3 == &quot;откл.&quot;)</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp;bufwr[1] &amp;= ~(1 &#60;&#60; 0);</div><div class="code_line">&nbsp;&nbsp; &nbsp;bufwr[1] &amp;= ~(1 &#60;&#60; 1);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp;else if(strCombo3 == &quot;мин.&quot;)</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp;bufwr[1] |= (1 &#60;&#60; 0);</div><div class="code_line">&nbsp;&nbsp; &nbsp;bufwr[1] &amp;= ~(1 &#60;&#60; 1);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp;else if(strCombo3 == &quot;макс.&quot;)</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp;bufwr[1] &amp;= ~(1 &#60;&#60; 0);</div><div class="code_line">&nbsp;&nbsp; &nbsp;bufwr[1] |= (1 &#60;&#60; 1);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">}</div></ol></div></div></div></div><br>
При выборе в bufwr[1] записываются данные соответствующие предыдущему состоянию окна IDC_COMBO3<br>
Как сделать так чтобы срабатывало то, что выбрано в настоящий момент?]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699295</guid>
        <pubDate>Sun, 25 Dec 2016 11:43:01 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699295</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699272'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-25T08:21:12+00:00">25.12.16, 08:21</time></span><div class='quote '>Может я сразу не написал почему используется асинхронный прием - прием по событию прихода каждого байта.<br>
Все дело в том, что пакеты данных переменной длины (от 800 до 4000 байт). Каждый новый пакет - другая длина.</div></div><br>
1. Или выводи по-байтно.<br>
2. Или принимай по-одному, но накапливай в выводной буфер число байт, равное длине строки <br>
твоего &quot;виртуального&quot; дисплея, и выводи.<br>
3. Или читай из буфера порта операцией чтения максимальный размер (допустим 4000 байт).<br>
С указанным тайм-аутом по приходу байт.<br>
Почитай подробнее про тайм-ауты и выбери подходящий.<br>
Будешь принимать или по максимальному количеству или по тайм-ауту<br>
некоторое количество байт. Получишь - выводи.<br>
---<br>
Все 3 способа будут работать - 100%.<br>
Единственное требование - чтобы твой компьютер мог в принципе справится<br>
с таким потоком байт.]]></description>
        <author>ЫукпШ</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699288</guid>
        <pubDate>Sun, 25 Dec 2016 10:15:55 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699288</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699272'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-25T08:21:12+00:00">25.12.16, 08:21</time></span><div class='quote '>В Builder имеется возможность выводить строку в Label, Panel типа <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Form1-&#62;Panel3-&#62;Caption = &quot;Всего принято байт: &quot; + IntToStr(counterRX);</div></ol></div></div></div></div><br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">sprintf(Buffer,&quot;Дистанция: %d м&quot;, Distm);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Form1-&#62;Label16-&#62;Caption = Buffer;</div></ol></div></div></div></div><br>
В MFC имеется Text Control. Можно-ли в Text Control выводить текст примерно как Panel3-&gt;Caption =.. или Label16-&gt;Caption = ..?</div></div><br>
Естестно :D <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">CStatic* pText = (CStatic*)GetDlgItem(IDC_STATIC1);</div><div class="code_line">pText-&#62;SetWindowText(_T(&quot;Hello&quot;));</div></ol></div></div></div></div><br>
также имеется возможность определить объект соотвествующего класса и обращаться непросредствено через него:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">class CDialog1 : public CDialog</div><div class="code_line">{</div><div class="code_line">public:</div><div class="code_line">&nbsp;&nbsp; &nbsp;CStatic label1;</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">void CDialog1::DoDataExchange(CDataExchange* pDX)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;CDialog::DoDataExchange(pDX);</div><div class="code_line">&nbsp;&nbsp; &nbsp;DDX_Control(pDX, IDC_STATIC1, label1);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">BOOL CDialog1::OnInitDialog()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;CDialog::OnInitDialog();</div><div class="code_line">&nbsp;&nbsp; &nbsp;label1.SetWindowText(_T(&quot;Hello&quot;));</div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699272</guid>
        <pubDate>Sun, 25 Dec 2016 08:21:12 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699272</link>
        <description><![CDATA[Acvarif: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Вообще непонятно, что ты хочешь.<br>
Если ты получаешь не строки, а байт - так и выводи байты.<br>
Поставь непрерывный счётчик байт, равный размеру строки.<br>
По достижению максимального значения - сбрасывай счётчик и добавляй<br>
два байта в Эдит &#39;&#092;r&#39;,&#39;&#092;n&#39;.</div></div><br>
Может я сразу не написал почему используется асинхронный прием - прием по событию прихода каждого байта.<br>
Все дело в том, что пакеты данных переменной длины (от 800 до 4000 байт). Каждый новый пакет - другая длина. Поэтому подсчитать что-то конкретное невозможно. Вот и выкручиваюсь... Кроме того, ответная передача пакета управления (128 байт информации) должна быть по времени (разрыв не более 10 мс)жестко привязана к концу приема. Конец к счастью можно определить по конкретным конечным символам в пакете прима. <br>
Пока в MFC прием работает не хуже чем в Builder.<br>
В Builder имеется возможность выводить строку в Label, Panel типа <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Form1-&#62;Panel3-&#62;Caption = &quot;Всего принято байт: &quot; + IntToStr(counterRX);</div></ol></div></div></div></div><br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">sprintf(Buffer,&quot;Дистанция: %d м&quot;, Distm);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Form1-&#62;Label16-&#62;Caption = Buffer;</div></ol></div></div></div></div><br>
В MFC имеется Text Control. Можно-ли в Text Control выводить текст примерно как Panel3-&gt;Caption =.. или Label16-&gt;Caption = ..?]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699266</guid>
        <pubDate>Sun, 25 Dec 2016 04:50:12 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699266</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699236'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-24T17:48:03+00:00">24.12.16, 17:48</time></span><div class='quote '>Все же остался один непонятный нюанс - Похоже каждая новая строка записывается на место старой. Все выводится в одну едиственную строку. Как с этим бороться?</div></div><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699244'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-24T18:39:08+00:00">24.12.16, 18:39</time></span><div class='quote '>Что в коде нужно добавить, отнять, изменить, чтобы просто каждый новый его вызов печатал строку с новой строки?</div></div><br>
Вместо CEdit::SetWindowText:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">int len = pEdit-&#62;GetWindowTextLength();</div><div class="code_line">pEdit-&#62;SetSel(len, len); &nbsp; &nbsp;</div><div class="code_line">pEdit-&#62;ReplaceSel(_T(&quot;\r\nНовая строка&quot;));</div></ol></div></div></div></div><br>
:D]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699262</guid>
        <pubDate>Sun, 25 Dec 2016 00:26:30 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699262</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699259'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-24T23:03:51+00:00">24.12.16, 23:03</time></span><div class='quote '>Но все оказалось круто закручено. Итак понятно, что каждое выполнение кода<br>
...<br>
приводит к новому выводу строки в Edit Control</div></div><br>
Вообще непонятно, что ты хочешь.<br>
Если ты получаешь не строки, а байт - так и выводи байты.<br>
Поставь непрерывный счётчик байт, равный размеру строки.<br>
По достижению максимального значения - сбрасывай счётчик и добавляй <br>
два байта в Эдит &#39;&#092;r&#39;,&#39;&#092;n&#39;.<br>
Дополнительные операции со строками только время тратят.]]></description>
        <author>ЫукпШ</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699259</guid>
        <pubDate>Sat, 24 Dec 2016 23:03:51 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699259</link>
        <description><![CDATA[Acvarif: Спасибо. Мысль неплохая. <br>
Но все оказалось круто закручено. Итак понятно, что каждое выполнение кода<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">CString stroka, temp_str;</div><div class="code_line">// Перенос буфера в строку.</div><div class="code_line">&nbsp;&nbsp; &nbsp;for (DWORD i = 0; i &#60; btr; i++)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;temp_str.Format(_T(&quot; %02X&quot;), bufrd[i]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;stroka = stroka + temp_str + &#39; &#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;CWnd* pWnd = CWnd::FromHandle((HWND)lpParam);</div><div class="code_line">&nbsp;&nbsp; &nbsp;CEdit* pEdit = (CEdit*)pWnd-&#62;GetDlgItem(IDC_EDIT1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;pEdit-&#62;SetWindowText(stroka);</div></ol></div></div></div></div><br>
приводит к новому выводу строки в Edit Control<br>
Это значит, что если непрерывный пакет данных в буфере приемника COM будет появляться с некоторыми временными разрывами то это уже будет не непрерывный пакет данных и функция ReadPrinting(btr, lpParam); вывода данных в Edit Control (так какраз и выполняется вышеприведенный код) будет вызываться многократно. Все заложено в функции потока чтения<br>
//---------------------------------------------------------------------------<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">// Поток чтения</div><div class="code_line">&nbsp;</div><div class="code_line">DWORD WINAPI ReadThread( LPVOID lpParam )</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;// структура текущего состояния порта,</div><div class="code_line">&nbsp;&nbsp;// используется для определения количества принятых в порт байт</div><div class="code_line">&nbsp;&nbsp;COMSTAT comstat;</div><div class="code_line">&nbsp;&nbsp;// переменная temp используется в качестве заглушки</div><div class="code_line">&nbsp;&nbsp;DWORD btr, temp, mask, signal;</div><div class="code_line">&nbsp;&nbsp;// создать сигнальный объект-событие для асинхронных операций</div><div class="code_line">&nbsp;&nbsp;overlapped.hEvent = CreateEvent(NULL, true, true, NULL);</div><div class="code_line">&nbsp;&nbsp;// установить маску на срабатывание по событию приёма байта в порт</div><div class="code_line">&nbsp;&nbsp;SetCommMask(COMport, EV_RXCHAR);</div><div class="code_line">&nbsp;&nbsp;// пока поток не будет прерван, выполняем цикл</div><div class="code_line">&nbsp;&nbsp;while(1)</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp;//ожидать события приёма байта (это и есть перекрываемая операция)</div><div class="code_line">&nbsp;&nbsp; &nbsp;WaitCommEvent(COMport, &amp;mask, &amp;overlapped);</div><div class="code_line">&nbsp;&nbsp; &nbsp;//приостановить поток до прихода байта</div><div class="code_line">&nbsp;&nbsp; &nbsp;signal = WaitForSingleObject(overlapped.hEvent, INFINITE);</div><div class="code_line">&nbsp;&nbsp; &nbsp;//если событие прихода байта произошло</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(signal == WAIT_OBJECT_0)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;//проверяем, успешно ли завершилась перекрываемая операция WaitCommEvent</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if(GetOverlappedResult(COMport, &amp;overlapped, &amp;temp, true))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;//если произошло именно событие прихода байта</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if((mask &amp; EV_RXCHAR)!=0)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp;::Sleep(100);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// нужно заполнить структуру COMSTAT</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ClearCommError(COMport, &amp;temp, &amp;comstat);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// и получить из неё количество принятых байтов</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;btr = comstat.cbInQue;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// если действительно есть байты для чтения</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(btr)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// прочитать байты из порта в буфер программы</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ReadFile(COMport, bufrd, btr, &amp;temp, &amp;overlapped);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// вызываем функцию для вывода данных на экран</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ReadPrinting(btr, lpParam);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp;Sleep(1);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp;return 1;</div><div class="code_line">}</div></ol></div></div></div></div><br>
Собственно, чтобы избежать повторений нужно или задержать вход в if(btr) или CString stroka, temp_str; сделать глобальными, чтобы очищать их как-то, когда в Edit Control отобразится нужное количество принятых данных.<br>
Пока помогла не вдаваться в такие дебри небольшая задержка <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">if((mask &amp; EV_RXCHAR)!=0)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp;::Sleep(100);</div></ol></div></div></div></div> <br>
Теперь вход в <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">if(btr)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div></ol></div></div></div></div><br>
осуществляется один раз при непрерывном пакете данных на COM (порядка 800 байт с перидом в 1 сек) Функция ReadPrinting(btr, lpParam); выполняется один раз - окно Edit Control отображает корректно весь пакет принятых данных.<br>
Если у кого есть по этому поводу еще какие мысли, буду признателен.]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699253</guid>
        <pubDate>Sat, 24 Dec 2016 20:56:48 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699253</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699244'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-24T18:39:08+00:00">24.12.16, 18:39</time></span><div class='quote '>Эта ссылка у меня открыта. Но всеравно не врубаюсь.</div></div><br>
я не использую MFC.<br>
Но судя по этому описанию - как-то так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">// ...</div><div class="code_line">for (DWORD i = 0; i &#60; btr; i++)</div><div class="code_line">{</div><div class="code_line">&nbsp;temp_str.Format(_T(&quot; %02X&quot;), bufrd[i]);</div><div class="code_line">&nbsp;stroka = stroka + temp_str + &#39; &#39;;</div><div class="code_line">}</div><div class="code_line">stroka += &quot;\r\n&quot;;</div><div class="code_line">//...</div></ol></div></div></div></div>]]></description>
        <author>ЫукпШ</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699244</guid>
        <pubDate>Sat, 24 Dec 2016 18:39:08 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699244</link>
        <description><![CDATA[Acvarif: Эта ссылка у меня открыта. Но всеравно не врубаюсь. <br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Линии многополосном текста в элементе управления разделены последовательности символов &quot;&#092;r&#092;n&quot;. </div></div><br>
Это что означает? На практике получается, что каждый новый вызов кода <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp;// Перенос буфера в строку.</div><div class="code_line">&nbsp;&nbsp; &nbsp;for (DWORD i = 0; i &#60; btr; i++)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;temp_str.Format(_T(&quot; %02X&quot;), bufrd[i]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;stroka = stroka + temp_str + &#39; &#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;CWnd* pWnd = CWnd::FromHandle((HWND)lpParam);</div><div class="code_line">&nbsp;&nbsp; &nbsp;CEdit* pEdit = (CEdit*)pWnd-&#62;GetDlgItem(IDC_EDIT1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;pEdit-&#62;SetWindowText(stroka);</div></ol></div></div></div></div><br>
стирает предыдущую строку и печатает новую на ее место. <br>
Что в коде нужно добавить, отнять, изменить, чтобы просто каждый новый его вызов печатал строку с новой строки?]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699239</guid>
        <pubDate>Sat, 24 Dec 2016 17:54:44 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699239</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699236'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-24T17:48:03+00:00">24.12.16, 17:48</time></span><div class='quote '>Все же остался один непонятный нюанс - Похоже каждая новая строка записывается на место старой. Все выводится в одну едиственную строку. Как с этим бороться?</div></div><br>
Эти &quot;технологии&quot; я тебе уже показывал:<br>
www.ya.ru, ищем &quot;CEdit MFC&quot; и находим описание <br>
<a class='tag-url' href='https://msdn.microsoft.com/ru-ru/library/f7yhsd2b.aspx' target='_blank'>тут</a>.<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><br>
...<br>
CEdit наследует значительные возможности из CWnd. Для установки и извлечения текста из объекта CEdit, используйте функции-члены SetWindowText и GetWindowTextCWnd, устанавливающие или получающие все содержимое элемента управления &quot;Поле ввода&quot;, даже если многострочный элемент управления. Линии многополосном текста в элементе управления разделены последовательности символов &quot;&#092;r&#092;n&quot;. Кроме того, если элемент управления &quot;Поле ввода&quot; многополосн, получение и установка часть текста элемента управления путем вызова функции-члены GetLine, SetSel, GetSel и ReplaceSelCEdit.<br>
...<br>
</div></div>]]></description>
        <author>ЫукпШ</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699236</guid>
        <pubDate>Sat, 24 Dec 2016 17:48:03 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699236</link>
        <description><![CDATA[Acvarif: Да. Зарапортовался с форматированием. Спасибо.<br>
В билдере было так <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">stroka = stroka + IntToHex(bufrd[i], 2) + &#39; &#39;;</div></ol></div></div></div></div><br>
Все же остался один непонятный нюанс - Похоже каждая новая строка записывается на место старой. Все выводится в одну едиственную строку. Как с этим бороться?]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699231</guid>
        <pubDate>Sat, 24 Dec 2016 17:18:01 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699231</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699223'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-24T14:50:36+00:00">24.12.16, 14:50</time></span><div class='quote '>В MFC некоторые нюансы<br>
- не прописывает один 0 в HEX числе</div></div><br>
Это ни к MFC, ни к Билдеру отношения не имеет.<br>
Это форматный вывод в &quot;С&quot;.<br>
Попробуй так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">temp_str.Format(_T(&quot; %02X&quot;), bufrd[i]);</div></ol></div></div></div></div><br>
Или даже так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">TCHAR buf[128]; _sntprintf_s(buf,ARRAYSIZE(buf),_TRUNCATE,_T(&quot; %02X&quot;),bufrd[i]);</div></ol></div></div></div></div><br>
Почитай про printf/sprintf.<br>
<a class='tag-url' href='https://msdn.microsoft.com/en-us/library/f30dzcf6.aspx' target='_blank'>тут, например</a>]]></description>
        <author>ЫукпШ</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699223</guid>
        <pubDate>Sat, 24 Dec 2016 14:50:36 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699223</link>
        <description><![CDATA[Acvarif: Спасибо. Работает. Сделал так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp;for (int i = 0; i &#60; btr; i++)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;temp_str.Format(_T(&quot; %X&quot;), bufrd[i]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;stroka = stroka + temp_str + &#39; &#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;CWnd* pWnd = CWnd::FromHandle((HWND)lpParam);</div><div class="code_line">&nbsp;&nbsp; &nbsp;CEdit* pEdit = (CEdit*)pWnd-&#62;GetDlgItem(IDC_EDIT1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;pEdit-&#62;SetWindowText(stroka);</div></ol></div></div></div></div><br>
Выводит данные так<span class="b-attach" data-size="8203" data-hits="926" data-attach-id="50993" data-attach-post-id="3699223">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3699223&amp;attach_id=50993' title='Скачать файл' target='_blank'>amulet2.jpg</a> (, : 926)
		</span><br>
В билдере так<span class="b-attach" data-size="20694" data-hits="952" data-attach-id="50992" data-attach-post-id="3699223">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3699223&amp;attach_id=50992' title='Скачать файл' target='_blank'>amulet3.jpg</a> (, : 952)
		</span><br>
В MFC некоторые нюансы<br>
- не прописывает один 0 в HEX числе<br>
- очевидно из-за построчного обновления пропускаются первые несколько данных<br>
Как можно устранить эти нюансы?]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699170</guid>
        <pubDate>Fri, 23 Dec 2016 20:39:02 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699170</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699169'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-23T20:18:54+00:00">23.12.16, 20:18</time></span><div class='quote '>Как в MFC можно повторить это: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">stroka = stroka + IntToHex(bufrd[i], 2) + &#39; &#39;;</div></ol></div></div></div></div></div></div><br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">CString s;</div><div class="code_line">s.Format(&quot;%X&quot;, bufrd[i]);</div></ol></div></div></div></div>]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699169</guid>
        <pubDate>Fri, 23 Dec 2016 20:18:54 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699169</link>
        <description><![CDATA[Acvarif: Надеюсь на MFC удастся повторить билдеровсую прогу с потоками на API. Во всяком случае прием уже точно работает.<br>
Данные COM порта накапливаются в глобальном буфере bufrd<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">ReadFile(COMport, bufrd, btr, &amp;temp, &amp;overlapped);</div></ol></div></div></div></div><br>
Далее их нужно отобразить в окне Edit Contol в HEX виде. <br>
В билдере это просто преобразовывалось функцией + пробелы между байтами<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp;// Перенос буфера в строку.</div><div class="code_line">&nbsp;&nbsp;for(UINT32 i=0; i&#60;btr ; i++)</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp;stroka = stroka + IntToHex(bufrd[i], 2) + &#39; &#39;;</div><div class="code_line">&nbsp;&nbsp;}</div></ol></div></div></div></div> <br>
затем строка выводилась в окно Memo<br>
Сейчас выводится в окно Edit Control <br>
Как в MFC можно повторить это: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">stroka = stroka + IntToHex(bufrd[i], 2) + &#39; &#39;;</div></ol></div></div></div></div>]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699167</guid>
        <pubDate>Fri, 23 Dec 2016 20:02:20 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699167</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699164'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-23T19:39:10+00:00">23.12.16, 19:39</time></span><div class='quote '>Дааа. В MFC все достаточно жестко..</div></div><br>
а мне MFC по кайфу :D]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699164</guid>
        <pubDate>Fri, 23 Dec 2016 19:39:10 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699164</link>
        <description><![CDATA[Acvarif: Спасибо. Работает. Информация в окне Edit Contol отображается нормально, причем с обновлением. <br>
Хотя Micosoft пишет про четвертый параметр optional<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">lpParameter [in, optional]</div><div class="code_line">&nbsp;&nbsp; &nbsp;A pointer to a variable to be passed to the thread.</div></ol></div></div></div></div><br>
Дааа. В MFC все достаточно жестко..]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699156</guid>
        <pubDate>Fri, 23 Dec 2016 18:55:17 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699156</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699152'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-23T18:48:29+00:00">23.12.16, 18:48</time></span><div class='quote '>Функция создания потока<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">reader = CreateThread( NULL, 0,ReadThread, NULL, CREATE_SUSPENDED, NULL);</div></ol></div></div></div></div><br>
Только имя потоковой функции ReadThread. Дескриптор нет. Как это выглядит правильно?</div></div><br>
4 параметр есть указатель на данные для рабочего потока, передаём в него дескриптор главного окна через GetSafeHwnd():<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">reader = CreateThread( NULL, 0,ReadThread, GetSafeHwnd(), CREATE_SUSPENDED, NULL);</div></ol></div></div></div></div>]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699153</guid>
        <pubDate>Fri, 23 Dec 2016 18:49:13 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699153</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699129'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-23T14:39:25+00:00">23.12.16, 14:39</time></span><div class='quote '>В чем хитрость?<br>
В билдре там просто добавляется Form1-&gt;... <br>
В MFC как?<br>
Похоже элемент IDC_EDIT1 или вся функция GetDlgItem(IDC_EDIT1), если можно так выразиться, не попадает во внешнюю функцию.</div></div><br>
По всей вероятности, в том, один из методов CWnd имеет имя &quot;GetDlgItem&quot;.<br>
Которое совпадает с именем WINDOWS-API функции &quot;GetDlgItem&quot;.<br>
Они имеют разное число параметров.<br>
Когда функция с таким именем вызывается внутри класса, используется<br>
функция класса. Снаружи класса вызывается API-функция, которая имеет<br>
другой прототип. Поэтому появляется сообщение об ошибке.]]></description>
        <author>ЫукпШ</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699152</guid>
        <pubDate>Fri, 23 Dec 2016 18:48:29 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699152</link>
        <description><![CDATA[Acvarif: Функция создания потока<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">reader = CreateThread( NULL, 0,ReadThread, NULL, CREATE_SUSPENDED, NULL);</div></ol></div></div></div></div><br>
Только имя потоковой функции ReadThread. Дескриптор нет. Как это выглядит правильно?]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699144</guid>
        <pubDate>Fri, 23 Dec 2016 17:32:48 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699144</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699142'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-23T17:05:27+00:00">23.12.16, 17:05</time></span><div class='quote '>Просходит странная ошибка, вернее исключение, которое указывает на файл winocc.cpp<br>
Что-бы это мгло быть.</div></div><br>
обращение к несуществующему объекту или попросту по нулевому указателю :D <br>
ты дескриптор окна-владельца передаешь при создании потока?<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699142'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-23T17:05:27+00:00">23.12.16, 17:05</time></span><div class='quote '> То же самое, в отладчике застревает на строке <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">CEdit* pEdit = (CEdit*)pWnd-&#62;GetDlgItem(IDC_EDIT1);</div></ol></div></div></div></div></div></div><br>
невалидный указатель pWnd.]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699142</guid>
        <pubDate>Fri, 23 Dec 2016 17:05:27 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699142</link>
        <description><![CDATA[Acvarif: Спасибо. Пнятно. Для проверки поместил код в функцию-поток чтения в то место где собственно производится загрузка принятого байта в буфер bufrd <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(btr)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// прочитать байты из порта в буфер программы</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ReadFile(COMport, bufrd, btr, &amp;temp, &amp;overlapped);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// увеличиваем счётчик байтов</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;counterRX+=btr;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// вывод данных на экран</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CWnd* pWnd = CWnd::FromHandle((HWND)lpParam);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;CEdit* pEdit = (CEdit*)pWnd-&#62;GetDlgItem(IDC_EDIT1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;pEdit-&#62;SetWindowText(_T(&quot;Hello from thread!&quot;));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div></ol></div></div></div></div> <br>
Один раз в секунду на COM прт приходит пакет данных. Явно btr становится не 0 - вызывается код <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">CWnd* pWnd = CWnd::FromHandle((HWND)lpParam);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;CEdit* pEdit = (CEdit*)pWnd-&#62;GetDlgItem(IDC_EDIT1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;pEdit-&#62;SetWindowText(_T(&quot;Hello from thread!&quot;));</div></ol></div></div></div></div> <br>
Просходит странная ошибка, вернее исключение, которое указывает на файл winocc.cpp<br>
<span class="b-attach" data-size="95010" data-hits="862" data-attach-id="50985" data-attach-post-id="3699142">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3699142&amp;attach_id=50985' title='Скачать файл' target='_blank'>amulet1.jpg</a> (, : 862)
		</span><br>
Что-бы это мгло быть. Ведь в общем ничего особо не делается. Просто попытка вывести в окно Edit Control коротий текст. Может это связано с тем, что на порт приходит порядка 800 байт и по сути каждый раз в нем должно отображаться &quot;Hello from thread&#33;&quot; (800 раз) Чего-то не помещается? Сделал Auto scrol true. Не помогло...<br>
Уменьшил количество байт до 24. То же самое, в отладчике застревает на строке <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">CEdit* pEdit = (CEdit*)pWnd-&#62;GetDlgItem(IDC_EDIT1);</div></ol></div></div></div></div>]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699133</guid>
        <pubDate>Fri, 23 Dec 2016 15:11:24 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699133</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699129'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-23T14:39:25+00:00">23.12.16, 14:39</time></span><div class='quote '>В чем хитрость?<br>
В билдре там просто добавляется Form1-&gt;... <br>
В MFC как?<br>
Похоже элемент IDC_EDIT1 или вся функция GetDlgItem(IDC_EDIT1), если можно так выразиться, не попадает во внешнюю функцию.</div></div><br>
при создании потока в качестве параметра lParam передается дескриптор на главное окно:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">DWORD WINAPI WorkThread(LPVOID lParam)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;CWnd* pWnd = CWnd::FromHandle((HWND)lParam);</div><div class="code_line">&nbsp;&nbsp; &nbsp;CEdit* pEdit = (CEdit*)pWnd-&#62;GetDlgItem(IDC_EDIT1); </div><div class="code_line">&nbsp;&nbsp; &nbsp;pEdit-&#62;SetWindowText(_T(&quot;Hello from thread!&quot;));</div><div class="code_line">&nbsp;&nbsp; &nbsp;return 0;</div><div class="code_line">}</div></ol></div></div></div></div><br>
также в MFC есть указатель на главное окно сохраненое в члене m_pMainWnd класса CWinApp: AfxGetApp()-&gt;m_pMainWnd.<br>
судя по всему Form1 это тоже указатель на главное окно? :D]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699129</guid>
        <pubDate>Fri, 23 Dec 2016 14:39:25 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699129</link>
        <description><![CDATA[Acvarif: Такая конструкция работает <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp;CWnd* pWnd = GetDlgItem(IDC_EDIT1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;pWnd-&#62;SetWindowText(_T(&quot;Gerald Samper&quot;));</div></ol></div></div></div></div><br>
Но только если вызывается в OnInitDialog или в любом обработчике (кнопки или т. п)<br>
Если поместить это в любую внешнюю функцию то возникает ошибка<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Error &nbsp; 1 &nbsp; error C2660: &#39;GetDlgItem&#39; : function does not take 1 arguments</div></ol></div></div></div></div>	<br>
В чем хитрость?<br>
В билдре там просто добавляется Form1-&gt;... <br>
В MFC как?<br>
Похоже элемент IDC_EDIT1 или вся функция GetDlgItem(IDC_EDIT1), если можно так выразиться, не попадает во внешнюю функцию.]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699126</guid>
        <pubDate>Fri, 23 Dec 2016 14:11:11 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699126</link>
        <description><![CDATA[ЫукпШ: www.ya.ru, ищем &quot;CEdit MFC&quot; -&gt; находим описание:<br>
<a class='tag-url' href='https://msdn.microsoft.com/ru-ru/library/f7yhsd2b.aspx' target='_blank'>CEdit</a><br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><br>
..<br>
CEdit наследует значительные возможности из CWnd. <br>
Для установки и извлечения текста из объекта CEdit, используйте функции-члены <br>
SetWindowText и GetWindowText<br>
...<br>
</div></div>]]></description>
        <author>ЫукпШ</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699123</guid>
        <pubDate>Fri, 23 Dec 2016 13:46:08 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699123</link>
        <description><![CDATA[Acvarif: Очередной затык. Окно Edit Control. <br>
Имеется функция void ReadPrinting(DWORD btr) которая вызывается непосредственно в функции-потоке чтения.<br>
Функция принимает данные о количестве прочитанных байт (DWORD btr) COM портом и тупо выводит данные из глобального буфера bufrd в окно Memo в HEX виде.<br>
Выглядит это так<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp;for(UINT32 i=0; i&#60;btr ; i++)</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp;stroka = stroka + IntToHex(bufrd[i], 2) + &#39; &#39;;</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp;Form1-&#62;Memo2-&#62;Lines-&#62;Add(stroka);</div></ol></div></div></div></div><br>
Подскажите пожалуйста как это можно повторить в MFC - вывести данные в окно Edit Control.<br>
Для теста пробовал несколько типичных вариантов , например типа <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">SetWindowText(IDC_EDIT1, &quot;Text&quot;);</div></ol></div></div></div></div> <br>
Неработает. Ошибка <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Error 1 &#39;SetWindowTextW&#39; : cannot convert parameter 1 from &#39;int&#39; to &#39;HWND&#39;</div></ol></div></div></div></div>]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699110</guid>
        <pubDate>Fri, 23 Dec 2016 11:25:53 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699110</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699067'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-23T09:06:09+00:00">23.12.16, 09:06</time></span><div class='quote '>А.. врубился. Это нужно делать при запуске формы. CMFCtestDlg::OnCbnDropdownCombo1() не нужна.</div></div><br>
в OnInitDialog  :) <br>
<br>
еще если это список не меняется то можно в ресурсах его прописать в свойство Data: COM1;COM2;COM3]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699067</guid>
        <pubDate>Fri, 23 Dec 2016 09:06:09 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699067</link>
        <description><![CDATA[Acvarif: Спасибо. Сработало. Интересно работает ComboBox При каждом нажатии на стрелку выбора вниз - собственно это вызов функции<br>
// выбор COM порта<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void CMFCtestDlg::OnCbnDropdownCombo1()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;CComboBox* pCombo = (CComboBox*)GetDlgItem(IDC_COMBO1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;pCombo-&#62;AddString(L&quot;COM1&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;pCombo-&#62;AddString(L&quot;COM2&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;pCombo-&#62;AddString(L&quot;COM3&quot;);</div><div class="code_line">}</div></ol></div></div></div></div><br>
в окне выбора появляется повторение типа<span class="b-attach" data-size="12379" data-hits="930" data-attach-id="50975" data-attach-post-id="0">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=0&amp;attach_id=50975' title='Скачать файл' target='_blank'>vs.jpg</a> (, : 930)
		</span><br>
А.. врубился. Это нужно делать при запуске формы. CMFCtestDlg::OnCbnDropdownCombo1() не нужна.]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699051</guid>
        <pubDate>Fri, 23 Dec 2016 07:44:32 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699051</link>
        <description><![CDATA[Cfon: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=410093&view=findpost&p=3699048'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Acvarif &#064; <time class="tag-quote__quoted-time" datetime="2016-12-23T07:20:43+00:00">23.12.16, 07:20</time></span><div class='quote '>Пока не врубаюсь как составить список в ComboBox1 типа (&quot;COM1&quot; &quot;COM2&quot; &quot;COM3&quot; ..)</div></div><br>
а что сложного? <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">CComboBox* pCombo = (CComboBox*)GetDlgItem(IDC_COMBOID);</div><div class="code_line">pCombo-&#62;AddString(&quot;COM1&quot;);</div><div class="code_line">pCombo-&#62;AddString(&quot;COM2&quot;);</div><div class="code_line">pCombo-&#62;AddString(&quot;COM3&quot;);</div></ol></div></div></div></div>]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699048</guid>
        <pubDate>Fri, 23 Dec 2016 07:20:43 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699048</link>
        <description><![CDATA[Acvarif: Получается. Для проверки делаю так: По клику Button1 формирую строку типа &quot;COM1&quot; переношу ее в IDC_COMBO1 затем из IDC_COMBO1 извлекаюь строку в переменную str и потом вызываю функцию установок и открытия COM порта, где переменная str попадает в <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">COMport = CreateFile(str, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);.</div></ol></div></div></div></div> <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void CMFCtestDlg::OnBnClickedButton1()</div><div class="code_line">{</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;CString strText(_T(&quot;COM1&quot;));</div><div class="code_line">&nbsp;&nbsp;SetDlgItemText(IDC_COMBO1, strText);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;CString str;</div><div class="code_line">&nbsp;&nbsp;GetDlgItemText(IDC_COMBO1, str); </div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;// установки порта</div><div class="code_line">&nbsp;&nbsp;Com_Setting(str);</div><div class="code_line">&nbsp;&nbsp;// активировать поток чтения данных в порт</div><div class="code_line">&nbsp;&nbsp;ResumeThread(reader);</div><div class="code_line">&nbsp;</div><div class="code_line">}</div></ol></div></div></div></div><br>
Порт открывается. Поток вроде запускаетс. Пока не врубаюсь как составить список в ComboBox1 типа (&quot;COM1&quot; &quot;COM2&quot; &quot;COM3&quot; ..)]]></description>
        <author>Acvarif</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699040</guid>
        <pubDate>Fri, 23 Dec 2016 06:17:25 +0000</pubDate>
        <title>Visual Studio 2008 + COM Port</title>
        <link>https://forum.sources.ru/index.php?showtopic=410093&amp;view=findpost&amp;p=3699040</link>
        <description><![CDATA[Cfon: ну получилось? :)]]></description>
        <author>Cfon</author>
        <category>Visual C++ / MFC / WTL</category>
      </item>
	
      </channel>
      </rss>
	