<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>textBox, editBox or whatever you want to call it</title>
		<link>http://www.allegro.cc/forums/view/576793</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 06 Apr 2006 01:49:32 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Okay, since you guys are 2 for 2 with my recent programming questions, I&#39;ll ask you guys again. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>I got my windows sockets &quot;chat&quot; program running (thanx for the help) now, I want to have the user specify the IP to use so I can easily test my code on remote machines.</p><p> I plan to do this with an editBox (or is it called a textBox?) All I need is a windows message box with a single line for input, so I can take the string the user enters (should be an IP addy) and connect to the IP. I tied looking for this for a whileand MSDN isnt helping, Google sux, and if I see another page on .NET or C#, I&#39;m gonna cut someone. I dont use Vis-C++ 7.0, I sometimes use 6.0 but I mostly use Dev-CPP for my windows programming, and it has done a great job with the API stuff I learned.</p><p>So, I just want to make a simple textbox so I can enter a string, and then use that string elsewhere in the program.</p><p>Thanx a lot.<br /><img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (KaBlammyman)</author>
		<pubDate>Tue, 04 Apr 2006 02:53:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m no good at the windows API (or whatever it is), but if you simply want that you could use the command line <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /> not quite as easy, but easy enough for testing purposes.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jonatan Hedborg)</author>
		<pubDate>Tue, 04 Apr 2006 02:58:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m recently programming Visual C++ 6.0 an so...<br />Create your Dialog (CDialog class) and draw an edit Box using the Edit Box Draw button... <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> That&#39;s ok I hope... </p><p>now:<br />- Create a class for your dialog (2 click on your dialog and giva a name to the class.).<br />- Click on your edit Box with Right mouse button a select properties.<br />- Assign a good name such as ... MY_EDIT_BOX_INPUT (ok , you should make it better).<br />- Click again with the right mouse button upon your edit box and choose &quot;events&quot;.<br />- Select an event (onfieldchange is good, or better, &quot;onKillFocus&quot; too), and &quot;add&amp;Edit&quot; this event to your dialog class. (you have override a method.)<br />- Inside this code, after the TO DO comments, use this:
</p><div class="source-code snippet"><div class="inner"><pre><span class="p">#include &lt;string&gt;</span>
<span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span>

CString my_cstring<span class="k2">;</span>
GetDlgItemText<span class="k2">(</span> MY_EDIT_BOX_INPUT, my_cstring <span class="k2">)</span><span class="k2">;</span>
<span class="c">// setDlgItemText is the set method ;)</span>

string my_str <span class="k3">=</span> my_cstring<span class="k2">;</span>
<span class="c">// now do what you want when the text into the box change....</span>
</pre></div></div><p>

