|
I sometimes wonder if some of the course being taught these days even mention error checking.
Use the best guess
|
|
|
|
|
Hi,
I am having a number of problems Getting my richedit to work with my Modless Dialog Box
it started with scrolling as I was unable to get the Current Line and then I while trying to debug it
I noticed the I was I using DDX to connect my crichedit class with the resource defined window
which the documentation says only works for modal however when I comment out the UpdateData
and used the CRichEdtCtrl::Create to connect my windows class to the resource window none the Streamed in data is displayed I'll display the code along with the resource statements
The Create of the modeless Dialog
ret = progdbg->Create(IDD_PROGDBG,(CWnd *)this);
BOOL CprogDebug::OnInitDialog()
{
int FirstVisible;
long start, end, theline;
myedit = new CProgedit; CRect myrect(17,39,735,273);
myedit->SetOptions(ECOOP_OR, ECO_AUTOVSCROLL | ECO_AUTOHSCROLL);
UpdateData(FALSE); EDITSTREAM es;
CStdioFile *fileptr = new CStdioFile;
fileptr->Open(proglisting,CFile::typeBinary);
es.dwCookie = (DWORD) fileptr;
es.dwError = 0;
es.pfnCallback = (EDITSTREAMCALLBACK) readlisting;
myedit->StreamIn(SF_TEXT, es);
myedit->SetFocus();
theline = myedit->LineFromChar(myedit->LineIndex(-1));
myedit->LineScroll(-theline,0);
myedit->HideSelection(TRUE,FALSE);
ShowWindow(SW_SHOW);
CDialog::OnInitDialog();
return TRUE;
}
IDD_PROGDBG DIALOGEX 0, 0, 779, 345
STYLE DS_SETFONT | DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "Dialog"
MENU IDR_HERC_CMDTYPE
FONT 8, "Times New Roman", 400, 0, 0x0
BEGIN
CONTROL "",IDC_RICHEDIT22,"RichEdit20A",WS_CHILD | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_MULTILINE | WS_BORDER | WS_TABSTOP,17,39,735,273
END
void CprogDebug::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX,IDC_RICHEDIT22,(CWnd &)*myedit);
}
|
|
|
|
|
This is not the correct way to use a dialog; switch it to a modal type.
Use the best guess
|
|
|
|
|
meaning I can't use I cant use RichEdit with modeless
|
|
|
|
|
Why would you want to? It offers no advantages and just makes your code far more complex than it needs to be. Use dialogs the way they are meant to be used and your life will be so much easier.
Use the best guess
|
|
|
|
|
I want to have richedit with a window that I can move around mot modal with just a ok or cancel button
If modeless and richedit is out of the picture then maybe I should I should just use a regular child
window
|
|
|
|
|
ForNow wrote: I want to have richedit with a window that I can move around And why do you think a modal dialog cannot do that?
Use the best guess
|
|
|
|
|
Model as in Do.Modal are very inflexible
Used to gather data yes/no. I want to
Display a Mainframe assembler program listing
In a richedit manipulate the current selection
Have other controls/windows display
Register information can do all that with a
Modal
|
|
|
|
|
ForNow wrote: Model as in Do.Modal are very inflexible Quite the opposite; you can do (more or less) anything you like in a modal dialog. However, given the description of what you want to do, it may not be the best choice. The issues is to decide what features you wish to use and then work out which type of window you need. Perhaps a normal frame window would do what you want, but running in a separate thread. Or, go back to a modeless dialog, but accepting that you cannot use those features that are restricted to modals.
Use the best guess
|
|
|
|
|
So then I can use richedit with modeless when i do CRichedt::create the stream in callback gets control
But the data is not displayed in the CRichedit
|
|
|
|
|
ForNow wrote: But the data is not displayed in the CRichedit Then you need to investigate why, and add whatever code is necessary. Check out the documentation for the CRichedit class.
Use the best guess
|
|
|
|
|
thanks again for your help forgot the WS_VISIBLE flag on the CRichEditCtrl::Create
another issue the TCP/IP registry setting per the MS Knoweledbase article got my sockets to connect the MainFrame
Thanks Again
|
|
|
|
|
ForNow wrote: myedit = new CProgedit; // allocate the richedit
CRect myrect(17,39,735,273);
myedit->SetOptions(ECOOP_OR, ECO_AUTOVSCROLL | ECO_AUTOHSCROLL); Why make the rich edit control on the heap? Put it on the stack like any other control variable. Way simpler.
ForNow wrote: CDialog::OnInitDialog(); Any particular reason why this statement is (second to) last instead of first?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
modified 29-May-13 15:21pm.
|
|
|
|
|
Why make the dialog on the heap. I'm doing inter process communication with a console program
And I am afraid that if create the dialog on the
Stack some of the information will get lost
As I want the dialog active durning the time I am
Communicating with the console program
When I put CDialog::Initinstnce as the first statement
In my overridable control never came back from it
|
|
|
|
|
ForNow wrote: When I put CDialog::Initinstnce as the first statement You mean OnInitDialog() ?
ForNow wrote: In my overridable control never came back from it Did you remember to call AfxInitRichEdit() in the app's InitInstance() method()?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
In my CWinApp yes I am at work but ill
Check
Right now my main problem is the TCP/IP code that used to
Work ( connecting with the mainframe stopped working)
I am getting nErrorcode timeout in CAsyncSocket::OnConnect
Overridable
Maybe my laptop has slowed up and I may have re-install windows
To get back the performance
Thanks
|
|
|
|
|
Hi,
I implemented a wheel-zoom function. It behaves exactly as I expect on primary monitor. But when I move application to secondary monitor, the wheel zoom behavior is different.
How can correct it?
Thanks,
transoft
|
|
|
|
|
transoft wrote: How can correct it? How indeed? The first thing you need to do is give some proper details of your code, what is happening and why it is not correct.
Use the best guess
|
|
|
|
|
i want to design a matchbox like this
program will take 9 numbers and convert them to hexadecimal number,and draw matchbox and then find a way ,from matrix begin (0,0) to matrix last element (3,3).
http://r1305.hizliresim.com/19/s/ndzby.png[^]
|
|
|
|
|
freemo716 wrote: i want to design a matchbox like this Sounds interesting; and what part of this are you seeking help with?
Use the best guess
|
|
|
|
|
i need an algorithm to find a way to end point, do i need to use recursive function?
|
|
|
|
|
freemo716 wrote: do i need to use recursive function? It depends on the algorithm; something that you need to investigate first.
Use the best guess
|
|
|
|
|
thanks for the "big" advice
|
|
|
|
|
Sorry, were you expecting someone else to do your work for you?
Use the best guess
|
|
|
|
|
Hi all. I have an dialogbar, which can be floated ... somewhere, in the statusbar, I have an indicator, a CButton, that tell me if the dialog bar is showed or not ... which does function well ... but when the dialogbar is in the floating state, and the user close the dialogbar from "Close" menu button, I don't know how to signal the statusbar button ... there is an handler to treat when user close the dialogbar from "Close" menu button ?
|
|
|
|