PDA

Vollständige Version anzeigen : Ein paar Fragen


TRT
10.10.2004, 07:45
1.

Wenn ich mehrere Dialogfelder habe(MFC) wie kann ich dann zu einem anderen wechseln? Angenommen: ich habe dialogfeld 1 und Dialogfeld2
dann möchte ich zu dem anderen wechseln wie kann ich dass programmieren?

2.

Wie kann ich machen dass mein programm bei dem Windowstart wieder aufgerufen wird?

3.

Welchen Code hat der Befehl dass meine datein nicht minimiert sonder ganz unten rechts sind?

TRT
10.10.2004, 10:14
Außerdem bräuchte ich den Code zum CD öfnnen.

Noodles
10.10.2004, 12:07
1.
Wenn ich mehrere Dialogfelder habe(MFC) wie kann ich dann zu einem anderen wechseln? Angenommen: ich habe dialogfeld 1 und Dialogfeld2
dann möchte ich zu dem anderen wechseln wie kann ich dass programmieren?

CDeinDialog* m_pDeinDialog = new CDeinDialog();
m_pDeinDialog->DoModal();


2.
Wie kann ich machen dass mein programm bei dem Windowstart wieder aufgerufen wird?

Windows-Dienst?


3.
Welchen Code hat der Befehl dass meine datein nicht minimiert sonder ganz unten rechts sind?
TrayIcon (http://www.c-plusplus.de/forum/viewtopic.php?t=39045)

Außerdem bräuchte ich den Code zum CD öfnnen.
Such mal nach: mciSendString("set CDAudio door open" ... ), damit ging das, ich weiß aber nicht mehr genau wie.

TRT
13.10.2004, 15:47
Hat sich alles erledigt bis auf eines:

Kann mir jemand den code geben um VB dateien in die Systrayleiste zu bringen?

Stefan Kulpa
14.10.2004, 06:46
Was verstehst du unter "VB Dateien"?

TRT
14.10.2004, 16:44
Visual Basic programme (VB=Visual basic)

Ich krieg alles nicht hin

kann mir jemand ein Visual basic Programm an trt.keller@freenet.de schicken in dem wenn man es startet es minimiert ins systray geht.

Stefan Kulpa
14.10.2004, 17:00
Dafür gibt's jede Menge Beispiele im Netz, z.B. hier (http://www.vbarchiv.net/archiv/tipp_details.php?pid=517).

HTH

TRT
14.10.2004, 17:41
Schau dir mal dass an!!!

Ich krieg das nicht hin!:




Öff schlieDlg.cpp
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(122) : error C2001: Zeilenumbruch innerhalb einer Konstanten
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(122) : error C2015: Zu viele Zeichen in der Konstante
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(122) : error C2065: 'Option' : nichtdeklarierter Bezeichner
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(122) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'Explicit'
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(122) : error C2065: 'Explicit' : nichtdeklarierter Bezeichner
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(122) : error C2143: Syntaxfehler : Fehlendes ';' vor 'constant'
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(123) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'Public'
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(123) : error C2065: 'Public' : nichtdeklarierter Bezeichner
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(123) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'Declare'
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(123) : error C2065: 'Declare' : nichtdeklarierter Bezeichner
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(123) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'Sub'
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(123) : error C2065: 'Sub' : nichtdeklarierter Bezeichner
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(123) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'keybd_event'
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(123) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'Lib'
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(123) : warning C4551: Dem Funktionsaufruf fehlt die Argumentliste
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(123) : error C2065: 'Lib' : nichtdeklarierter Bezeichner
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(123) : error C2143: Syntaxfehler : Fehlendes ';' vor 'string'
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(124) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner '_'
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(124) : error C2065: '_' : nichtdeklarierter Bezeichner
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(124) : error C2065: 'ByVal' : nichtdeklarierter Bezeichner
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(124) : error C2146: Syntaxfehler : Fehlendes ')' vor Bezeichner 'bVk'
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(125) : error C2059: Syntaxfehler : ')'
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(150) : error C2001: Zeilenumbruch innerhalb einer Konstanten
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(150) : error C2015: Zu viele Zeichen in der Konstante
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(151) : error C2001: Zeilenumbruch innerhalb einer Konstanten
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(151) : error C2015: Zu viele Zeichen in der Konstante
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(152) : error C2001: Zeilenumbruch innerhalb einer Konstanten
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(152) : error C2015: Zu viele Zeichen in der Konstante
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(153) : error C2001: Zeilenumbruch innerhalb einer Konstanten
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(153) : error C2015: Zu viele Zeichen in der Konstante
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(155) : error C2001: Zeilenumbruch innerhalb einer Konstanten
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(155) : error C2015: Zu viele Zeichen in der Konstante
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(156) : error C2001: Zeilenumbruch innerhalb einer Konstanten
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(156) : error C2015: Zu viele Zeichen in der Konstante
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(157) : error C2001: Zeilenumbruch innerhalb einer Konstanten
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(157) : error C2015: Zu viele Zeichen in der Konstante
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(158) : error C2001: Zeilenumbruch innerhalb einer Konstanten
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(158) : error C2015: Zu viele Zeichen in der Konstante
C:\Programme\Microsoft Visual Studio\MyProjects\Öff schlie\Öff schlieDlg.cpp(167) : warning C4035: 'OnInitDialog' : Kein Rueckgabewert
Fehler beim Ausführen von cl.exe.

Öff schlie.exe - 37 Fehler, 2 Warnung(en)


weiter:

derCode:


// Öff schlieDlg.cpp : Implementierungsdatei
//

#include "stdafx.h"
#include "Öff schlie.h"
#include "Öff schlieDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg-Dialogfeld für Anwendungsbefehl "Info"

class CAboutDlg : public CDialog
{
public:
CAboutDlg();

// Dialogfelddaten
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA

// Vom Klassenassistenten generierte Überladungen virtueller Funktionen
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung
//}}AFX_VIRTUAL

// Implementierung
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// Keine Nachrichten-Handler
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFfschlieDlg Dialogfeld

CFfschlieDlg::CFfschlieDlg(CWnd* pParent /*=NULL*/)
: CDialog(CFfschlieDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CFfschlieDlg)
// HINWEIS: Der Klassenassistent fügt hier Member-Initialisierung ein
//}}AFX_DATA_INIT
// Beachten Sie, dass LoadIcon unter Win32 keinen nachfolgenden DestroyIcon-Aufruf benötigt
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CFfschlieDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFfschlieDlg)
// HINWEIS: Der Klassenassistent fügt an dieser Stelle DDX- und DDV-Aufrufe ein
//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CFfschlieDlg, CDialog)
//{{AFX_MSG_MAP(CFfschlieDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFfschlieDlg Nachrichten-Handler

BOOL CFfschlieDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// Hinzufügen des Menübefehls "Info..." zum Systemmenü.

// IDM_ABOUTBOX muss sich im Bereich der Systembefehle befinden.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}

// Symbol für dieses Dialogfeld festlegen. Wird automatisch erledigt
// wenn das Hauptfenster der Anwendung kein Dialogfeld ist
SetIcon(m_hIcon, TRUE); // Großes Symbol verwenden
SetIcon(m_hIcon, FALSE); // Kleines Symbol verwenden

// ZU ERLEDIGEN: Hier zusätzliche Initialisierung einfügen

Option Explicit

' alle benötigten API-Deklarationen
Public Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, ByVal bScan As Byte, _
ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Public Const KEYEVENTF_KEYUP = &H2
Public Const VK_LWIN = &H5B

Public Type NOTIFYICONDATA
cbSize As Long
hWnd As Long
uId As Long
uFlags As Long
uCallBackMessage As Long
hIcon As Long
szTip As String * 64
End Type

Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2

Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4

Public Const WM_MOUSEMOVE = &H200

' Konstanten für linke Maustaste
Public Const WM_LBUTTONDBLCLK = &H203 ' Doppelklick
Public Const WM_LBUTTONDOWN = &H201 ' Maus gedrückt
Public Const WM_LBUTTONUP = &H202 ' Maus losgelassen

' Konstanten für rechte Maustaste
Public Const WM_RBUTTONDBLCLK = &H206 ' Doppelklick
Public Const WM_RBUTTONDOWN = &H204 ' Maus gedrückt
Public Const WM_RBUTTONUP = &H205 ' Maus losgelassen

Public Declare Function Shell_NotifyIcon Lib _
"shell32" Alias "Shell_NotifyIconA" ( _
ByVal dwMessage As Long, _
pnid As NOTIFYICONDATA) As Boolean

Public nid As NOTIFYICONDATA
return TRUE; // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten
}

void CFfschlieDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}

// Wollen Sie Ihrem Dialogfeld eine Schaltfläche "Minimieren" hinzufügen, benötigen Sie
// den nachstehenden Code, um das Symbol zu zeichnen. Für MFC-Anwendungen, die das
// Dokument/Ansicht-Modell verwenden, wird dies automatisch für Sie erledigt.

void CFfschlieDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // Gerätekontext für Zeichnen

SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

// Symbol in Client-Rechteck zentrieren
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;

// Symbol zeichnen
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}

// Die Systemaufrufe fragen den Cursorform ab, die angezeigt werden soll, während der Benutzer
// das zum Symbol verkleinerte Fenster mit der Maus zieht.
HCURSOR CFfschlieDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
[QUOTE]

Stefan Kulpa
14.10.2004, 18:29
Mitten im C++ Code eine VB-Routine inkl. API-Deklarationen?
Was soll das denn werden?

TRT
14.10.2004, 18:57
das war ein code denn ich gefunden habe aber die anderen funktionieren auch nicht.

Und insgesamt soll es ein programm werden dass das CD rom laufwerk auf und zugehen lässt.

Stefan Kulpa
15.10.2004, 05:15
Mangels ausreichenden C++ Kenntnissen kann ich dir dafür höchstens einen "reinen VB-Code" liefern. Der "Sprachmix" - wie dargestellt - kann m.w. so eh nicht funktionieren.
Für VB-Code brauchst du allerdings einen VB-Compiler (sprich: eine Vollversion von Visual Basic 6).

Übrigens der C++ Code stellt nur Fragmente eines Programmes dar - da wird kein CD-ROM Laufwerk geöffnet oder geschlossen.

TRT
15.10.2004, 09:46
Ich weiß dass kein CD Laufwerk geöffnet wird dass hab ich schon geschafft aber noch nicht eingebaut und ich hab mich vertan ich Meine VS Visual Studio und ich hab jetzt einfach den letzten Code den ich einfach aus verzweiflung reinkopiert hab rauskopiert.