<?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=172652&amp;view=findpost&amp;p=1458828</guid>
        <pubDate>Tue, 20 Feb 2007 03:57:03 +0000</pubDate>
        <title>Свой MessageBox</title>
        <link>https://forum.sources.ru/index.php?showtopic=172652&amp;view=findpost&amp;p=1458828</link>
        <description><![CDATA[ALXR: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=172652&view=findpost&p=1458825'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>B.V. &#064; <time class="tag-quote__quoted-time" datetime="2007-02-20T06:44:55+03:00">20.02.07, 03:44</time></span><div class='quote '>Ну... С ленью надо бороться, особенно в этом плане.<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">.dwStyle = (dwStyle And &amp;HFFF0&amp;) Or 1</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script></div></div><br>
Для того, чтобы бегло что-то набросать - не нужно. А чтобы не бегло - давно на vb чего-то серьезное писал, хотя там, однако, использовал их.<br>
<br>
По поводу последнего вопроса: Выделяю нужную мне маску и устанавливаю младший бит. А что, это криминально? :) В коде нету констант. Совсем. :ph34r:]]></description>
        <author>ALXR</author>
        <category>Visual Basic: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=172652&amp;view=findpost&amp;p=1458825</guid>
        <pubDate>Tue, 20 Feb 2007 03:44:55 +0000</pubDate>
        <title>Свой MessageBox</title>
        <link>https://forum.sources.ru/index.php?showtopic=172652&amp;view=findpost&amp;p=1458825</link>
        <description><![CDATA[B.V.: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=172652&view=findpost&p=1458816'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ALXR &#064; <time class="tag-quote__quoted-time" datetime="2007-02-20T03:09:01+00:00">20.02.07, 03:09</time></span><div class='quote '>все эти константы лениво очень расписывать</div></div><br>
<br>
Ну... С ленью надо бороться, особенно в этом плане.<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">.dwStyle = (dwStyle And &amp;HFFF0&amp;) Or 1</div></ol></div></div></div></div><br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=172652&view=findpost&p=1458803'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ALXR &#064; <time class="tag-quote__quoted-time" datetime="2007-02-20T01:57:47+00:00">20.02.07, 01:57</time></span><div class='quote '>MY_MSGBOX_DEFAULT5</div></div><br>
Ты имел ввиду MY_<strong class='tag-b'>MBOX</strong>_DEFAULT5?]]></description>
        <author>B.V.</author>
        <category>Visual Basic: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=172652&amp;view=findpost&amp;p=1458816</guid>
        <pubDate>Tue, 20 Feb 2007 03:09:01 +0000</pubDate>
        <title>Свой MessageBox</title>
        <link>https://forum.sources.ru/index.php?showtopic=172652&amp;view=findpost&amp;p=1458816</link>
        <description><![CDATA[ALXR: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=172652&view=findpost&p=1458811'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>B.V. &#064; <time class="tag-quote__quoted-time" datetime="2007-02-20T02:40:49+00:00">20.02.07, 02:40</time></span><div class='quote '>Я понял. Это был намек на то, что неплохо было бы создать константу MB_DEFBUTTON5 = &amp;H400, а не давать ни о чем не говорящую цифру. Собственно, это же касается остальных &quot;неизвестных&quot; констант.</div></div><br>
Это пример вызова. Вызывать можно как удобно. Я использую только числа (именно в VB), поскольку все эти константы лениво очень расписывать. Остальные могут вызывать код как угодно...<br>
<br>
PS: Собственно, можно в FAQ поправленный в плане версий вариант.  :D]]></description>
        <author>ALXR</author>
        <category>Visual Basic: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=172652&amp;view=findpost&amp;p=1458811</guid>
        <pubDate>Tue, 20 Feb 2007 02:40:49 +0000</pubDate>
        <title>Свой MessageBox</title>
        <link>https://forum.sources.ru/index.php?showtopic=172652&amp;view=findpost&amp;p=1458811</link>
        <description><![CDATA[B.V.: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=172652&view=findpost&p=1458810'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ALXR &#064; <time class="tag-quote__quoted-time" datetime="2007-02-20T02:36:51+00:00">20.02.07, 02:36</time></span><div class='quote '>Что, с флагом WINDOWS_XP работает?</div></div><br>
<br>
У меня Win2k. Что будет с флагом WINDOWS_XP - посмотри в топике на VBS.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=172652&view=findpost&p=1458810'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ALXR &#064; <time class="tag-quote__quoted-time" datetime="2007-02-20T02:36:51+00:00">20.02.07, 02:36</time></span><div class='quote '>&amp;H400 - кнопка по умолчанию (то бишь 4 + 1 = 5-ая), как и принято в стилях MBox&#39;а: vbDefaultButton1, vbDefaultButton2 и т.п.</div></div><br>
<br>
Я понял. Это был намек на то, что неплохо было бы создать константу MB_DEFBUTTON5 = &amp;H400, а не давать ни о чем не говорящую цифру. Собственно, это же касается остальных &quot;неизвестных&quot; констант.]]></description>
        <author>B.V.</author>
        <category>Visual Basic: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=172652&amp;view=findpost&amp;p=1458810</guid>
        <pubDate>Tue, 20 Feb 2007 02:36:51 +0000</pubDate>
        <title>Свой MessageBox</title>
        <link>https://forum.sources.ru/index.php?showtopic=172652&amp;view=findpost&amp;p=1458810</link>
        <description><![CDATA[ALXR: Что, с флагом WINDOWS_XP работает?<br><br>&amp;H400 - кнопка по умолчанию (то бишь 4 + 1 = 5-ая), как и принято в стилях MBox&#39;а: vbDefaultButton1, vbDefaultButton2 и т.п.]]></description>
        <author>ALXR</author>
        <category>Visual Basic: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=172652&amp;view=findpost&amp;p=1458806</guid>
        <pubDate>Tue, 20 Feb 2007 02:14:10 +0000</pubDate>
        <title>Свой MessageBox</title>
        <link>https://forum.sources.ru/index.php?showtopic=172652&amp;view=findpost&amp;p=1458806</link>
        <description><![CDATA[B.V.: Работает он у нас, работает...<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=172652&view=findpost&p=1458803'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ALXR &#064; <time class="tag-quote__quoted-time" datetime="2007-02-20T01:57:47+00:00">20.02.07, 01:57</time></span><div class='quote '>&amp;h400 or vbQuestion</div></div><br>
<br>
Ну и что же такое &amp;h400?]]></description>
        <author>B.V.</author>
        <category>Visual Basic: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=172652&amp;view=findpost&amp;p=1458803</guid>
        <pubDate>Tue, 20 Feb 2007 01:57:47 +0000</pubDate>
        <title>Свой MessageBox</title>
        <link>https://forum.sources.ru/index.php?showtopic=172652&amp;view=findpost&amp;p=1458803</link>
        <description><![CDATA[ALXR: Сразу скажу, что ЗНАЮ, что эта тема есть <a class='tag-url' href='http://bbs.vbstreets.ru/viewtopic.php?t=28284' target='_blank'>здесь</a>, однако мой код составлялся по исходникам самой ф-ции SoftModalMessageBox, а уж потом я наткнулся на приведенную ссылку. Поскольку тот код непонятно почему порождал ошибку &quot;Bad DLL calling convention&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">Option Explicit</div><div class="code_line">&nbsp;</div><div class="code_line">Global Const MY_MBOX_DEFAULT1 As Long = vbDefaultButton1</div><div class="code_line">Global Const MY_MBOX_DEFAULT2 As Long = vbDefaultButton2</div><div class="code_line">Global Const MY_MBOX_DEFAULT3 As Long = vbDefaultButton3</div><div class="code_line">Global Const MY_MBOX_DEFAULT4 As Long = vbDefaultButton4</div><div class="code_line">Global Const MY_MBOX_DEFAULT5 As Long = &amp;H400</div><div class="code_line">&nbsp;</div><div class="code_line">Private Declare Function SoftModalMessageBox Lib &quot;user32.dll&quot; (lpmb As MSGBOXDATA) As Long</div><div class="code_line">Private Declare Function GetActiveWindow Lib &quot;user32.dll&quot; () As Long</div><div class="code_line">Private Declare Function GetVersionExA Lib &quot;kernel32.dll&quot; (posv As OSVERSIONINFO) As Long</div><div class="code_line">&nbsp;</div><div class="code_line">Private Type OSVERSIONINFO</div><div class="code_line">&nbsp;&nbsp; &nbsp;dwOSVersionInfoSize As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;dwMajorVersion As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;dwMinorVersion As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;dwBuildNumber As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;dwPlatformId As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;szCSDVersion As String * 128</div><div class="code_line">End Type</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Private Type MSGBOXPARAMS</div><div class="code_line">&nbsp;&nbsp; &nbsp;cbSize As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;hwndOwner As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;hInstance As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;lpszText As String</div><div class="code_line">&nbsp;&nbsp; &nbsp;lpszCaption As String</div><div class="code_line">&nbsp;&nbsp; &nbsp;dwStyle As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;lpszIcon As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;dwContextHelpId As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;lpfnMsgBoxCallback As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;dwLanguageId As Long</div><div class="code_line">End Type</div><div class="code_line">&nbsp;</div><div class="code_line">Private Type MSGBOXDATA</div><div class="code_line">&nbsp;&nbsp; &nbsp;mbp As MSGBOXPARAMS</div><div class="code_line">&nbsp;&nbsp; &nbsp;pwndOwner As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;wLanguageId As Integer</div><div class="code_line">&nbsp;&nbsp; &nbsp;pidButton As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;ppszButtonText As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;cButtons As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;DefButton As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;CancelId As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp;dwTimeout As Long</div><div class="code_line">End Type</div><div class="code_line">&nbsp;</div><div class="code_line">Function MyMsgBox(ByVal lpszPrompt As String, ByVal lpszTitle As String, ByVal dwStyle As VbMsgBoxStyle, _</div><div class="code_line">ByVal nCancelId As Long, ByVal hParentWnd As Long, ParamArray sButtons()) As VbMsgBoxResult</div><div class="code_line">On Error Resume Next</div><div class="code_line">Dim mbd As MSGBOXDATA, idb() As Long, pszTexts() As String, i As Long</div><div class="code_line">Dim osv As OSVERSIONINFO</div><div class="code_line">osv.dwOSVersionInfoSize = Len(osv)</div><div class="code_line">GetVersionExA osv</div><div class="code_line">If osv.dwMajorVersion &#60; 5 Then MyMsgBox = -1: Exit Function</div><div class="code_line">&nbsp;</div><div class="code_line">If hParentWnd = 0 Then hParentWnd = GetActiveWindow()</div><div class="code_line">With mbd</div><div class="code_line">.cButtons = UBound(sButtons): If Err.Number = 9 Then Err.Clear Else: .cButtons = .cButtons + 1</div><div class="code_line">If .cButtons &#62; 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp;ReDim idb(0 To .cButtons - 1), pszTexts(0 To .cButtons - 1)</div><div class="code_line">&nbsp;&nbsp; &nbsp;For i = 0 To .cButtons - 1</div><div class="code_line">&nbsp;&nbsp; &nbsp;idb(i) = i + 1: pszTexts(i) = sButtons(i)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Next</div><div class="code_line">&nbsp;&nbsp; &nbsp;.DefButton = (dwStyle \ &amp;H100) And &amp;HF</div><div class="code_line">&nbsp;&nbsp; &nbsp;If nCancelId &#62;= 1 And nCancelId &#60;= .cButtons Then .CancelId = nCancelId</div><div class="code_line">&nbsp;&nbsp; &nbsp;.pidButton = VarPtr(idb(0)): .ppszButtonText = VarPtr(pszTexts(0))</div><div class="code_line">Else</div><div class="code_line">&nbsp;&nbsp; &nbsp;.pidButton = 0: .ppszButtonText = 0: .cButtons = 0: .DefButton = 0: .CancelId = 0</div><div class="code_line">End If</div><div class="code_line">With mbd.mbp</div><div class="code_line">.cbSize = Len(mbd.mbp)</div><div class="code_line">.dwStyle = (dwStyle And &amp;HFFF0&amp;) Or 1</div><div class="code_line">.hInstance = App.hInstance</div><div class="code_line">.hwndOwner = hParentWnd</div><div class="code_line">.lpszCaption = StrConv(lpszTitle, vbUnicode)</div><div class="code_line">.lpszText = StrConv(lpszPrompt, vbUnicode)</div><div class="code_line">.lpszIcon = 0</div><div class="code_line">End With</div><div class="code_line">If osv.dwMajorVersion = 5 And osv.dwMinorVersion &#62;= 1 Or osv.dwMajorVersion &#62; 5 Then </div><div class="code_line">&nbsp;&nbsp; &nbsp;.dwTimeout = -1 </div><div class="code_line">Else: .dwTimeout = 0</div><div class="code_line">End If</div><div class="code_line">End With</div><div class="code_line">MyMsgBox = SoftModalMessageBox(mbd)</div><div class="code_line">End Function</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">Call MyMsgBox(&quot;Текст сообщения&quot;,&quot;Заголовок&quot;,MY_MSGBOX_DEFAULT5 or vbQuestion, 0, _</div><div class="code_line">&nbsp;0, &quot;Button1&quot;, &quot;Button2&quot;, &quot;Button3&quot;, &quot;Button4&quot;, &quot;Button5&quot;)</div></ol></div></div></div></div><br>
Соответственно, возвращаться будет число от 1 до 5.]]></description>
        <author>ALXR</author>
        <category>Visual Basic: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	