|
I mean adding Internet browsing (using browser) functionality to my application.
|
|
|
|
|
|
|
A trackBar->Value in a form has to be read out from a thread. I read so many articles, but still I got a problem.
I use a delegate which should return me the value of the trackBar position:
delegate int DelegateTrackBarCallBack(System::Object ^object);
I started the Thread by a ParametriziedThreadStart after a Button-Click
Thread^ oThread = gcnew Thread(gcnew ParameterizedThreadStart(&ProcessCANMessage::CAN_Thread::CANThread));
In CANThread I do
target_velocity=Get_TrackBar1_Value(object);
with
int ProcessCANMessage::CAN_Thread::Get_TrackBar1_Value(System::Object^ object)
{
CAN_Anbindung::Form1^ form;
form = (CAN_Anbindung::Form1^)object;
int trackBar_Value;
if (form->trackBar1->InvokeRequired==false)
{
trackBar_Value=form->trackBar1->Value;
}
else
{
CAN_Anbindung::Form1::DelegateTrackBarCallBack ^d = gcnew CAN_Anbindung::Form1::DelegateTrackBarCallBack(Get_TrackBar1_Value);
form->Invoke(d, gcnew array<system::object^>{form});
}
return (trackBar_Value);
}
During debugging the correct value is assigned to trackBar_Value. But when leaving Get_TrackBar1_Value trackBar_Value is set to "0".
Any ideas what to do?
|
|
|
|
|
Member 3919138 wrote: Any ideas what to do?
Post to the C++/CLI[^] forum, as that's what you're using?
From what I can understand of your message, you're expecting trackBar_Value to keep its value in two different invocations of Get_TrackBar1_Value ? Nope - local variables don't do that unless they're static. However - doesn't Invoke return the return value of the delegate? So you could do something like this?
trackBar_Value = form->Invoke(d, gcnew array<system::object^>{form});
You might need some casting to convert Invoke 's return value from System::Object to int - wouldn't know - I've never really used .NET, never mind C++/CLI.
|
|
|
|
|
I tried this befor
I got an error
1>.\ProcessCANMessage.cpp(74) : error C2440: '=': 'System::Object ^' kann nicht in 'int' konvertiert werden
|
|
|
|
|
Did you convert as shown in this article[^]?
int z = 44;
Object^ o = z;
int y = *reinterpret_cast<int^>(o);
|
|
|
|
|
I will try that. Thanks for your answers and help!
I used a code which shown in one of the articles from this forum which helps to control 4 Progressbars in a Form from 4 Threads.
See: http://www.codeproject.com/KB/mcpp/managedsafethreads.aspx[^]
It works fine, since the delegate function seems to be recalled until the InvokeRequired-property is false. in this case the progressbars can be controlled directly in the thread by "form->progressBar1->PerformStep();"
In my case I want to get the Value (Position) of the trackBar-component. So if the delegate function is called 2 times we have a recursive calling of the same function. I assumed that the return value is then overwritten by the previous call of my function "Get_TrackBar1_Value(object)".
I will let you know about the result.
|
|
|
|
|
Everything is working fine...
Thanks again!
|
|
|
|
|
Hi,
i m taking help from
http://www.codeproject.com/KB/dialog/wizard2000.aspx[^]
article its very gud article of wizard.
i m having 8 pages,there are no. of controls present.
if i run the application than its works fine but after some its look like hang or its not responding.
i m checking the memory usage from task manager than i have noticed that in thisapplication when i reached the last page of wizard the the memory of application constant.
but in my application after reached on last page,if i coninously click on back or next button than memory is still increase i think thats why it becomes not responding and looks like hang the applicaton.
please help me for this.
i m waiting for your reply.
thanks in advance.
To accomplish great things, we must not only act, but also dream;
not only plan, but also believe.
|
|
|
|
|
Seems you have the problem mentioned here[^]
|
|
|
|
|
In this example property sheet not use to add property pages.
here the class is used for add pages is derived from CDialog base type class.
now what can i do.
please help me for this.
thanks in advance.
To accomplish great things, we must not only act, but also dream;
not only plan, but also believe.
|
|
|
|
|
|
AnithaSubramani wrote: Is it possible the listener for menu bar in MFC?
Listener??? What do you mean?
|
|
|
|
|
Are you wantig to write a hook? That's the closest thing I can imagine...
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|
Do you mean you want to handle user clicks on menu entries?
|
|
|
|
|
Hello,
I'm writing an add-in in for Visual Studio in C++ and need to get access to the DebuggerEvents in Visual Studio. See here for a description: http://msdn.microsoft.com/de-de/libr...s_members.aspx . Especially I need to receive events from "OnEnterBreakMode". Unfortunately all these methods are marked as "internal use only". There is also no definition in the headers.
The interesting part is, that I can access and get notification from all these events within C# without any problem. (C# reference on DebuggerEvents: http://msdn.microsoft.com/de-de/libr...us,VS.71).aspx) So how can I manage to access the DebuggerEvents in C++?
thanks for your help in advance!
Peter
modified on Saturday, January 24, 2009 4:53 AM
|
|
|
|
|
hi,
i am trying to transparent the dialog with color using this code. I included the windows.h and winuser.h
<pre>
SetLayeredWindowAttributes(GetSafeHwnd(),RGB(10,34,56),10,(LWA_COLORKEY|LWA_ALPHA));
</pre>
But it gives following error.
\\ITD254\VCC\Notes\NotesDlg.cpp(168) : error C2065: 'SetLayeredWindowAttributes' : undeclared identifier
\\ITD254\VCC\Notes\NotesDlg.cpp(168) : error C2065: 'LWA_COLORKEY' : undeclared identifier
\\ITD254\VCC\Notes\NotesDlg.cpp(168) : error C2065: 'LWA_ALPHA' : undeclared identifier
what i have to do
Ganesh
|
|
|
|
|
Which version of visual studio are you using? Have you set win version (_WIN32_WINNT ) to 0x0501 ?
|
|
|
|
|
vc 6.0 and i tried #define WINVER 0x0500
Os- winxp
|
|
|
|
|
i opened the winuser.h and found that SetLayeredWindowAttributes() is not available.
for that i downloaded winuser.h, which has SetLayeredWindowAttributes() and replaced original but now compiler tells so many errors in winuser.h
any solution
|
|
|
|
|
ganesh.dp wrote: i opened the winuser.h and found that SetLayeredWindowAttributes() is not available.
The SetLayeredWindowAttributes () will not be existing in the header files that comes with visual studio 6. So either you can download the platform SDK from here[^] and integrate it with VC6
or
Call the SetLayeredWindowAttributes () dynamically, using the LoadLibrary () and GetProcAddress () functions. The SetLayeredWindowAttributes exists in user32.dll dll and the value of LWA_COLORKEY and LWA_ALPHA are...
#define LWA_COLORKEY 0x00000001
#define LWA_ALPHA 0x00000002
|
|
|
|
|
i got user32.dll
but i have some doubt.
1. can i load that dll from my project folder(because i download that from web, my don't doesn't)
2. if load that file in dynamic mode, but before that compiler gives error(for setlayeredwondowattributes()).
Frankly saying i'm new to VC so please guide me
|
|
|
|
|
ganesh.dp wrote: 1. can i load that dll from my project folder(because i download that from web, my don't doesn't)
No you dont have to download it from net. That dll comes with the installation of OS. it exists in the "c:\WINDOWS\system32\user32.dll"
ganesh.dp wrote: 2. if load that file in dynamic mode, but before that compiler gives error(for setlayeredwondowattributes()).
ok. This is how to call that function dynamically.
#define LWA_COLORKEY 0x00000001
#define LWA_ALPHA 0x00000002
typedef BOOL (WINAPI *pSetLayeredWindowAttributes)( HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags );
HMODULE hUser32 = LoadLibrary( _T("User32.dll"));
pSetLayeredWindowAttributes fnSetLayeredWindowAttributes = (pSetLayeredWindowAttributes)GetProcAddress( hUser32, "SetLayeredWindowAttributes");
if( 0 == fnSetLayeredWindowAttributes )
{
AfxMessageBox( _T("Failed to load SetLayeredWindowAttributes function"));
}
else
{
fnSetLayeredWindowAttributes( m_hWnd, 0, 100, LWA_ALPHA );
}
FreeLibrary( hUser32 );
|
|
|
|
|
thanx...
bit more problem now, there is no compilation error but no transparent or color change is happened..
|
|
|
|