RichEdit Streamin SF_TEXT not appearing
-
Hi I have done this many times streamin text, this time however the text just doesn't appear I do a SW_SHOW on both the rich edit and the dialog So I decided just to do a simple test copy "this is a test\r\n": info the pBuff *pcb = 16 for the next call I have *pcb = 0 to tell rich edit no more The Dialog box and rich edit appear with no test however When I press any character on my keyboard e.g type D The text This is a text magically appears in front of D Any ideas are appreciated
-
Hi I have done this many times streamin text, this time however the text just doesn't appear I do a SW_SHOW on both the rich edit and the dialog So I decided just to do a simple test copy "this is a test\r\n": info the pBuff *pcb = 16 for the next call I have *pcb = 0 to tell rich edit no more The Dialog box and rich edit appear with no test however When I press any character on my keyboard e.g type D The text This is a text magically appears in front of D Any ideas are appreciated
No idea until we will see your actual code.
-
No idea until we will see your actual code.
-
No idea until we will see your actual code.
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_MODALFRAM -
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. :)