<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Using native Windows GUI with Allegro</title>
		<link>http://www.allegro.cc/forums/view/547817</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 28 Nov 2005 11:12:38 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It is possible to use windows GUI (menu bar, combobox, labels, listbox, etc) with Allegro?<br />I looked at the manual and I only found Shawn&#39;s old-AtariST-based-GUI, which is really ugly (btw, I think Allegro 4.2 deserves a better GUI).<br />I decided to use windowed mode for my level editor and I want to use Windows GUI for that, I also want to use several additional windows if were necessary.</p><p>My level editor should look like this:</p><p>http://www.freeimagelibrary.com/images/PaulPaul/ss2_3.png</p><p>I know there are a lot of free GUIs for Allegro, but I don&#39;t want to use them, most Allegro GUIs were designed for games, not for applications, and my level editor should look like a serious application.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul whoknows)</author>
		<pubDate>Sat, 26 Nov 2005 07:46:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
It is possible to use windows GUI (menu bar, combobox, labels, listbox, etc) with Allegro?
</p></div></div><p>
Yes.</p><p>You should be able to &#39;blit&#39; Allegro into a picture-box (or any other widget) because they all have HWNDs/HDCs.</p><p>Obviously you&#39;ll lose that cross-platform ability - maybe someone will recommend wxwidgets or other.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Archon)</author>
		<pubDate>Sat, 26 Nov 2005 08:50:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Off-Topic Question: If Windows uses HWNDs/HDCs what do other OSes use? If anything.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sat, 26 Nov 2005 08:55:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think I&#39;ll need some help:-/<br />Here is typical &quot;Hellow world&quot; windows program.<br />How should I add allegro in a program like this?<br />How can I blit something on it?</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="k1">sizeof</span><span class="k2">(</span>WNDCLASSEX<span class="k2">)</span><span class="k2">;</span> </td></tr><tr><td class="number">2</td><td><span class="c">// tyty.cpp : Defines the entry point for the application.</span></td></tr><tr><td class="number">3</td><td><span class="c">//</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td><span class="p">#include "stdafx.h"</span></td></tr><tr><td class="number">6</td><td><span class="p">#include "resource.h"</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td><span class="p">#define MAX_LOADSTRING 100</span></td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td><span class="c">// Global Variables:</span></td></tr><tr><td class="number">11</td><td>HINSTANCE hInst<span class="k2">;</span>                <span class="c">// current instance</span></td></tr><tr><td class="number">12</td><td>TCHAR szTitle<span class="k2">[</span>MAX_LOADSTRING<span class="k2">]</span><span class="k2">;</span>                <span class="c">// The title bar text</span></td></tr><tr><td class="number">13</td><td>TCHAR szWindowClass<span class="k2">[</span>MAX_LOADSTRING<span class="k2">]</span><span class="k2">;</span>                <span class="c">// The title bar text</span></td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</td><td><span class="c">// Foward declarations of functions included in this code module:</span></td></tr><tr><td class="number">16</td><td>ATOM        MyRegisterClass<span class="k2">(</span>HINSTANCE hInstance<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>BOOL        InitInstance<span class="k2">(</span>HINSTANCE, <span class="k1">int</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>LRESULT CALLBACK  WndProc<span class="k2">(</span>HWND, UINT, WPARAM, LPARAM<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>LRESULT CALLBACK  About<span class="k2">(</span>HWND, UINT, WPARAM, LPARAM<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>&#160;</td></tr><tr><td class="number">21</td><td><span class="k1">int</span> APIENTRY WinMain<span class="k2">(</span>HINSTANCE hInstance,</td></tr><tr><td class="number">22</td><td>                     HINSTANCE hPrevInstance,</td></tr><tr><td class="number">23</td><td>                     LPSTR     lpCmdLine,</td></tr><tr><td class="number">24</td><td>                     <span class="k1">int</span>       nCmdShow<span class="k2">)</span></td></tr><tr><td class="number">25</td><td><span class="k2">{</span></td></tr><tr><td class="number">26</td><td>   <span class="c">// TODO: Place code here.</span></td></tr><tr><td class="number">27</td><td>  MSG msg<span class="k2">;</span> </td></tr><tr><td class="number">28</td><td>  HACCEL hAccelTable<span class="k2">;</span></td></tr><tr><td class="number">29</td><td>&#160;</td></tr><tr><td class="number">30</td><td>  <span class="c">// Initialize global strings</span></td></tr><tr><td class="number">31</td><td>  LoadString<span class="k2">(</span>hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>  LoadString<span class="k2">(</span>hInstance, IDC_TYTY, szWindowClass, MAX_LOADSTRING<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td>  MyRegisterClass<span class="k2">(</span>hInstance<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td>&#160;</td></tr><tr><td class="number">35</td><td>  <span class="c">// Perform application initialization:</span></td></tr><tr><td class="number">36</td><td>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>InitInstance <span class="k2">(</span>hInstance, nCmdShow<span class="k2">)</span><span class="k2">)</span> </td></tr><tr><td class="number">37</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">38</td><td>    <span class="k1">return</span> FALSE<span class="k2">;</span></td></tr><tr><td class="number">39</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">40</td><td>&#160;</td></tr><tr><td class="number">41</td><td>  hAccelTable <span class="k3">=</span> LoadAccelerators<span class="k2">(</span>hInstance, <span class="k2">(</span>LPCTSTR<span class="k2">)</span>IDC_TYTY<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">42</td><td>&#160;</td></tr><tr><td class="number">43</td><td>  <span class="c">// Main message loop:</span></td></tr><tr><td class="number">44</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">45</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">46</td><td>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>TranslateAccelerator<span class="k2">(</span>msg.hwnd, hAccelTable, <span class="k3">&amp;</span>msg<span class="k2">)</span><span class="k2">)</span> </td></tr><tr><td class="number">47</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">48</td><td>      TranslateMessage<span class="k2">(</span><span class="k3">&amp;</span>msg<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">49</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">50</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">51</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">52</td><td>&#160;</td></tr><tr><td class="number">53</td><td>  <span class="k1">return</span> msg.wParam<span class="k2">;</span></td></tr><tr><td class="number">54</td><td><span class="k2">}</span></td></tr><tr><td class="number">55</td><td>&#160;</td></tr><tr><td class="number">56</td><td>&#160;</td></tr><tr><td class="number">57</td><td>&#160;</td></tr><tr><td class="number">58</td><td><span class="c">//</span></td></tr><tr><td class="number">59</td><td><span class="c">//  FUNCTION: MyRegisterClass()</span></td></tr><tr><td class="number">60</td><td><span class="c">//</span></td></tr><tr><td class="number">61</td><td><span class="c">//  PURPOSE: Registers the window class.</span></td></tr><tr><td class="number">62</td><td><span class="c">//</span></td></tr><tr><td class="number">63</td><td><span class="c">//  COMMENTS:</span></td></tr><tr><td class="number">64</td><td><span class="c">//</span></td></tr><tr><td class="number">65</td><td><span class="c">//    This function and its usage is only necessary if you want this code</span></td></tr><tr><td class="number">66</td><td><span class="c">//    to be compatible with Win32 systems prior to the 'RegisterClassEx'</span></td></tr><tr><td class="number">67</td><td><span class="c">//    function that was added to Windows 95. It is important to call this function</span></td></tr><tr><td class="number">68</td><td><span class="c">//    so that the application will get 'well formed' small icons associated</span></td></tr><tr><td class="number">69</td><td><span class="c">//    with it.</span></td></tr><tr><td class="number">70</td><td><span class="c">//</span></td></tr><tr><td class="number">71</td><td>ATOM MyRegisterClass<span class="k2">(</span>HINSTANCE hInstance<span class="k2">)</span></td></tr><tr><td class="number">72</td><td><span class="k2">{</span></td></tr><tr><td class="number">73</td><td>  WNDCLASSEX wcex<span class="k2">;</span></td></tr><tr><td class="number">74</td><td>&#160;</td></tr><tr><td class="number">75</td><td>  wcex.cbSize <span class="k3">=</span></td></tr><tr><td class="number">76</td><td>  wcex.style      <span class="k3">=</span> CS_HREDRAW <span class="k3">|</span> CS_VREDRAW<span class="k2">;</span></td></tr><tr><td class="number">77</td><td>  wcex.lpfnWndProc  <span class="k3">=</span> <span class="k2">(</span>WNDPROC<span class="k2">)</span>WndProc<span class="k2">;</span></td></tr><tr><td class="number">78</td><td>  wcex.cbClsExtra    <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">79</td><td>  wcex.cbWndExtra    <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">80</td><td>  wcex.hInstance    <span class="k3">=</span> hInstance<span class="k2">;</span></td></tr><tr><td class="number">81</td><td>  wcex.hIcon      <span class="k3">=</span> LoadIcon<span class="k2">(</span>hInstance, <span class="k2">(</span>LPCTSTR<span class="k2">)</span>IDI_TYTY<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">82</td><td>  wcex.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">83</td><td>  wcex.hbrBackground  <span class="k3">=</span> <span class="k2">(</span>HBRUSH<span class="k2">)</span><span class="k2">(</span>COLOR_WINDOW<span class="k3">+</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">84</td><td>  wcex.lpszMenuName  <span class="k3">=</span> <span class="k2">(</span>LPCSTR<span class="k2">)</span>IDC_TYTY<span class="k2">;</span></td></tr><tr><td class="number">85</td><td>  wcex.lpszClassName  <span class="k3">=</span> szWindowClass<span class="k2">;</span></td></tr><tr><td class="number">86</td><td>  wcex.hIconSm    <span class="k3">=</span> LoadIcon<span class="k2">(</span>wcex.hInstance, <span class="k2">(</span>LPCTSTR<span class="k2">)</span>IDI_SMALL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">87</td><td>&#160;</td></tr><tr><td class="number">88</td><td>  <span class="k1">return</span> RegisterClassEx<span class="k2">(</span><span class="k3">&amp;</span>wcex<span class="k2">)</span><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="c">//</span></td></tr><tr><td class="number">92</td><td><span class="c">//   FUNCTION: InitInstance(HANDLE, int)</span></td></tr><tr><td class="number">93</td><td><span class="c">//</span></td></tr><tr><td class="number">94</td><td><span class="c">//   PURPOSE: Saves instance handle and creates main window</span></td></tr><tr><td class="number">95</td><td><span class="c">//</span></td></tr><tr><td class="number">96</td><td><span class="c">//   COMMENTS:</span></td></tr><tr><td class="number">97</td><td><span class="c">//</span></td></tr><tr><td class="number">98</td><td><span class="c">//        In this function, we save the instance handle in a global variable and</span></td></tr><tr><td class="number">99</td><td><span class="c">//        create and display the main program window.</span></td></tr><tr><td class="number">100</td><td><span class="c">//</span></td></tr><tr><td class="number">101</td><td>BOOL InitInstance<span class="k2">(</span>HINSTANCE hInstance, <span class="k1">int</span> nCmdShow<span class="k2">)</span></td></tr><tr><td class="number">102</td><td><span class="k2">{</span></td></tr><tr><td class="number">103</td><td>   HWND hWnd<span class="k2">;</span></td></tr><tr><td class="number">104</td><td>&#160;</td></tr><tr><td class="number">105</td><td>   hInst <span class="k3">=</span> hInstance<span class="k2">;</span> <span class="c">// Store instance handle in our global variable</span></td></tr><tr><td class="number">106</td><td>&#160;</td></tr><tr><td class="number">107</td><td>   hWnd <span class="k3">=</span> CreateWindow<span class="k2">(</span>szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,</td></tr><tr><td class="number">108</td><td>      CW_USEDEFAULT, <span class="n">0</span>, CW_USEDEFAULT, <span class="n">0</span>, NULL, NULL, hInstance, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">109</td><td>&#160;</td></tr><tr><td class="number">110</td><td>   <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>hWnd<span class="k2">)</span></td></tr><tr><td class="number">111</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">112</td><td>      <span class="k1">return</span> FALSE<span class="k2">;</span></td></tr><tr><td class="number">113</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">114</td><td>&#160;</td></tr><tr><td class="number">115</td><td>   ShowWindow<span class="k2">(</span>hWnd, nCmdShow<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">116</td><td>   UpdateWindow<span class="k2">(</span>hWnd<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">117</td><td>&#160;</td></tr><tr><td class="number">118</td><td>   <span class="k1">return</span> TRUE<span class="k2">;</span></td></tr><tr><td class="number">119</td><td><span class="k2">}</span></td></tr><tr><td class="number">120</td><td>&#160;</td></tr><tr><td class="number">121</td><td><span class="c">//</span></td></tr><tr><td class="number">122</td><td><span class="c">//  FUNCTION: WndProc(HWND, unsigned, WORD, LONG)</span></td></tr><tr><td class="number">123</td><td><span class="c">//</span></td></tr><tr><td class="number">124</td><td><span class="c">//  PURPOSE:  Processes messages for the main window.</span></td></tr><tr><td class="number">125</td><td><span class="c">//</span></td></tr><tr><td class="number">126</td><td><span class="c">//  WM_COMMAND  - process the application menu</span></td></tr><tr><td class="number">127</td><td><span class="c">//  WM_PAINT  - Paint the main window</span></td></tr><tr><td class="number">128</td><td><span class="c">//  WM_DESTROY  - post a quit message and return</span></td></tr><tr><td class="number">129</td><td><span class="c">//</span></td></tr><tr><td class="number">130</td><td><span class="c">//</span></td></tr><tr><td class="number">131</td><td>LRESULT CALLBACK WndProc<span class="k2">(</span>HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam<span class="k2">)</span></td></tr><tr><td class="number">132</td><td><span class="k2">{</span></td></tr><tr><td class="number">133</td><td>  <span class="k1">int</span> wmId, wmEvent<span class="k2">;</span></td></tr><tr><td class="number">134</td><td>  PAINTSTRUCT ps<span class="k2">;</span></td></tr><tr><td class="number">135</td><td>  HDC hdc<span class="k2">;</span></td></tr><tr><td class="number">136</td><td>  TCHAR szHello<span class="k2">[</span>MAX_LOADSTRING<span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">137</td><td>  LoadString<span class="k2">(</span>hInst, IDS_HELLO, szHello, MAX_LOADSTRING<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">138</td><td>&#160;</td></tr><tr><td class="number">139</td><td>  <span class="k1">switch</span> <span class="k2">(</span>message<span class="k2">)</span> </td></tr><tr><td class="number">140</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">141</td><td>    <span class="k1">case</span> WM_COMMAND:</td></tr><tr><td class="number">142</td><td>      wmId    <span class="k3">=</span> LOWORD<span class="k2">(</span>wParam<span class="k2">)</span><span class="k2">;</span> </td></tr><tr><td class="number">143</td><td>      wmEvent <span class="k3">=</span> HIWORD<span class="k2">(</span>wParam<span class="k2">)</span><span class="k2">;</span> </td></tr><tr><td class="number">144</td><td>      <span class="c">// Parse the menu selections:</span></td></tr><tr><td class="number">145</td><td>      <span class="k1">switch</span> <span class="k2">(</span>wmId<span class="k2">)</span></td></tr><tr><td class="number">146</td><td>      <span class="k2">{</span></td></tr><tr><td class="number">147</td><td>        <span class="k1">case</span> IDM_ABOUT:</td></tr><tr><td class="number">148</td><td>           DialogBox<span class="k2">(</span>hInst, <span class="k2">(</span>LPCTSTR<span class="k2">)</span>IDD_ABOUTBOX, hWnd, <span class="k2">(</span>DLGPROC<span class="k2">)</span>About<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">149</td><td>           <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">150</td><td>        <span class="k1">case</span> IDM_EXIT:</td></tr><tr><td class="number">151</td><td>           DestroyWindow<span class="k2">(</span>hWnd<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">152</td><td>           <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">153</td><td>        default:</td></tr><tr><td class="number">154</td><td>           <span class="k1">return</span> DefWindowProc<span class="k2">(</span>hWnd, message, wParam, lParam<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">155</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">156</td><td>      <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">157</td><td>    <span class="k1">case</span> WM_PAINT:</td></tr><tr><td class="number">158</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">159</td><td>      <span class="c">// TODO: Add any drawing code here...</span></td></tr><tr><td class="number">160</td><td>      RECT rt<span class="k2">;</span></td></tr><tr><td class="number">161</td><td>      GetClientRect<span class="k2">(</span>hWnd, <span class="k3">&amp;</span>rt<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">162</td><td>      DrawText<span class="k2">(</span>hdc, szHello, <a href="http://www.delorie.com/djgpp/doc/libc/libc_764.html" target="_blank">strlen</a><span class="k2">(</span>szHello<span class="k2">)</span>, <span class="k3">&amp;</span>rt, DT_CENTER<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">163</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">164</td><td>      <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">165</td><td>    <span class="k1">case</span> WM_DESTROY:</td></tr><tr><td class="number">166</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">167</td><td>      <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">168</td><td>    default:</td></tr><tr><td class="number">169</td><td>      <span class="k1">return</span> DefWindowProc<span class="k2">(</span>hWnd, message, wParam, lParam<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">170</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">171</td><td>   <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">172</td><td><span class="k2">}</span></td></tr><tr><td class="number">173</td><td>&#160;</td></tr><tr><td class="number">174</td><td><span class="c">// Mesage handler for about box.</span></td></tr><tr><td class="number">175</td><td>LRESULT CALLBACK About<span class="k2">(</span>HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam<span class="k2">)</span></td></tr><tr><td class="number">176</td><td><span class="k2">{</span></td></tr><tr><td class="number">177</td><td>  <span class="k1">switch</span> <span class="k2">(</span>message<span class="k2">)</span></td></tr><tr><td class="number">178</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">179</td><td>    <span class="k1">case</span> WM_INITDIALOG:</td></tr><tr><td class="number">180</td><td>        <span class="k1">return</span> TRUE<span class="k2">;</span></td></tr><tr><td class="number">181</td><td>&#160;</td></tr><tr><td class="number">182</td><td>    <span class="k1">case</span> WM_COMMAND:</td></tr><tr><td class="number">183</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> IDOK <span class="k3">|</span><span class="k3">|</span> LOWORD<span class="k2">(</span>wParam<span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> IDCANCEL<span class="k2">)</span> </td></tr><tr><td class="number">184</td><td>      <span class="k2">{</span></td></tr><tr><td class="number">185</td><td>        EndDialog<span class="k2">(</span>hDlg, LOWORD<span class="k2">(</span>wParam<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">186</td><td>        <span class="k1">return</span> TRUE<span class="k2">;</span></td></tr><tr><td class="number">187</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">188</td><td>      <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">189</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">190</td><td>    <span class="k1">return</span> FALSE<span class="k2">;</span></td></tr><tr><td class="number">191</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Obviously you&#39;ll lose that cross-platform ability
