|
hi
I have developed an ActiveX control using MFC and i am using it in IE. The control has a boolean property ShowThumbNail which i am able to set through scripting, but when i set this property using < PARAM > tag it seems that the property is not set and nothing happens.
please tell me how to set exposed properties of an ActiveX using < Param > tag. The control is developed using MFC
thanks
Azam
|
|
|
|
|
override DoPropExchange and call PX_ functions.
Regards
Microsoft MVP in Visual C++
http://blog.joycode.com/jiangsheng
|
|
|
|
|
thanks Sheng
it worked
Azam
|
|
|
|
|
I am using CListCtrl.
I would like to handle single click event and double click event on list controls.
Is that possiable.
List control's property is set to report style.
How to handle single click and double click on list view?
In single click I want to display the values of that colomn in the same dialog.
In double click I want to open another dialog and show related details.
Is this possiable.
What are the events I need to handle.
At Present I am using only one event
"ON_NOTIFY(LVN_ITEMACTIVATE, IDC_LIST_GROUPS, OnLvnItemActivateListGroups)"
to display colomn values in same dialog.
Please let me know any one.
Nice talking to you.
If you judge people, you have no time to love them. -- Mother Teresa
|
|
|
|
|
G Haranadh wrote: t Present I am using only one event
Handle NM_DBLCLK message
|
|
|
|
|
Hi All,
I want to develop an application in which my GUI supports multiple views(CRichEditView,CListView,CTreeView..).All the views are independent of each other. when any modification is done in any of the views,that view sends a notification to observer class and this class in turn would notify other views about the updation.Can some one tell how to design this in MFC.I want to make the design robust so that more views can be added with ease.
Thanks in advance
Raghu
|
|
|
|
|
See CDocument::UpdateAllViews()
onwards and upwards...
|
|
|
|
|
Hi,
I'm creating a checkbox button at runtime. How can I determine the size of the drawn checkbox in front of the text. Is there a method in CButton to do this or can I retrieve this with a function like ::GetSystemMetrics() ?
Additionally it would be fine if I also could get the space between the checkbox and the text.
Thanks
|
|
|
|
|
madmax0001 wrote: I'm creating a checkbox button at runtime.
Any particular reason why you aren't doing this at design time?
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
Hi,
yes. I'm writing a GroupCheckbox control (similar to http://www.codeproject.com/miscctrl/GenCGroupCheckBx.asp). So the CButton control must be placed at runtime on the groupbox control. But I want to make this work under Win2000 and XP with or without BS_FLAT style set. And I determined that with the BS_FLAT style set, the checkbox is a little bit bigger than without.
|
|
|
|
|
madmax0001 wrote: So the CButton control must be placed at runtime on the groupbox control.
Right, but it doesn't have to be created at runtime. Create the checkbox at design time and simply move it into the correct location using MoveWindow() or SetWindowPos() .
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
Only suggestion:
resize your check-box by MoveWindow(), if u can see the check-box but can't see its text, the size should be right.
i think all OS use same size for the square image of check-box, so once u know the size, u can use it anywhere for forever.
A special image tool for Windows C++ programmers, don't miss it!
The world unique Software Label Maker is waiting for you and me ...
A nice hyper tool for optimizing your Microsoft html-help contents.
|
|
|
|
|
I am using the JNI and can call methods in my C++ code. Now I need help going in the other direction. My c++ code need to send an update back to Java. I am using JDK1.5.0 so StubsPreamble no longer exists.
Pat
|
|
|
|
|
one idea is to establish pipes between C++ and java apps, so you can get/send signals from/to C++ and java apps - communications between them.
A special image tool for Windows C++ programmers, don't miss it!
The world unique Software Label Maker is waiting for you and me ...
A nice hyper tool for optimizing your Microsoft html-help contents.
|
|
|
|
|
i have a function that i want a worker thread to execute it, my function is of the type
bool wmi(IP)
Can i use AfxBeginThread() with this or can only void functions be called? how can i pass a variable back or do i have to use a pointer?
thanks
|
|
|
|
|
if u want to pass a variable back, u must use a pointer.
code is in this way:
...ThreadFunction(void*pv)
{
SomeClass*pc=(SomeClass*)pv;
pc->SomeVariableBack=...;
}
it may not be what u want ...
A special image tool for Windows C++ programmers, don't miss it!
The world unique Software Label Maker is waiting for you and me ...
A nice hyper tool for optimizing your Microsoft html-help contents.
|
|
|
|
|
viperlogic wrote: Can i use AfxBeginThread() with this
Indirectly you can. Something like:
AfxBeginThread(ThreadProc);
...
UINT ThreadProc( LPVOID lpParam )
{
wmi();
} You'll likely need to use the second argument to AfxBeginThread() as a way to call or communicate with the wmi() function.
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
thx for the reply
how would i implement a timer, so that after say 5secs if the thread hasnt finished, kill it?
|
|
|
|
|
Use WaitForSingleObject() for this.
CWinThread *pThread = AfxBeginThread(..., CREATE_SUSPENDED);
pThread->m_bAutoDelete = FALSE;
pThread->ResumeThread();
...
switch(WaitForSingleObject(pThread->m_hThread, 5000))
{
case WAIT_TIMEOUT:
break;
case WAIT_OBJECT_0:
break;
}
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
thx for the replys
i am having trouble implementing AfxBeginThread()
<br />
void CScanDlg::OnButtonScan() <br />
{<br />
AfxBeginThread(ThreadProc);<br />
}<br />
<br />
UINT CScanDlg::ThreadProc(LPVOID pParam)<br />
{<br />
if(wmi(strIP1))<br />
return 0;<br />
else<br />
return 1;<br />
}<br />
what is wrong above, sorry about these questions but this is new to me
|
|
|
|
|
viperlogic wrote: i am having trouble implementing AfxBeginThread()...
Aside from not suppling enough arguments, what troubles are you having?
viperlogic wrote: UINT CScanDlg::ThreadProc(LPVOID pParam)
Is this a static member?
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
ok this is what i have..
static UINT CScanDlg::ThreadProc(LPVOID pParam); delcared in the header file
<br />
AfxBeginThread(ThreadProc,NULL,THREAD_PRIORITY_NORMAL,0,0,NULL);<br />
<br />
UINT CScanDlg::ThreadProc(LPVOID pParam)<br />
{<br />
if(wmi(strIP1))<br />
return 0;<br />
else<br />
return 1;<br />
}<br />
i get the following error
CScanDlg::wmi' : illegal call of non-static member function
|
|
|
|
|
Try:
AfxBeginThread(ThreadProc, this);
...
UINT CScanDlg::ThreadProc( LPVOID pParam )
{
CScanDlg *pDlg = (CScanDlg *) pParam;
if (pDlg->wmi(strIP1))
return 0;
else
return 1;
}
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
thx, that worked
can explain why thou?
|
|
|
|
|
Recently, I discovered that using cerr from console programs that are linked together by a pipe can produce garbled output. I have made two test programs that illustrate the problem. I have also made two programs that use fprintf and stderr instead of cerr -- and the output is fine. Does anyone know how to avoid the garbled output (see below) while still using cerr?
The first two programs that use cerr for log messages are called StdOutCpp and StdInCpp. When executing the command "StdOutCpp | StdInCpp" I get the following output (varies a little bit from execution to execution):
StdOut: Printing to stdout...
StdOut: Printing byte 1...
StdOut: Byte 1 printed.
StdIn: Reading from stdin...
StdIn: Reading byte 1...
StdIn: Byte 1 read.
StdOut: Printing byte 250001...
StdOut: Byte 250001 pStdIn: Rrinted.
eading byte 250001...
StdIn: Byte 250001 read.
StdOut: Printing byte 500001...
StdOut: Byte 500001 pStdIrinted.
n: Reading byte 500001...
StdIn: Byte 500001 read.
StdOut: Printing byte 750001...
StdOut: Byte 750001 pStdrinted.
In: Reading byte 750001...
StdIn: Byte 750001 read.
StdOut: Finished printing to stdout.
StdIn: Finished reading from stdin.
As you can see from the above printout, some lines are mixed together.
The next two programs that use fprintf and stderr for log messages are called StdOutC and StdInC. When executing the command "StdOutC | StdInC" I get the following output:
StdOut: Printing to stdout...
StdOut: Printing byte 1...
StdOut: Byte 1 printed.
StdIn: Reading from stdin...
StdIn: Reading byte 1...
StdIn: Byte 1 read.
StdOut: Printing byte 250001...
StdOut: Byte 250001 printed.
StdIn: Reading byte 250001...
StdIn: Byte 250001 read.
StdOut: Printing byte 500001...
StdOut: Byte 500001 printed.
StdIn: Reading byte 500001...
StdIn: Byte 500001 read.
StdOut: Printing byte 750001...
StdOut: Byte 750001 printed.
StdIn: Reading byte 750001...
StdIn: Byte 750001 read.
StdOut: Finished printing to stdout.
StdIn: Finished reading from stdin.
A perfect output, exactly as I want it.
Code listings:
--- StdOutCpp.cpp begin ---
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int n = 1000000;
cerr << "StdOut: Printing to stdout..." << endl;
for (int i = 0; i < n; i++)
{
if (i % (n / 4) == 0) cerr << "StdOut: Printing byte " << i+1 << "..." << endl;
cout << 'A';
if (i % (n / 4) == 0) cerr << "StdOut: Byte " << i+1 << " printed." << endl;
}
cerr << "StdOut: Finished printing to stdout." << endl;
return 0;
}
--- StdOutCpp.cpp end ---
--- StdInCpp.cpp begin ---
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int n = 1000000;
cerr << "StdIn: Reading from stdin..." << endl;
for (int i = 0; i < n; i++)
{
if (i % (n / 4) == 0) cerr << "StdIn: Reading byte " << i+1 << "..." << endl;
cin.get();
if (i % (n / 4) == 0) cerr << "StdIn: Byte " << i+1 << " read." << endl;
}
cerr << "StdIn: Finished reading from stdin." << endl;
return 0;
}
--- StdInCpp.cpp end ---
--- StdOutC.cpp begin ---
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int n = 1000000;
fprintf(stderr, "StdOut: Printing to stdout...\n");
for (int i = 0; i < n; i++)
{
if (i % (n / 4) == 0) fprintf(stderr, "StdOut: Printing byte %i...\n", i+1);
cout << 'A';
if (i % (n / 4) == 0) fprintf(stderr, "StdOut: Byte %i printed.\n", i+1);
}
fprintf(stderr, "StdOut: Finished printing to stdout.\n");
return 0;
}
--- StdOutC.cpp end ---
--- StdInC.cpp begin ---
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int n = 1000000;
fprintf(stderr, "StdIn: Reading from stdin...\n");
for (int i = 0; i < n; i++)
{
if (i % (n / 4) == 0) fprintf(stderr, "StdIn: Reading byte %i...\n", i+1);
cin.get();
if (i % (n / 4) == 0) fprintf(stderr, "StdIn: Byte %i read.\n", i+1);
}
fprintf(stderr, "StdIn: Finished reading from stdin.\n");
return 0;
}
--- StdInC.cpp end ---
Stian
|
|
|
|