RichEdit Streamin SF_TEXT not appearing
-
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_MODALFRAMForNow wrote:
CDialog::OnInitDialog(); CHARFORMAT cf2 = { 0 }; STREAMIN((WPARAM)storage_ptr, (LPARAM)storagelen);
What is storage_ptr? Its type and value?
-
ForNow wrote:
CDialog::OnInitDialog(); CHARFORMAT cf2 = { 0 }; STREAMIN((WPARAM)storage_ptr, (LPARAM)storagelen);
What is storage_ptr? Its type and value?
-
you think thats the problem I should make it a CRicheditrl * BTW I did Call AfxRichEditInit and I did observer that storage__ptr had a Hwnd after the DoDataExange
void* storage_ptr;
ForNow wrote:
C++Copy Code void* storage_ptr;
You mean you pass an uninitialized pointer into your STREAMIN method? BTW, did you debug your code (and, particularly, this STREAMIN method)?
-
ForNow wrote:
C++Copy Code void* storage_ptr;
You mean you pass an uninitialized pointer into your STREAMIN method? BTW, did you debug your code (and, particularly, this STREAMIN method)?
The Ponter I pass to the streamin is 1) the data ptr and 2) the length of it I did debug it and it passed the value back that I wanted in pBuff and *pcb storage_ptr should be of type CrRicheditCtrl * instead of void * but it does a value and After the Call Cdialog::OnInitDialog it Called my DoDataExchage and had a valid HWND In in fact if you look at that small test when I pass "this is a test\r\n" back to pBuff and *pcb = 16 that doesn't display When I type any chanarcter in the rich edit for example a D this is a test follow it for example looks like this DThis is a test thanks
-
The Ponter I pass to the streamin is 1) the data ptr and 2) the length of it I did debug it and it passed the value back that I wanted in pBuff and *pcb storage_ptr should be of type CrRicheditCtrl * instead of void * but it does a value and After the Call Cdialog::OnInitDialog it Called my DoDataExchage and had a valid HWND In in fact if you look at that small test when I pass "this is a test\r\n" back to pBuff and *pcb = 16 that doesn't display When I type any chanarcter in the rich edit for example a D this is a test follow it for example looks like this DThis is a test thanks
I could not test your "code" because there is a lot of problems with: undeclared identifier undeclared identifier cannot convert from 'DWORD (__cdecl *)(DWORD_PTR,LPBYTE,LONG,LONG *)' to 'EDITSTREAMCALLBACK' ... and so on. Could you post a code (sample project) that would reproduce your problem?
-
I could not test your "code" because there is a lot of problems with: undeclared identifier undeclared identifier cannot convert from 'DWORD (__cdecl *)(DWORD_PTR,LPBYTE,LONG,LONG *)' to 'EDITSTREAMCALLBACK' ... and so on. Could you post a code (sample project) that would reproduce your problem?
-
is there anywhere I could zip it if not the total project is 6 .cpp files with 6 headers and resource file thanks you are really nice
Sorry! I don't know. But if you won't find a way to do that then you could repost your question in [Visual C++ Programming](https://forums.codeguru.com/forumdisplay.php?7-Visual-C-Programming) Or just email it to me: at
-
Sorry! I don't know. But if you won't find a way to do that then you could repost your question in [Visual C++ Programming](https://forums.codeguru.com/forumdisplay.php?7-Visual-C-Programming) Or just email it to me: at
Ill take the latter thanks but this mini project is a tcp/ip application that gets data into the RichEdit from a z z/os machine let me see if I can somehow segregate it The rich edit portion that is causing the problems and then get a clean build and i'll send it over thanks you are very nice
-
Ill take the latter thanks but this mini project is a tcp/ip application that gets data into the RichEdit from a z z/os machine let me see if I can somehow segregate it The rich edit portion that is causing the problems and then get a clean build and i'll send it over thanks you are very nice
You have to simplify your project code until it will reproduce the problem. Just make a very simple project with your RichEdit without any TCP/IP and other IPCs. Test it. If you won't find the reason of the trouble while debugging this test project then post it to me or/and to the community.
-
You have to simplify your project code until it will reproduce the problem. Just make a very simple project with your RichEdit without any TCP/IP and other IPCs. Test it. If you won't find the reason of the trouble while debugging this test project then post it to me or/and to the community.
-
No idea until we will see your actual code.
Victor commented out IDC_EDIT1 and the stream out worked you are very nice guy for your offer
IDD_DIALOG10 DIALOGEX 0, 0, 769, 429
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
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,45,106,494,314
// 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 -
Victor commented out IDC_EDIT1 and the stream out worked you are very nice guy for your offer
IDD_DIALOG10 DIALOGEX 0, 0, 769, 429
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
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,45,106,494,314
// 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
ENDDoes it mean that your text was under the IDC_EDIT1 control? Or what???
-
Does it mean that your text was under the IDC_EDIT1 control? Or what???
-
ForNow wrote:
maybe it overlaid IDC_EDIT
Yes, it is what I meant in my previous post. :)