</p></div></div><p>

Yes, I am working only on Windows at the moment.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul whoknows)</author>
		<pubDate>Sat, 26 Nov 2005 09:16:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I don&#39;t know WIN32 API. I tried learning it with DirectX 6 but it was a mistake at my level. I learnt most of the Windows programming stuff via Visual Basic 6.</p><p>Look at these functions (and others) described in the Allegro Manual:
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/win_set_window" target="_blank"><span class="a">win_set_window</span></a><span class="k2">(</span>HWND wnd<span class="k2">)</span><span class="k2">;</span>

<a href="http://www.allegro.cc/manual/blit_to_hdc" target="_blank"><span class="a">blit_to_hdc</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bitmap, HDC dc, <span class="k1">int</span> sx, sy, dx, dy, w, h<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Archon)</author>
		<pubDate>Sat, 26 Nov 2005 09:45:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It would be possible to write a wrapper for this purpose instead? so I can keep my code 100% allegro-friendly:D, those win32 code lines hurts my eyes badly every time I see them:(
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul whoknows)</author>
		<pubDate>Sat, 26 Nov 2005 11:03:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
It would be possible to write a wrapper for this purpose instead?
</p></div></div><p>
Just a question, are you going to be using the WIN32 widgets only for a map editor? If so, I personally would have just have used C# or VB.NET which is almost as easy as VB6 to do form based applications.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Archon)</author>
		<pubDate>Sat, 26 Nov 2005 15:45:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Just a question, are you going to be using the WIN32 widgets only for a map editor?
