|
|
Try these two previous discussions:
http://www.codeproject.com/script/comments/forums.asp?msg=574273&forumid=1647&mode=all&userid=52727#xx573787xx
http://www.codeproject.com/script/comments/forums.asp?msg=574178&forumid=1647&mode=all&userid=52727#xx573924xx
|
|
|
|
|
Hi,I am a beginner in MFC of VisualC++.now i have a problem to be solved.
Somebody can help me?
I want to draw some text in CEditView via DrawText function,but it display nothing on CEditView.
some code below:
void CTPlatformView::OnDraw(CDC* pDC)
{
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CRect rect;
GetClientRect(&rect);
pDC->DrawText("hello",&rect,DT_LEFT);
}
Thanks!!
|
|
|
|
|
Hi,
Look what MSDN say about:
==
virtual int DrawText( LPCTSTR lpszString, int nCount, LPRECT lpRect, UINT nFormat );
...
This member function uses the device context’s selected font, text color, and background color to draw the text. Unless the DT_NOCLIP format is used, DrawText clips the text so that the text does not appear outside the given rectangle. All formatting is assumed to have multiple lines unless the DT_SINGLELINE format is given.
If the selected font is too large for the specified rectangle, the DrawText member function does not attempt to substitute a smaller font.
If the DT_CALCRECT flag is specified, the rectangle specified by lpRect will be updated to reflect the width and height needed to draw the text.
==
Hope, now youself can do checks and find answer.
Vitali
|
|
|
|
|
Thank you Vitali!
if i let CMyView to derive from CView,it can directly display "hello".but it cann't if derived from CEditView.
why?
|
|
|
|
|
Check under debugger what values have settings pointed above
in the first and second variants.
hope it will help.
Vitali
|
|
|
|
|
I think you should use the GetEditCtrl () method to acces the CEdit object associated with the CEditView . Then write text in the CEditView just like you were using CEdit .
Best regards,
Alexandru Savescu
P.S. Interested in art? Visit this!
|
|
|
|
|
OnDraw() doesn't get called for a class derived from CCtrlView , such as CEditView . You have to do it in OnPaint() .
Hope this helps,
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
Hi,Ryan Binns and all of you
Thank you very much! I've solved it via OnPaint() function.
|
|
|
|
|
Hi,
I've created a directory selection dialog (thanks to some people here at CP), but I thought it's nice to have some of creating a folder from this dialog. I you can't, you have to creat one yourslef, using explorer. I know how to create a folder in MFC, but you can use that function from the dialog!
Help me please,
|
|
|
|
|
Why can't you create a folder? What is happening?
Who is 'General Failure'? And why is he reading my harddisk?!?
|
|
|
|
|
No,
I just need to get a button (called new directorie, or something) to create a new directory, without having to rewrite this diialog.
So, do you know wether there is some kind of flag to enable this sort of feature?
|
|
|
|
|
What dialog are you using?
A standard one or a homegrown dialog?
Who is 'General Failure'? And why is he reading my harddisk?!?
|
|
|
|
|
Here's my code, it's very standard (got parts of it from people at CP )
BROWSEINFO* b=new BROWSEINFO(); <br />
LPTSTR buf=new TCHAR[MAX_PATH]; <br />
<br />
int image=-1; <br />
b->hwndOwner=this->m_hWnd; <br />
b->iImage=image; <br />
b->lpszTitle="Please select a directory for your input:"; <br />
b->pidlRoot=NULL; <br />
b->pszDisplayName=buf; <br />
b->ulFlags=BIF_BROWSEINCLUDEFILES; <br />
<br />
LPITEMIDLIST x=SHBrowseForFolder(b); <br />
if(x==NULL)<br />
{<br />
return;<br />
}<br />
<br />
<br />
LPTSTR buf2=new TCHAR[MAX_PATH]; <br />
<br />
<br />
bool gelukt=SHGetPathFromIDList(x,buf2);<br />
<br />
<br />
CString pad=buf2;<br />
<br />
if(!gelukt)<br />
{<br />
error_scherm e;<br />
e.set_text("It seems that the directory you've selected is corrupt, if this problem persists please contact the developer.");<br />
e.DoModal();<br />
return;<br />
}<br />
<br />
delete [] buf;
delete [] buf2;<br />
|
|
|
|
|
You need to include the style BIF_NEWDIALOGSTYLE with your SHBrowseForFolder.
simply AND it into the ulFlags :
b->ulFlags=BIF_BROWSEINCLUDEFILES & BIF_NEWDIALOGSTYLE;
You then get a slightly different dlg, but that is newer one.
Who is 'General Failure'? And why is he reading my harddisk?!?
|
|
|
|
|
Thanks, but this isn't working (altough i'm using win2k and the newest IDE (.NET 2003)), is there some other way to do this?
|
|
|
|
|
You can try this[^] article.
Or this[^] one.
Sorry, I do not have much time to help you today, but with reading MSDN, code examples from the links I gave and own experiments you should be able to force the 'New Dir' button on the folder open dlg.
Who is 'General Failure'? And why is he reading my harddisk?!?
|
|
|
|
|
I am writing a network program using winsocket. i use udp protocol.
my question is:
when client send the username and password to server and wait for server reply, how can i deal with time out?
could anyone give me some idea??
thanks.
|
|
|
|
|
Hi,
UPD protocol can't establish chenell and does not guarantee server rceiving of packages, therefore you can just use any predefined "time delay".
(server response time).
Vitali
|
|
|
|
|
thank you
but how can i use predfined "time delay"?
can you plz tell me more?
|
|
|
|
|
it depend only from your project requirements.
i mean that many parameters play role here:
network, software, ...
MS suggest setup timeout 15 seconds.
Vitali
|
|
|
|
|
|
Hi All,
I have posted this question before at least 3 4 times but no luck..anyone please reply..
there are two definitions of new window..i.e.
DISP_FUNCTION_ID(CWebBrowser2, "NewWindow2",DISPID_NEWWINDOW2, OnNewWindow2, VT_EMPTY, VTS_DISPATCH VTS_PBOOL)
DISP_FUNCTION_ID(CWebBrowser2, "NewWindow2",DISPID_NEWWINDOW2, OnNewWindow2, VT_EMPTY, VTS_BSTR VTS_I4 VTS_BSTR VTS_PVARIANT VTS_BSTR VTS_PBOOL)
When i use first def. it works ok and putting cancel=true works and no new window opens. but that breaks th eexecution of program and hence i need to open the same url in parent window..so when i use second definition the function is never called..I want to know whether there is anything wrong with the definition or what..whatever u said must work..but if once the function is called then only i will be able to know that it is working or not..m_pBrowserApp is an object of IWebBrowser2..
virtual void OnNewWindow2(LPDISPATCH FAR* ppDisp, BOOL* Cancel);
// virtual void OnNewWindow2(BSTR URL, long Flags, BSTR TargetFrameName,VARIANT* PostData, BSTR Headers, BOOL FAR* Processed);
Please let me know where I am wrong..
Himanshu
|
|
|
|
|
Hi all,
We are inserting item in a tree. Whenever we insert an item, we use SetItemData(...) to store our custom data and later use GetItemData() to reteive it from the nodes.
The values are correctly retreived in case if there is no child node under a parent node,
but incase of a child the GetItemData() returns unexpected value of the parent.
Please anybody helps,Thanks.
The Phantom.
|
|
|
|
|
Hi,
Set/GetItemData is verified way. It not depend of nodelevel.
I am sure that you simply have confused something in the program.
Vitali
|
|
|
|