i'LL POST THREE pieces 1) the oninitdialog of the parent Cdialog 2) the Steamin 3) resource file Tell me if you want to see more thanks you
BOOL CStorge::OnInitDialog()
{
int numolines;
storagepointer = new CRichEditCtrl;
CDialog::OnInitDialog();
CHARFORMAT cf2 = { 0 };
STREAMIN((WPARAM)storage_ptr, (LPARAM)storagelen);
storagepointer->SetSel(0, -1);
cf2.cbSize = sizeof(cf2);
cf2.dwMask = CFM_FACE | CFM_PROTECTED;
cf2.dwEffects = CFE_PROTECTED;
memcpy(&cf2.szFaceName[0], "Courier New",12);
storagepointer->SetSelectionCharFormat(cf2);
storagepointer->SetSel(0, 0);
storagepointer->ShowWindow(SW_SHOW);
ShowWindow(SW_SHOW);
return TRUE;
}
call to setup STREAMIN
LRESULT CStorge::STREAMIN(WPARAM mywparam, LPARAM mylparam)
{
char *sendptr;
sendptr = (char*)mywparam + 4;
streaminparm parms;
parms.storpointer = (char *)sendptr;
parms.storlen = (int)mylparam;
EDITSTREAM STORAGESTREAM;
STORAGESTREAM.pfnCallback = storagestreamin;
STORAGESTREAM.dwCookie = mywparam;
STORAGESTREAM.dwCookie = (DWORD_PTR) &parms;
long numstream = storagepointer->StreamIn(SF_TEXT,STORAGESTREAM);
return TRUE;
}
the Streamin function
DWORD storagestreamin(DWORD_PTR dwCookie,
LPBYTE pbBuff,
LONG cb,
LONG* pcb)
{
static BOOL flag = 0;
if (flag == 0)
flag = 1;
else
{
*pcb = 0;
flag = 0;
return 0;
}
int i;
streaminparm* inparms = (streaminparm *)dwCookie;
void* holdptr = inparms->storpointer;
char* holdptr1 = (char*)pbBuff;
int totalen = inparms->storlen;
memcpy((char *)pbBuff, "This is a test\r\n",16);
*pcb = 16;
return 0;
for (i = 0; i < totalen; i += storageline)
{
memcpy(holdptr1, holdptr, storageline);
holdptr = (char*)holdptr + storageline;
holdptr1 = (char*)holdptr1 + storageline;
*holdptr1 = '\r';
holdptr1 = (char*)holdptr1 + 1;
*holdptr1 = '\n';
*pcb += 74;
}
return 0;
}
the Dataexchange member to create the rich edit HWND
void CStorge::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_ASID, asidstr);
DDX_Text(pDX, IDC_SP, spstr);
DDX_Text(pDX, IDC_TCB, tcbstr);
DDX_Text(pDX, IDC_FP, fpstr);
DDX_Control(pDX, IDC_EDIT2, (CWnd&) *storagepointer);
}
The resource indentfier of the cdialog with richedit
IDD_DIALOG10 DIALOGEX 0, 0, 769, 429
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "Storage View / Change"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
CTEXT "",IDC_TCB,45,30,47,8
CTEXT "OwnIng TCB",IDC_STATIC,41,13,58,8
CTEXT "",IDC_SP,164,28,43,8
CTEXT "Storage SubPool",IDC_STATIC,162,12,55,8
CTEXT "",IDC_ASID,265,26,32,8
CTEXT "Asid",IDC_STATIC,269,9,31,8
CTEXT "",IDC_FP,399,31,19,8
CTEXT "Fetch Protect Key",IDC_STATIC,392,15,63,8
CONTROL "",IDC_CUSTOM5,"PieCOntrol",WS_TABSTOP,617,99,109,109
COMBOBOX IDC_COMBO1,491,236,48,30,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
CONTROL "",IDC_EDIT2,"RichEdit20A",ES_MULTILINE | WS_BORDER | WS_TABSTOP | WS_VISIBLE, 45,106,494,314 THE RICH EDIT
EDITTEXT IDC_EDIT1,45,110,494,314,ES_AUTOHSCROLL
COMBOBOX IDC_COMBO2,637,244,67,16,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
LISTBOX IDC_LIST2,641,310,68,11,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
END
|