For additional questions,  I suggest to you this very userfull site: www.codeguru.com </p><p>Try my game... <br />ciao ciao</p><p><img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LordHolNapul)</author>
		<pubDate>Tue, 04 Apr 2006 03:54:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Is there a way to do this in Dev-C++ or in pure code? I know other parts of windows that MFC can do can also be done in pure code, so I&#39;d imagine this wouldnt be any different. I rather not switch to vis-c++ since I started this in dev-c++.</p><p>thanx. <img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (KaBlammyman)</author>
		<pubDate>Tue, 04 Apr 2006 23:32:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think what you&#39;re looking for is information on working with the win32 api. <br />This: <a href="http://www.google.ca/search?l&amp;q=win32+api+tutorial">http://www.google.ca/search?l&amp;q=win32+api+tutorial</a> seems to turn up quite a few hits, the first one looks particularly promising, but I don&#39;t really know much about it (I&#39;ve done all my previous windows programming in MFC with MSVC 6).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (FrankyR)</author>
		<pubDate>Wed, 05 Apr 2006 01:09:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I know that MFC means Microsoft Foundation Classes, but I don&#39;t know if the can be create from a compiler different from Microsoft&#39;s.<br />I think that a good site that let you programmatically do everything with windows is this, but your way will become difficult very soon:</p><p><a> http://www.functionx.com/visualc/ </a><br />I like very muth this site, It&#39;s my starting point to my applications...<br />Take a look, but, watch your six <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>ciao ciao
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LordHolNapul)</author>
		<pubDate>Wed, 05 Apr 2006 01:23:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanx for the links guys, but most of them are too basic for me. <br />I have been to all of those links when I first started learning the win api stuff, but they dont help much now. I have been looking at some source code, so hopefully I will get what I want from them.</p><p>I have been looking at the CreateWindowEx for making child windows and the options that go along with them, but so far, blindly cutting and pasting code into my win32 stuff doesn&#39;t work. ah well...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (KaBlammyman)</author>
		<pubDate>Wed, 05 Apr 2006 02:48:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Try this</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="p">#include &lt;windows.h&gt;</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td><span class="p">#define ID_EDIT 1</span></td></tr><tr><td class="number">4</td><td>LRESULT CALLBACK WndProc<span class="k2">(</span>HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>&#160;</td></tr><tr><td class="number">6</td><td>TCHAR szAppName<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span> TEXT<span class="k2">(</span><span class="s">"Single line text input test"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td><span class="k1">int</span> WINAPI WinMain<span class="k2">(</span>HINSTANCE hInstance, HINSTANCE hPrevInstance,</td></tr><tr><td class="number">9</td><td>                   PSTR szCmdLine, <span class="k1">int</span> iCmdShow<span class="k2">)</span></td></tr><tr><td class="number">10</td><td><span class="k2">{</span></td></tr><tr><td class="number">11</td><td> HWND hwnd<span class="k2">;</span></td></tr><tr><td class="number">12</td><td> MSG msg<span class="k2">;</span></td></tr><tr><td class="number">13</td><td> WNDCLASS wndclass<span class="k2">;</span></td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</td><td> wndclass.style <span class="k3">=</span> CS_HREDRAW <span class="k3">|</span> CS_VREDRAW<span class="k2">;</span></td></tr><tr><td class="number">16</td><td> wndclass.lpfnWndProc <span class="k3">=</span> WndProc<span class="k2">;</span></td></tr><tr><td class="number">17</td><td> wndclass.cbClsExtra <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td> wndclass.cbWndExtra <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td> wndclass.hInstance <span class="k3">=</span> hInstance<span class="k2">;</span></td></tr><tr><td class="number">20</td><td> wndclass.hIcon <span class="k3">=</span> LoadIcon<span class="k2">(</span>NULL, IDI_APPLICATION<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td> wndclass.hCursor <span class="k3">=</span> LoadCursor<span class="k2">(</span>NULL, IDC_ARROW<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td> wndclass.hbrBackground <span class="k3">=</span> <span class="k2">(</span>HBRUSH<span class="k2">)</span> GetStockObject<span class="k2">(</span>WHITE_BRUSH<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td> wndclass.lpszMenuName <span class="k3">=</span> NULL<span class="k2">;</span></td></tr><tr><td class="number">24</td><td> wndclass.lpszClassName <span class="k3">=</span> szAppName<span class="k2">;</span></td></tr><tr><td class="number">25</td><td>&#160;</td></tr><tr><td class="number">26</td><td> <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>RegisterClass<span class="k2">(</span><span class="k3">&amp;</span>wndclass<span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">27</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">28</td><td>    MessageBox<span class="k2">(</span>NULL, TEXT<span class="k2">(</span><span class="s">"Ths program require Windows NT!"</span><span class="k2">)</span>,</td></tr><tr><td class="number">29</td><td>               szAppName, MB_ICONERROR<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">30</td><td>         </td></tr><tr><td class="number">31</td><td>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">33</td><td>   </td></tr><tr><td class="number">34</td><td> hwnd <span class="k3">=</span> CreateWindow<span class="k2">(</span>szAppName, szAppName, WS_OVERLAPPEDWINDOW,</td></tr><tr><td class="number">35</td><td>                     CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,</td></tr><tr><td class="number">36</td><td>                     NULL, NULL, hInstance, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>                     </td></tr><tr><td class="number">38</td><td> ShowWindow<span class="k2">(</span>hwnd, iCmdShow<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td> UpdateWindow<span class="k2">(</span>hwnd<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">40</td><td> </td></tr><tr><td class="number">41</td><td> <span class="k1">while</span><span class="k2">(</span>GetMessage<span class="k2">(</span><span class="k3">&amp;</span>msg, NULL, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">42</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">43</td><td>    TranslateMessage<span class="k2">(</span><span class="k3">&amp;</span>msg<span class="k2">)</span>,</td></tr><tr><td class="number">44</td><td>    DispatchMessage<span class="k2">(</span><span class="k3">&amp;</span>msg<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">45</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">46</td><td>   </td></tr><tr><td class="number">47</td><td> <span class="k1">return</span> msg.wParam<span class="k2">;</span></td></tr><tr><td class="number">48</td><td><span class="k2">}</span></td></tr><tr><td class="number">49</td><td>&#160;</td></tr><tr><td class="number">50</td><td>&#160;</td></tr><tr><td class="number">51</td><td>&#160;</td></tr><tr><td class="number">52</td><td>LRESULT CALLBACK WndProc<span class="k2">(</span>HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam<span class="k2">)</span></td></tr><tr><td class="number">53</td><td><span class="k2">{</span></td></tr><tr><td class="number">54</td><td> <span class="k1">static</span> HWND hwndEdit<span class="k2">;</span></td></tr><tr><td class="number">55</td><td> </td></tr><tr><td class="number">56</td><td> HDC hdc<span class="k2">;</span></td></tr><tr><td class="number">57</td><td> PAINTSTRUCT ps<span class="k2">;</span></td></tr><tr><td class="number">58</td><td> RECT <a href="http://www.allegro.cc/manual/rect" target="_blank"><span class="a">rect</span></a><span class="k2">;</span></td></tr><tr><td class="number">59</td><td>&#160;</td></tr><tr><td class="number">60</td><td> <span class="k1">static</span> TCHAR szText<span class="k2">[</span><span class="n">512</span><span class="k2">]</span> <span class="k3">=</span> <span class="s">""</span><span class="k2">;</span></td></tr><tr><td class="number">61</td><td>&#160;</td></tr><tr><td class="number">62</td><td> <span class="k1">switch</span><span class="k2">(</span>msg<span class="k2">)</span></td></tr><tr><td class="number">63</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">64</td><td>    <span class="k1">case</span> WM_CREATE:</td></tr><tr><td class="number">65</td><td>      hwndEdit <span class="k3">=</span> CreateWindow<span class="k2">(</span>TEXT<span class="k2">(</span><span class="s">"edit"</span><span class="k2">)</span>, NULL,</td></tr><tr><td class="number">66</td><td>                              WS_CHILD <span class="k3">|</span> WS_VISIBLE <span class="k3">|</span> WS_BORDER,</td></tr><tr><td class="number">67</td><td>            <span class="n">10</span>, <span class="n">10</span>, <span class="n">500</span>, <span class="n">20</span>, hwnd, <span class="k2">(</span>HMENU<span class="k2">)</span> ID_EDIT,</td></tr><tr><td class="number">68</td><td>            <span class="k2">(</span><span class="k2">(</span>LPCREATESTRUCT<span class="k2">)</span> lParam<span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>hInstance, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">69</td><td>&#160;</td></tr><tr><td class="number">70</td><td>      <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">71</td><td>&#160;</td></tr><tr><td class="number">72</td><td>    <span class="k1">case</span> WM_SETFOCUS:</td></tr><tr><td class="number">73</td><td>      SetFocus<span class="k2">(</span>hwndEdit<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">74</td><td>      <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">75</td><td>&#160;</td></tr><tr><td class="number">76</td><td>    <span class="k1">case</span> WM_COMMAND:</td></tr><tr><td class="number">77</td><td>      <span class="k1">if</span><span class="k2">(</span>LOWORD<span class="k2">(</span>wParam<span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> ID_EDIT<span class="k2">)</span></td></tr><tr><td class="number">78</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">79</td><td>         <span class="k1">if</span><span class="k2">(</span>HIWORD<span class="k2">(</span>wParam<span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> EN_ERRSPACE <span class="k3">|</span><span class="k3">|</span> HIWORD<span class="k2">(</span>wParam<span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> EN_MAXTEXT<span class="k2">)</span></td></tr><tr><td class="number">80</td><td>      MessageBox<span class="k2">(</span>hwnd, TEXT<span class="k2">(</span><span class="s">"Edit control out of space!"</span><span class="k2">)</span>,</td></tr><tr><td class="number">81</td><td>                szAppName, MB_OK <span class="k3">|</span> MB_ICONSTOP<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">82</td><td>&#160;</td></tr><tr><td class="number">83</td><td>   <span class="k1">if</span><span class="k2">(</span>HIWORD<span class="k2">(</span>wParam<span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> EN_UPDATE<span class="k2">)</span></td></tr><tr><td class="number">84</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">85</td><td>            GetWindowText<span class="k2">(</span>hwndEdit, szText, <span class="n">511</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">86</td><td>&#160;</td></tr><tr><td class="number">87</td><td>            InvalidateRect<span class="k2">(</span>hwnd, NULL, TRUE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">88</td><td>           <span class="k2">}</span></td></tr><tr><td class="number">89</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">90</td><td>&#160;</td></tr><tr><td class="number">91</td><td>      <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">92</td><td>&#160;</td></tr><tr><td class="number">93</td><td>    <span class="k1">case</span> WM_PAINT:</td></tr><tr><td class="number">94</td><td>      hdc <span class="k3">=</span> BeginPaint<span class="k2">(</span>hwnd, <span class="k3">&amp;</span>ps<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">95</td><td>&#160;</td></tr><tr><td class="number">96</td><td>      GetClientRect<span class="k2">(</span>hwnd, <span class="k3">&amp;</span><a href="http://www.allegro.cc/manual/rect" target="_blank"><span class="a">rect</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">97</td><td>      DrawText<span class="k2">(</span>hdc, szText, <span class="k3">-</span><span class="n">1</span>, <span class="k3">&amp;</span><a href="http://www.allegro.cc/manual/rect" target="_blank"><span class="a">rect</span></a>, DT_SINGLELINE <span class="k3">|</span> DT_CENTER <span class="k3">|</span> DT_VCENTER<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">98</td><td>&#160;</td></tr><tr><td class="number">99</td><td>      EndPaint<span class="k2">(</span>hwnd, <span class="k3">&amp;</span>ps<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">100</td><td>&#160;</td></tr><tr><td class="number">101</td><td>      <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">102</td><td>&#160;</td></tr><tr><td class="number">103</td><td>    <span class="k1">case</span> WM_DESTROY:</td></tr><tr><td class="number">104</td><td>      PostQuitMessage<span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">105</td><td>      <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">106</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">107</td><td>&#160;</td></tr><tr><td class="number">108</td><td> <span class="k1">return</span> DefWindowProc<span class="k2">(</span>hwnd, msg, wParam, lParam<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">109</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

