DQD - 2006-04-04

Hallo zusammen, seit ein paar Tage versuche ich einen DLL Datei fur die Steuerungskonfiguration zu erstellen aber ich schaffe es nicht. Ich habe versucht einfach ein neues "Tab" zu erzeugen mit 2 KnΓΆpfe aber der Codesys v2.3 zeigt mir entweder, ein "Tab" mit nur einem Knopf oder kein "Tab". KΓΆnnte mir jemand helfen oder einen Hinweis geben?

Hier ist der Quelltext die Funktion (ich bin ganz neu mit VC++):

LPWORD lpwAlign(LPWORD lpIn)

{

ULONG ul;



ul = (ULONG)lpIn;

ul ++;

ul >>=1;

ul <<=1;

return (LPWORD)ul;

}

extern "C" __declspec(dllexport) void GetPropertySheet(PROPSHEETPAGE* ppsp){

HGLOBAL hgbl;

LPDLGTEMPLATE lpdt;

LPDLGITEMTEMPLATE lpdit;

LPWORD lpw;

LPWSTR lpwsz;

int nchar;



hgbl = GlobalAlloc(GMEM_ZEROINIT, 1024);



lpdt = (LPDLGTEMPLATE)GlobalLock(hgbl);



// Define a dialog box.



lpdt->style = WS_POPUP | WS_BORDER | WS_SYSMENU | DS_MODALFRAME | WS_CAPTION;



lpdt->cdit = 2;         // Number of controls (if 1, shows one button in the new TAB; if 2 no new TAB is shown)



lpdt->x  = 10;  lpdt->y  = 10;

lpdt->cx = 100; lpdt->cy = 100;



lpw = (LPWORD)(lpdt + 1);

*lpw++ = 0;             // No menu

*lpw++ = 0;             // Predefined dialog box class (by default)



lpwsz = (LPWSTR)lpw;

nchar = 1 + MultiByteToWideChar(CP_ACP, 0, "My Dialog", -1, lpwsz, 50);

lpw += nchar;



//-----------------------

// Define an OK button.

//-----------------------

lpw = lpwAlign(lpw);    // Align DLGITEMTEMPLATE on DWORD boundary

lpdit = (LPDLGITEMTEMPLATE)lpw;

lpdit->x  = 10; lpdit->y  = 70;

lpdit->cx = 80; lpdit->cy = 20;

lpdit->id = IDOK;       // OK button identifier

lpdit->style = WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON;



lpw = (LPWORD)(lpdit + 1);

*lpw++ = 0xFFFF;

*lpw++ = 0x0080;        // Button class



lpwsz = (LPWSTR)lpw;

nchar = 1 + MultiByteToWideChar(CP_ACP, 0, "OK", -1, lpwsz, 50);

lpw += nchar;

lpw = lpwAlign(lpw);    // Align creation data on DWORD boundary

*lpw++ = 0;             // No creation data





//-----------------------

// Define a Help button.

//-----------------------

lpw = lpwAlign(lpw);    // Align DLGITEMTEMPLATE on DWORD boundary

lpdit = (LPDLGITEMTEMPLATE)lpw;

lpdit->x  = 55; lpdit->y  = 10;

lpdit->cx = 40; lpdit->cy = 20;

lpdit->id = ID_HELP;    // Help button identifier

lpdit->style = WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON;



lpw = (LPWORD)(lpdit + 1);

*lpw++ = 0xFFFF;

*lpw++ = 0x0080;        // Button class atom



lpwsz = (LPWSTR)lpw;

nchar = 1 + MultiByteToWideChar(CP_ACP, 0, "Help", -1, lpwsz, 50);

lpw += nchar;

lpw = lpwAlign(lpw);    // Align creation data on DWORD boundary

*lpw++ = 0;             // No creation data





GlobalUnlock(hgbl);

GlobalFree(hgbl);





ppsp->pResource=lpdt;

ppsp->pfnDlgProg=MyCfgFunction;

ppsp->pszTitle="New Tab";

}