|
Mr.Prakash wrote:
Hi might be doing his college project
Yes, that's why I said, it's a good idea to write these things to learn, but once he enters the real world, he shouldn't be using his own list class.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
How can someone update the data in a modeless window?
I write this to show the dialog..
Class *dlg=new Class;
dlg->Create(IDD_INFO_DIALOG);
dlg->ShowWindow(SW_SHOW);
and to update something I write:
dlg->m_data=newdata;
but it doesn't update the data..
How can I update them.. UpdateData doesn't work also..
thanks..
|
|
|
|
|
You shouldn't expose data in a dialog, you should expose methods that take the data, and also call UpdateData or Invalidate to cause it to be painted.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
The code goes like this:
<br />
ImInfo *info;<br />
info=new ImInfo;<br />
info->Create(IDD_INFO_DIALOG);<br />
info->ShowWindow(SW_SHOW);<br />
UpdateInfo();<br />
<br />
where:<br />
void UpdateInfo()<br />
{<br />
....calcylating the data...<br />
<br />
bool ret=info->transfer(file,width,numy,size,bpp,ctype);<br />
if (!ret)<br />
AfxMessageBox("Cannot transfer data");<br />
}<br />
<br />
and:<br />
bool ImInfo::transfer(CString imagefile, int width, int height, int size, int bpp, CString ctype)<br />
{<br />
m_filename=imagefile;<br />
m_xres=width;<br />
m_yres=height;<br />
m_filesize=size;<br />
m_bpp=bpp;<br />
m_ctype=ctype;<br />
UpdateData(FALSE);<br />
<br />
return TRUE;<br />
}<br />
Is there any mistake here? It doesn't work
|
|
|
|
|
bool and BOOL are not the same thing. Also, why have a function returning bool, if it never checks anything ?
But apart from that, I don't see why this would not work. Try adding a call to Invalidate(); before you return true ( not TRUE ), and if that does not work, then I don't know.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
It worked.. I wanted to return something to see if it's the function's problem..
Thanks anyway!
|
|
|
|
|
I am trying to learn C++ .net. I have done a little with VBA and VB.net.
I bought Visual C++ .net for Dummies. I was trying one of the programs in the book. I using Visual Studio .net 2003.
The example in the book is an example of an unmanaged C++ program.
So I created a Win32 Project. I also tried creating a Win32 Console Project and a C/C++ Console Application. Below is the code I typed in. This is the code from the Dummy book. And I am getting a Build error. And I also tried to build the project that is on the actual CD from the dummy book.
//HelloWorld2
// Prints hello world on the screen
//Unmanaged
#include "stdafx.h"
#include <iostream.h>
int _tmain(int argc, _TCHAR* argv[])
{
//Write to the screen
cout << "Hello World\n";
return 0;
}
Here is the error I am getting:
fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory
c:\Documents and Settings\steve\Desktop\Code\HelloWorld2\HelloWorld2.cpp(6):
I reinstalled Visual Studio but I guess that was not the problem. I also searched my computer for iostream.h. It did not find the file. I went to the folder vc7 and then the include folder. I found iostream but it was not iostream.h.
Does anyone have any suggestions. Is there a difference in using Visual C++ .net and C++ .net in Visual Studio?
Thanks for any help.
Steve
|
|
|
|
|
IIRC, iostream.h is deprecated, the following code must work.
<pre>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
//Write to the screen
cout << "Hello World\n";
return 0;
}
</pre>
Regards
Senthil
_____________________________
<font face="Verdana" size=1><a href="http://blogs.wdevs.com/senthilkumar">My Blog</a> | <a href = "http://www.codeproject.com/script/articles/list_articles.asp?userid=492196">My Articles</a> | <a href = "http://geocities.com/win_macro">WinMacro</a></font>
|
|
|
|
|
I have a problem displaying tooltips of controls e.g. edit fields which are part of a modal dialog using VS .NET 2003. The tooltips will be displayed without any problem if I'm using VS 6.0. Using VS .NET 2003 Professional, some of the tooltips will be displayed, some not. The source code is 100% identical. I'm using the following source code implemented in a CDialog based class:
Message Map:
ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnToolTipNotify)
// Message Handler
BOOL ... ::OnToolTipNotify (UINT id, NMHDR* pNMHDR, LRESULT* pResult)
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT*) pNMHDR;
UINT nID = pTTT->hdr.idFrom;
if ((pTTT->uFlags & TTF_IDISHWND) == TRUE)
{
nID = ::GetDlgCtrlID ((HWND) nID);
...
}
... }
Using VS 6.0 it works fine, but not in VS .NET 2003. I found in the debug mode that the message handler will be not started for the controls where I'm missing the tooltips. I don't know why.
It seems for me that .NET 2003 Professional has a bug. Is this problem known ? Has anybody a solution ? Many thanks for your help.
Ulrich
|
|
|
|
|
You may put a breakpoint in the implementation of CWnd::OnToolHitTest (it's inside [Visual Studio Install directory]\VC\atlmfc\src\mfc\wincore.cpp) and see if you can determine whether it's returning a hit for those controls, and if not, why.
--
jlr
http://jlamas.blogspot.com/[^]
|
|
|
|
|
Hi,
i've started working on VC++ recently and i'm developing an application in which the menu items in the main window has to be changed when a button on a dialog is pressed. i tried LoadMenu and SetMenu but the new mwnu getz loaded on the dialogbox itself instead on the main window.i'm sure that there must be a way to do this.could anyone help me in this please.thankyou.
rajeev
|
|
|
|
|
Have the button do this:
AfxGetMainWnd()->SetMenu(*MyMenu);
|
|
|
|
|
Hi!
in a Subclassed Cedit Control, I issued a SetWindowText() function many times in my program..
I traced my program, Now In the first call to SetWindowText(), the function succeeds and it sets the text .. Now on the second call the function asserts, and upon tracing, The ::IsWindow(hwndofCedit) returns FALSE.
My question when does an HWND becomes invalid? aside from window destruction?.. My Cedit's parent is not a CDialog, would that be an issue?
"geez i cracked myself off.."
|
|
|
|
|
A HWND becomes invalid when the windows is destroyed.
Sorry, but there is no 'aside', either the window exist or it does not. I will note however that the windows destruction has nothing to do with wether or not the destructor for a CWnd object is called. The handle belongs to the system and not the code using it. Therefore, you must be telling the system to destroy the window.
And no: the parent of the window is not an issue, unless the parent window was closed, in which case, all its child windows would also be closed (destroyed).
INTP
"The more help VB provides VB programmers, the more miserable your life as a C++ programmer becomes."
Andrew W. Troelsen
|
|
|
|
|
But why is it that when I test ::IsValidWindow(CEdit::GetSafeHwnd()), it returns FALSE in the middle of my program, and I have not destroyed the CEdit yet..
I have seen in some articles that there are some events that makes the window handles invalid..
|
|
|
|
|
There are only two things that can happen here, if IsValidWindow returns TRUE and then soon after returns false, either the window is destroyed or the value that CEdit::GetSafeHwnd() returns is now wrong. This can happen if the CWnd data structure gets trashed. Look at the m_hWnd value and see if it changes.
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
I can tell you that the window was not destroyed.. so definiteyly my problem is GetSafeHWnd() changing to a wrong value.. My question is how did it changed value? how did the window structure get trashed? I Didn't do anything to it... I just set its text..
|
|
|
|
|
Hello...
I known only two situations where a window handle is invalid.
1. window isn't created
2. window destroyed
It's possible that window creation or subclassing failed...
|
|
|
|
|
Hi All!!!
hehe.. you know what, i found out the problem of my HWND being invalid... it turns out Im looking into a different CMainFrame pointer that holds the control bar that holds the CEdit.. I have implemented 2 Doc/View architectures in my program.. So I have 2 frames, 1 Mainframe and 1 Framewnd(inside another control bar)... It turns out i cast the Framewnd which has no CEdit variable, to CMainFrame.. So im looking in the framewnd which has no CEdit at all, not created.. So that solves my problem, I just got the pointer to the actual CMainframe which has the CEdit...
tnx for the replies!!
Maverick
"you can be my wingman anytime.."
|
|
|
|
|
I have deeply in search about Nikolai Teofilov's article called <<2D Graph ActiveX Control>> and codes here,but I can't use it because it is based on vc6.0.
I wanna know if some possess this kind of code of vc++.net!
And also I am glad that u can give me some advice on dynamic curve display!
thanks,sorry about my pool English!!!
|
|
|
|
|
I have read that article which I believe comes with the ActiveX control precompiled which you can use as is (ActiveX is supposed to be programming language independent). If you want to compile it your self, then you may need to modify the code (for your compiler).
INTP
"The more help VB provides VB programmers, the more miserable your life as a C++ programmer becomes."
Andrew W. Troelsen
|
|
|
|
|
looking to use a date time object like COleDateTime in a win32 dll.
What can i use?
Intellisense seems to work fine when i use COleDateTime and i have access to all the methods but when i compile, i get an error:
(33): error C2065: 'COleDateTime' : undeclared identifier
Any guidnce is appreciated...
Thanks
|
|
|
|
|
what i would like to do is get the current system date and time, time including the milliseconds
|
|
|
|
|
|
you have to included ATLComTime.h for using COleDateTime.
you can also try GetSystemTime() to obtain systme time.
Saurabh
|
|
|
|