|
So do it! Write that program! It won't write itself ...
|
|
|
|
|
It looks like a good start to develop a working program!
|
|
|
|
|
Hi there!
I have started this Tax software program for you:
#include <iostream>
using namespace std;
int main()
{
cout<< "Tax software developed by https://iq.direct" << endl;
cout<< "Enter Salary:";
double s = 0, t = 0;
cin >> s;
cout<<"you entered: " << s << endl;
if (s < 600)
{
t = 0;
}
if (s >= 600 && s < 800 )
{
t = s * 0.1;
}
if (s >= 800 && s < 1000 )
{
t = s * 0.13;
}
cout<< "The tax will be :" << t;
return 0;
}
|
|
|
|
|
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.
|
|
|
|
|
I’ll post it about 7 am thank you
|
|
|
|
|
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
|
|
|
|
|
ForNow wrote: CDialog::OnInitDialog();
CHARFORMAT cf2 = { 0 };
STREAMIN((WPARAM)<b>storage_ptr</b>, (LPARAM)storagelen);</blockquote>
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)?
|
|
|
|
|
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?
|
|
|
|
|
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
Or just email it to me: <my surname=""> at <onlinehome.de>
|
|
|
|
|
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.
|
|
|
|
|
|
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
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
|
|
|
|
|
Does it mean that your text was under the IDC_EDIT1 control? Or what???
|
|
|
|
|
No just commented out that control maybe it overlaid IDC_EDIT
Thank you
|
|
|
|
|
ForNow wrote: maybe it overlaid IDC_EDIT
Yes, it is what I meant in my previous post.
|
|
|
|
|
For the class parameter the documentation says a redefined name (not sure what that means) the reason I am asking I am using a control for which I have a specific WNDCLASS which I registered however the CDialog::Create fails with that control statement in the resource definition
Thanks
|
|
|
|
|
We need to see the code and a bit more detail. If the control is not known at build time then the resource compiler may well have a problem.
|
|
|
|
|
As Richard said, we need more information:
- what is "the class parameter"?
- what is "the documentation" you are referring to?
- what is "the CDialog::Create"?
- also: in what way does it "fail"? Is there a compiler, linker or run-time error, and what does it say? Or does you program not behave in the expected way - if so, how, and what did you expect?
You are apparently referring to very specific things, but we have no idea what you're seeing or reading. (or whether that is relevant information to start with)
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)
|
|
|
|
|
Here are the resource statements Here is the call The resource in question is IDC_CUSTOM5 Fail means that when I comment out that CONTROL staement tracing my code the create goes to my
OnInitDialog my question is in the class parm of the resource control can it be my own class which I register at run time via RegesterClass
thank you
BOOL ret2 = drivestorage->Create(IDD_DIALOG10, m_pMainWnd);
IDD_DIALOG10 DIALOGEX 0, 0, 769, 429
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | 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
|
|
|
|
|