In short it creates a white window with a single line edit box
</p><div class="source-code snippet"><div class="inner"><pre>      hwndEdit <span class="k3">=</span> CreateWindow<span class="k2">(</span>TEXT<span class="k2">(</span><span class="s">"edit"</span><span class="k2">)</span>, NULL,
                              WS_CHILD <span class="k3">|</span> WS_VISIBLE <span class="k3">|</span> WS_BORDER,
            <span class="n">10</span>, <span class="n">10</span>, <span class="n">500</span>, <span class="n">20</span>, hwnd, <span class="k2">(</span>HMENU<span class="k2">)</span> ID_EDIT,
            <span class="k2">(</span><span class="k2">(</span>LPCREATESTRUCT<span class="k2">)</span> lParam<span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>hInstance, NULL<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
(I omitted the style ES_MULTILINE)</p><p>The relevant code is
</p><div class="source-code snippet"><div class="inner"><pre>   <span class="k1">if</span><span class="k2">(</span>HIWORD<span class="k2">(</span>wParam<span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> EN_UPDATE<span class="k2">)</span>
     <span class="k2">{</span>
            GetWindowText<span class="k2">(</span>hwndEdit, szText, <span class="n">511</span><span class="k2">)</span><span class="k2">;</span>

            InvalidateRect<span class="k2">(</span>hwnd, NULL, TRUE<span class="k2">)</span><span class="k2">;</span>
           <span class="k2">}</span>
</pre></div></div><p>
Which detects when new characters are entered / deleted and updates each time the buffer, plus it forces an update of the entire window.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Marco Radaelli)</author>
		<pubDate>Wed, 05 Apr 2006 04:31:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Marco, You are the man!!</p><p>Thanx for the help!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (KaBlammyman)</author>
		<pubDate>Thu, 06 Apr 2006 00:17:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You&#39;re welcome <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /><br />Let me know if it works <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Marco Radaelli)</author>
		<pubDate>Thu, 06 Apr 2006 01:49:32 +0000</pubDate>
	</item>
</rss>
