| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Fenster (Win-Form) erstellen (2580 mal gelesen)
|
THE_ONE Mitglied Student, Alter:23
Beiträge: 299 Registriert: 27.04.2005 AMD XP 2000, 512MB-RAM, WIN XP Pro Readon 9600Pro VIZ 2005, Autocad 2005
|
erstellt am: 17. Dez. 2006 23:17 <-- editieren / zitieren --> Unities abgeben:
Hallo! Weiß jemand ein Tutorial, oder wo einem gezeigt wird wie man so ein Fenster wie das, dass sich z.B. beim Blockeinfüge Befehl öffnet selber macht. Oder weiß jemand ein paar Zeilen Code die mir helfen würden?? MFG THE_ONE Ps: Hab jetzt gesehen das es ein MFC Tutorial gibt bei ARX for Dummies [Diese Nachricht wurde von THE_ONE am 18. Dez. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
THE_ONE Mitglied Student, Alter:23
Beiträge: 299 Registriert: 27.04.2005 AMD XP 2000, 512MB-RAM, WIN XP Pro Readon 9600Pro VIZ 2005, Autocad 2005
|
erstellt am: 18. Dez. 2006 23:00 <-- editieren / zitieren --> Unities abgeben:
So! Hätte jetzt den MFC Blog von ARX DUmmies gelesen aber irgendwie komme ich da auf keine grünen Zweig! Irgendwie habe ich das gefühl das er ziemlich viel überspringt! Denn das was in diesem Blog steht, das erzeugt mir der ARX Wizard automatisch. Was muss ich jetzt dazuschreiben damit sich so ein Fenster öffnet?? und überhaupt wie lege ich fest mit welchem Befehl er das Fenster öffnet? Mal was grundsätzliches, wann erzeuge ich eigentlich eine ARX, DBX und DLL Datei. Von wo weiß ich was ich erzeugen muss?? Sind das eigentlich nur Dateiendungen oder erzeugt der Compiler auch anderen CODE?? MFG THE_ONE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
criecky Mitglied MENSCH
Beiträge: 251 Registriert: 13.01.2004 ACAD 2011- 2017 www.cbyte.eu
|
erstellt am: 19. Dez. 2006 11:31 <-- editieren / zitieren --> Unities abgeben: Nur für THE_ONE
hallo, am einfachsten ist es, wenn du deinen dialog einer bestehenden dialogklasse ableitest. wie zb. von CDialog oder besser von CAcUiDialog ( Code: class CPreviewBlockDialog : public CAcUiDialog
). Dann erzeugst du ein objekt mittels Code: CPreviewBlockDialog MyBlockDialot;
und rufst deinen dialog über Code: CPreviewBlockDialog.DoModal();
auf. Wenn du mehr infos möchtest schau einfach mal in den mfc, bei cdialog oder google danach.DBX und ARX und DLL sind IMHO gleich im aufbau ..... also eine arx ist das gleiche wie eine dll. eine dbx muss zusätzlich noch registriert werden und wird benutzt um neu objekt (z.b. wand, fenster) zu erzeugen. gruss criecky ------------------ Softlan macht das Netzwerk weich! www.cbyte.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
THE_ONE Mitglied Student, Alter:23
Beiträge: 299 Registriert: 27.04.2005 AMD XP 2000, 512MB-RAM, WIN XP Pro Readon 9600Pro VIZ 2005, Autocad 2005
|
erstellt am: 19. Dez. 2006 16:13 <-- editieren / zitieren --> Unities abgeben:
Hi! Besten Dank, leider bekomme ich da immer folgende Fehlermeldung!
Code: c:\lab\stepmfc\stepmfc\stepmfc.cpp(68) : error C2512: 'CPreviewBlockDialog': Kein geeigneter Standardkonstruktor verfügbar
mein Code sieht so aus:
Code:
#include "StdAfx.h" #include "resource.h" #include <afxdllx.h> #include <acuiDialog.h> #include "AcExtensionModule.h" //----------------------------------------------------------------------------- //- Define the sole extension module object. AC_IMPLEMENT_EXTENSION_MODULE(stepMFCDLL) //- Please do not remove the 3 following lines. These are here to make .NET MFC Wizards //- running properly. The object will not compile but is require by .NET to recognize //- this project as being an MFC project #ifdef NEVER AFX_EXTENSION_MODULE stepMFCExtDLL ={ NULL, NULL } ; #endifclass CPreviewBlockDialog : public CAcUiDialog { }; //- Now you can use the CAcModuleResourceOverride class in //- your application to switch to the correct resource instance. //- Please see the ObjectARX Documentation for more details //----------------------------------------------------------------------------- //- DLL Entry Point
void testCreate() { CPreviewBlockDialog MyBlockDialot; CPreviewBlockDialog.DoModal(); } extern "C" BOOL WINAPI DllMain (HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) { //- Remove this if you use lpReserved UNREFERENCED_PARAMETER(lpReserved) ; if ( dwReason == DLL_PROCESS_ATTACH ) { _hdllInstance =hInstance ; stepMFCDLL.AttachInstance (hInstance) ; InitAcUiDLL () ; } else if ( dwReason == DLL_PROCESS_DETACH ) { stepMFCDLL.DetachInstance () ; } return (TRUE) ; }
Wird der Konstruktor nicht mitvererbt? Oder verwende ich den Konstruktor falsch? Wie gehts richtig? Vielleicht kann mir ja wer helfen. MFG THE_ONE
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
criecky Mitglied MENSCH
Beiträge: 251 Registriert: 13.01.2004 ACAD 2011- 2017 www.cbyte.eu
|
erstellt am: 20. Dez. 2006 09:57 <-- editieren / zitieren --> Unities abgeben: Nur für THE_ONE
|
THE_ONE Mitglied Student, Alter:23
Beiträge: 299 Registriert: 27.04.2005 AMD XP 2000, 512MB-RAM, WIN XP Pro Readon 9600Pro VIZ 2005, Autocad 2005
|
erstellt am: 20. Dez. 2006 13:51 <-- editieren / zitieren --> Unities abgeben:
Hi! Das sollte dann also so aussehen (kann es leider ned probieren da ich grad kein ACAD und kein VS bei der Hand hab): Code: class CPreviewBlockDialog : public CAcUiDialog { CPreviewBlockDialog(CWnd* pParent = NULL); };
ist das dann alles? also die Objekterstellung änder sich also nicht??
Code: CPreviewBlockDialog MyBlockDialot;
bleibt also gleich. MFG THE_ONEEine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
criecky Mitglied MENSCH
Beiträge: 251 Registriert: 13.01.2004 ACAD 2011- 2017 www.cbyte.eu
|
erstellt am: 20. Dez. 2006 18:37 <-- editieren / zitieren --> Unities abgeben: Nur für THE_ONE
di object erstellung ändert sich nicht. aber die def. des kostruktors musst du schon anpasssen. z.b. Code: CPreviewBlockDialog::CPreviewBlockDialog(CWnd* pParent /*=NULL*/) : CAcUiDialog(CPreviewBlockDialog::IDD, pParent) { }
schau einfach mal unter samples\graphics\Blockview im sdk. gruss criecky ------------------ Softlan macht das Netzwerk weich! www.cbyte.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
THE_ONE Mitglied Student, Alter:23
Beiträge: 299 Registriert: 27.04.2005 AMD XP 2000, 512MB-RAM, WIN XP Pro Readon 9600Pro VIZ 2005, Autocad 2005
|
erstellt am: 21. Dez. 2006 12:29 <-- editieren / zitieren --> Unities abgeben:
Hi! Hab den Konstruktor wie du gesagt hast geändert:
Code: class CPreviewBlockDialog : public CAcUiDialog { public: CPreviewBlockDialog(CWnd* pParent /*=NULL*/): CAcUiDialog(CPreviewBlockDialog::IDD, pParent) { } };
und habe dann ein Objekt erstellt und dann die Methode DoModal aufgerufen!
Code:
void testCreate() { CPreviewBlockDialog MyBlockDialot(NULL); MyBlockDialot.DoModal(); }
Dank deiner Hilfe kompiliert jetzt das ganze ohne Fehler nur leider wenn ich dann das ganze ausführe öffnet sich kein Fenster es tut sich einfach nichts!MFG THE_ONE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |