<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Probleme mit Klasse [Subclasse]]]></title><description><![CDATA[<pre><code class="language-cpp">class Button
{
	//eigene Proc
	friend LRESULT CALLBACK ButtonProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
	{
		   switch (message)
		   {
				case WM_CREATE:
					{
						getId();
						break;  
					}
		   }
		 return CallWindowProc ((WNDPROC) WndProc, hWnd, message, wParam, lParam);
	}

	public:
		//Variablen
		 char szAppName[20]; 
		 HINSTANCE	m_hInstance;
		 HWND			m_hWnd;
		 BITMAP		m_bitmap; 
		  HBITMAP		m_hBitmap;
		 WNDPROC  WindowsProc;
		 int m_idBitmap;

		//Methoden
		Button(HINSTANCE hInstance, int id_bitmap)
		{
			//Klasse definieren
			 strcpy(szAppName, &quot;blablA&quot;);
			 WNDCLASS     wndclass ; 
			 wndclass.style         = CS_HREDRAW | CS_VREDRAW ; 
			 wndclass.lpfnWndProc   = ButtonProc ; 
			 wndclass.cbClsExtra    = 0 ; 
			 wndclass.cbWndExtra    = 0 ; 
			 wndclass.hInstance     = hInstance ; 
			 wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ; 
			 wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ; 
			 wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; 
			 wndclass.lpszMenuName  = NULL ; 
			 wndclass.lpszClassName = szAppName ; 
			 if (!RegisterClass (&amp;wndclass))  MessageBox (NULL, TEXT (&quot;Programm arbeitet mit Unicode und setzt Windows NT voraus!&quot;), 0, MB_ICONERROR) ; 
			 //Variablen binden
			 m_hWnd = CreateWindow (szAppName, 0, 
                          WS_OVERLAPPEDWINDOW, 
                          CW_USEDEFAULT, CW_USEDEFAULT, 
                          CW_USEDEFAULT, CW_USEDEFAULT, 
                          NULL, NULL, hInstance, NULL) ; 
			 m_hInstance=hInstance;
			 m_idBitmap=id_bitmap;

			 //Windows Proc sichern
			 WindowsProc = (WNDPROC)SetWindowLong (m_hWnd, GWL_WNDPROC, (LONG)ButtonProc);
		}
		int getId()
		{
			return m_idBitmap;
		}
};
</code></pre>
<blockquote>
<ol start="14">
<li>: error C2352: 'Button::getId' : illegal call of non-static member function<br />
E:\Programmierung\C++\winapi2\m.cpp(60) : see declaration of 'getId'</li>
</ol>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/topic/96016/probleme-mit-klasse-subclasse</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 23:51:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/96016.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 26 Dec 2004 23:52:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit Klasse [Subclasse] on Sun, 26 Dec 2004 23:52:27 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class Button
{
	//eigene Proc
	friend LRESULT CALLBACK ButtonProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
	{
		   switch (message)
		   {
				case WM_CREATE:
					{
						getId();
						break;  
					}
		   }
		 return CallWindowProc ((WNDPROC) WndProc, hWnd, message, wParam, lParam);
	}

	public:
		//Variablen
		 char szAppName[20]; 
		 HINSTANCE	m_hInstance;
		 HWND			m_hWnd;
		 BITMAP		m_bitmap; 
		  HBITMAP		m_hBitmap;
		 WNDPROC  WindowsProc;
		 int m_idBitmap;

		//Methoden
		Button(HINSTANCE hInstance, int id_bitmap)
		{
			//Klasse definieren
			 strcpy(szAppName, &quot;blablA&quot;);
			 WNDCLASS     wndclass ; 
			 wndclass.style         = CS_HREDRAW | CS_VREDRAW ; 
			 wndclass.lpfnWndProc   = ButtonProc ; 
			 wndclass.cbClsExtra    = 0 ; 
			 wndclass.cbWndExtra    = 0 ; 
			 wndclass.hInstance     = hInstance ; 
			 wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ; 
			 wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ; 
			 wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; 
			 wndclass.lpszMenuName  = NULL ; 
			 wndclass.lpszClassName = szAppName ; 
			 if (!RegisterClass (&amp;wndclass))  MessageBox (NULL, TEXT (&quot;Programm arbeitet mit Unicode und setzt Windows NT voraus!&quot;), 0, MB_ICONERROR) ; 
			 //Variablen binden
			 m_hWnd = CreateWindow (szAppName, 0, 
                          WS_OVERLAPPEDWINDOW, 
                          CW_USEDEFAULT, CW_USEDEFAULT, 
                          CW_USEDEFAULT, CW_USEDEFAULT, 
                          NULL, NULL, hInstance, NULL) ; 
			 m_hInstance=hInstance;
			 m_idBitmap=id_bitmap;

			 //Windows Proc sichern
			 WindowsProc = (WNDPROC)SetWindowLong (m_hWnd, GWL_WNDPROC, (LONG)ButtonProc);
		}
		int getId()
		{
			return m_idBitmap;
		}
};
</code></pre>
<blockquote>
<ol start="14">
<li>: error C2352: 'Button::getId' : illegal call of non-static member function<br />
E:\Programmierung\C++\winapi2\m.cpp(60) : see declaration of 'getId'</li>
</ol>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/681377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/681377</guid><dc:creator><![CDATA[hmmmm]]></dc:creator><pubDate>Sun, 26 Dec 2004 23:52:27 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Klasse [Subclasse] on Mon, 27 Dec 2004 07:01:30 GMT]]></title><description><![CDATA[<p>buttonproc ist kein teil von button. und vorallem: von welcher instanz von button sollte denn getId() aufgerufen werden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/681411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/681411</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Mon, 27 Dec 2004 07:01:30 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Klasse [Subclasse] on Mon, 27 Dec 2004 16:52:36 GMT]]></title><description><![CDATA[<p>Natürlich ist ButtonProc ein Teil v. Button! - Die Funktion steht in d. Klassendefinition.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/681574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/681574</guid><dc:creator><![CDATA[lol?]]></dc:creator><pubDate>Mon, 27 Dec 2004 16:52:36 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Klasse [Subclasse] on Tue, 28 Dec 2004 01:00:35 GMT]]></title><description><![CDATA[<p>Trotzdem gibt es einen Unterschied zwischen member und non-member Funktion. wndclass.lpfnWndProc akzeptiert nunmal nur einen non-member Funktionszeiger. getId() kannst du aber ohne Instanz nur aus einer member Funktion heraus aufrufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/681776</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/681776</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Tue, 28 Dec 2004 01:00:35 GMT</pubDate></item></channel></rss>