</p></div></div><p>

A &quot;map editor&quot; is not what I have in mind, a complex level editor instead, you know (tiles, objects placement, enemies, AI, mission creation, routes, story, etc).<br />Now I am open to suggestions about which allegro GUI should I try for my level editor (it has to allow comercial usage).<br />I won&#39;t give up so easily;), but now I am working in a prototype and I think it would be stupid to waste my time in such silly details.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I personally would have just have used C# or VB.NET which is almost as easy as VB6
</p></div></div><p>

I want to make my level editor interactive, so the game &quot;engine&quot; has to be running inside the level editor
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul whoknows)</author>
		<pubDate>Sun, 27 Nov 2005 00:19:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Why not use QT4 Open Source for Mingw? GUI for all OSes and skinnable too?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sun, 27 Nov 2005 10:15:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Can you give me a link?<br />Also I am thinking to change from MSVC6 to MingW, but I don&#39;t know where to start:-/<br />Can you give me some advice to install Mingw with Dev-c?</p><p>[EDIT]</p><p>It seems that QT is something more than a GUI, and it is <a href="http://www.trolltech.com/products/qt/pricing.html">expensive!</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul whoknows)</author>
		<pubDate>Sun, 27 Nov 2005 10:52:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
It seems that QT is something more than a GUI
</p></div></div><p>So is Win32.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
and it is expensive!
</p></div></div><p>
Expensive, IF you dont want to use the GPL version. Othwerwise its free for linux, osx, and windows.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Sun, 27 Nov 2005 11:46:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Also I am thinking to change from MSVC6 to MingW, but I don&#39;t know where to start:-/<br />Can you give me some advice to install Mingw with Dev-c?
</p></div></div><p>
Dev-C++ would come with MinGW unless you get the one that says &quot;IDE only&quot; or &quot;compiler not included&quot;.</p><p>It&#39;s so simple that I did it <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Archon)</author>
		<pubDate>Sun, 27 Nov 2005 18:54:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Look in /allegro/tests/win for some examples that use regular windows programming stuff along with allegro.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Sun, 27 Nov 2005 23:23:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That&#39;s exactly what I wanted!, a true win32-allegro hybrid program.<br />It seems dibsound.c is the first program featuring resizable windows and a system menu bar using allegro... and win32<br />Thanks guys!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul whoknows)</author>
		<pubDate>Mon, 28 Nov 2005 11:12:38 +0000</pubDate>
	</item>
</rss>
