|
What do you want to do ? Can't you simply check if each pixels are equal in both images ?
|
|
|
|
|
Cedric I think that this isnt a good way but possible that he check for each pixel in bitmaps in a loop(only a for)
but usually width and height aren't equal
so 1-first create a bitmap in screen that width and height are same(800x800) and draw bitmap in this screen also for bitmap2
then in one loop read pixels from bitmap1 and bitmap2
Is it possible?
|
|
|
|
|
I don't think the problem is defined well enough for any kind of reply. Do the bitmaps have noise? Like, for example, the ones that come from a live camera? Or are they synthetic (computer generated)?
What does the comparison try to obtain? The diferences? In which form? In the form of a diferential image? Or in the form of a list of diferene regions and their bounding boxes, for example? Or does the comparison result in a flag that says something like "image 1 = room empty", and "image 2 = intruder detected!!"?
Rilhas
|
|
|
|
|
I tesed this way many years but in the case very simple
and compare two bmp files and its worked.I had one bmp file and search for another bmp files with this way.
|
|
|
|
|
hi all,
i want to wake a System using Remote Machine which is Running state. please give me steps how to proceed for WOL (Wake on Lan).
thanks,
uday.
uday kiran
|
|
|
|
|
|
i want to develope one pop up blocker.... i can't get the concept actually...
if somebody knows., i wish to hear it.. source code can also be invited..
do the needful
Ravi Chandran.C
|
|
|
|
|
The basic concept is simple - prevent any new windows from being created. Things get a little complex when you have to differentiate between intentional creation of a new browser window by a user, and malicious ones. Even moreso if you start doing things like examining the HTML document for onload Javascript events, or rewriting the HTML script itself.
For a start, take a look at the WebBroswer Control documentation in/on MSDN, especially the DWebBrowserEvents2 interface and the BeforeNavigate2 and NewWindow2 events.
Peace!
-=- James If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
since i'm a beginner in VC++., i need some sample code to develope it...
Ravi Chandran.C
|
|
|
|
|
hi,
can somebody let me know what is the nmake syntax & option to be given to build a dll..
Is there any changes to be done in .mak file for converting a win32 application's nmake to build a dll...
Thanks,
|
|
|
|
|
Hi,
I have lot of confusion in deleting the Menu command.Ihave one program as to select 4 different operators.Corresponding to each operator the menus will get changed.
BOOL COprStation::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_cOprSt.AddString("AAA");
m_cOprSt.AddString("BBB");
m_cOprSt.AddString("CCC");
m_cOprSt.AddString("DDD");
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void COprStation::OnOK()
{
// TODO: Add extra validation here
UpdateData();
gsCurModelName.Empty();
int iSel = m_cOprSt.GetCurSel();
if( iSel == LB_ERR)
{
AfxMessageBox("Select operator station to configure");
m_cOprSt.SetFocus();
return;
}
gOprStation = -1;
sOprStExt = _T("");
CMenu* pMenu = AfxGetMainWnd()->GetMenu();
// pMenu->DeleteMenu(ID_FCS_DISPLAY,MF_BYCOMMAND);
/* CString sStr=_T("");
int iMenuItemCount = ((CMenu *)AfxGetMainWnd()->GetMenu())->GetMenuItemCount();
for (int j=0;j<imenuitemcount;j++)
{
="" ((cmenu="" *)afxgetmainwnd()-="">GetMenu())->GetMenuString(j,sStr,MF_BYPOSITION);
if (sStr.CompareNoCase("&Panel Config") == 0)
{
// ((CMenu *)AfxGetMainWnd()->GetMenu())->DeleteMenu(j,MF_BYPOSITION);
((CMenu *)AfxGetMainWnd()->GetMenu())->EnableMenuItem(j,MF_DISABLED |MF_GRAYED);
}
}*/
switch(iSel)
{
case 0:
{
CMenu* pGrowingMenu = pMenu->GetSubMenu(2);
//pGrowingMenu->DestroyMenu();
pGrowingMenu->InsertMenu(3,MF_STRING,ID_DISPLAY_FUNCTIONKEY,"&Function Key");
pGrowingMenu->InsertMenu(3,MF_STRING,ID_OVR_DISPLAY,"&OverView Config");
pGrowingMenu->InsertMenu(3,MF_STRING,ID_GRAPHCONFIG,"G&raphics Page Config");
pGrowingMenu->InsertMenu(3,MF_STRING,ID_DISPLAY_GROUPTREND,"Group && Trend");
}
case 1:
{
CMenu* pGrowingMenu = pMenu->GetSubMenu(2);
//pGrowingMenu->DestroyMenu();
pGrowingMenu->InsertMenu(3,MF_STRING,ID_DISPLAY_FUNCTIONKEY,"&Function Key");
pGrowingMenu->InsertMenu(3,MF_STRING,ID_OVR_DISPLAY,"&OverView Config");
pGrowingMenu->InsertMenu(3,MF_STRING,ID_GRAPHCONFIG,"G&raphics Page Config");
pGrowingMenu->InsertMenu(3,MF_STRING,ID_DISPLAY_GROUPTREND,"Group && Trend");
pGrowingMenu->InsertMenu(3,MF_STRING,ID_FCS_DISPLAY,"&FCS Display");
}
case 2:
{
CMenu* pFoxMenu = pMenu->GetSubMenu(2);
pFoxMenu->InsertMenu(3,MF_STRING,ID_GROUP_GRAPH_CONF,"GroupGraphics");
pFoxMenu->InsertMenu(3,MF_STRING,ID_FOX_ANNUN_KEYBOARD_CONF,"KeyBoard");
pFoxMenu->InsertMenu(3,MF_STRING,ID_FOX_DISPLAY_BAR,"Display Bar");
pFoxMenu->InsertMenu(3,MF_STRING,ID_FOX_MENU_CONFIG,"Disp Menu");
pFoxMenu->InsertMenu(3,MF_STRING,ID_FOX_MENU_DISP1_CONFIG,"Disp1 Menu");
pFoxMenu->InsertMenu(3,MF_STRING,ID_FOX_MENU_DISP2_CONFIG,"Disp2 menu");
//pFoxMenu->EnableMenuItem(ID_DISPLAY_FUNCTIONKEY,MF_DISABLED |MF_GRAYED);
//pFoxMenu->EnableMenuItem(ID_OVR_DISPLAY,MF_DISABLED |MF_GRAYED);
//pFoxMenu->EnableMenuItem(ID_GRAPHCONFIG,MF_DISABLED |MF_GRAYED);
//pFoxMenu->EnableMenuItem(ID_DISPLAY_GROUPTREND,MF_DISABLED |MF_GRAYED);
}
case 3:
{
// CMenu* pFODMenu = pMenu->GetSubMenu(2);
/*pFODMenu->DeleteMenu(6,MF_BYPOSITION);
pFODMenu->DeleteMenu(5,MF_BYPOSITION);
pFODMenu->DeleteMenu(4,MF_BYPOSITION);
pFODMenu->DeleteMenu(0,MF_BYPOSITION);*/
// pFODMenu->EnableMenuItem(ID_OVR_DISPLAY,MF_DISABLED |MF_GRAYED);
// pFODMenu->EnableMenuItem(ID_GRAPHCONFIG,MF_DISABLED |MF_GRAYED);
/*
CString sStr=_T("");
int iMenuItemCount = ((CMenu *)AfxGetMainWnd()->GetMenu())->GetMenuItemCount();
for (int j=0;j<imenuitemcount;j++)
{
="" ((cmenu="" *)afxgetmainwnd()-="">GetMenu())->GetMenuString(j,sStr,MF_BYPOSITION);
if (sStr.CompareNoCase("&Panel Config") == 0)
{
((CMenu *)AfxGetMainWnd()->GetMenu())->DeleteMenu(j,MF_BYPOSITION);
//((CMenu *)AfxGetMainWnd()->GetMenu())->EnableMenuItem(j,MF_DISABLED |MF_GRAYED);
}
}
DrawMenuBar();*/
// CMenu* menu = GetMenu();
/* CMenu* FODmenu = pMenu->GetSubMenu(2);// CWnd::GetMenu in the mainframe, for example
for(int i = 0; i < FODmenu->GetMenuItemCount(); i++)
{
FODmenu->EnableMenuItem( i, MF_DISABLED | MF_GRAYED);
}
DrawMenuBar();*/
CMenu* pFodMenu = pMenu->GetSubMenu(2);
pMenu->DeleteMenu(ID_FCS_DISPLAY,MF_BYCOMMAND);
pMenu->DeleteMenu(ID_DISPLAY_FUNCTIONKEY,MF_BYCOMMAND);
pMenu->DeleteMenu(ID_OVR_DISPLAY,MF_BYCOMMAND);
pMenu->DeleteMenu(ID_GRAPHCONFIG,MF_BYCOMMAND);
pMenu->DeleteMenu(ID_DISPLAY_GROUPTREND,MF_BYCOMMAND);
pMenu->DeleteMenu(ID_GROUP_GRAPH_CONF,MF_BYCOMMAND);
pMenu->DeleteMenu(ID_FOX_ANNUN_KEYBOARD_CONF,MF_BYCOMMAND);
pMenu->DeleteMenu(ID_FOX_DISPLAY_BAR,MF_BYCOMMAND);
pMenu->DeleteMenu(ID_FOX_MENU_CONFIG,MF_BYCOMMAND);
pMenu->DeleteMenu(ID_FOX_MENU_DISP1_CONFIG,MF_BYCOMMAND);
pMenu->DeleteMenu(ID_FOX_MENU_DISP2_CONFIG,MF_BYCOMMAND);
break;
}
default:
return;
}
gOprStation = iSel;
CDialog::OnOK();
}
This is my coding..In Case 4,I dont want any menu.I followed lot of methods, but does not work.
Morethan that,if i select select the already selected operator once again,the menu gets growing.... I dont know wat to do..Pls HELP.
|
|
|
|
|
Hi again i have a strange question to ask i'am not sure if it is applicable but if there is a way to do it here is right place to find out.
i'm working on the implementation of a spam filter and i'm trying to implement a function that extracts the fonts color and the background color from an html file.
What i'm trying to do is check if the font color and the background color are similar (invisible text, common in spam emails) i get the bgcolor and font color in hexadecimal format and i was wondering if there is a class to compare the colors. i found something similar but for c#.net is
System.Drawing.Color cfg = System.Drawing.ColorTranslator.FromHtml(foreColor);
if (cbg.R <= cfg.R + 15 ||cbg.R >= cfg.R - 15)
{
if (cbg.R <= cfg.R + 15 ||cbg.R >= cfg.R - 15)
{
if (cbg.R <= cfg.R + 15 ||cbg.R >= cfg.R - 15)
{
return fsi;
}
}
}
Any ideas
Thanks in advance
|
|
|
|
|
antonaras_marcou wrote: i get the bgcolor and font color in hexadecimal format
You mean in a string ? Or how is this value stored ?
Anyway, you can simply compare the strings or the values to check if they are the same or not.
|
|
|
|
|
Thanks for the reply cedric Moonen
i store the the colors which are in this form #CC0000, #EA0000, #5E5EFF
the problem is that i can't just compare if they are the same because most of the times they use simmilar colors for the bg and fonts but not identical for example white bg and very light yellow for the fonts still unreadable but it won't match if i compare the colors
|
|
|
|
|
There are many way of doing this. One way is to consider the colour as a point in 3D space: The difference between two colours using this scheme is the length of the line between them which we can calculate using Pythagoras’ theorem (extended to 3D).
double Difference(BYTE red1, BYTE green1, BYTE blue1, BYTE red2, BYTE green2, BYTE blue2)
{
BYTE rdiff = red2-red1;
BYTE gdiff = green2-green1;
BYTE bdiff = blue2-blue1;
return sqrt(rdiff*rdiff + gdiff*gdiff + bdiff*bdiff);
}
The return value will always be positive and you'll have to decide how small a return value means the colours are too close.
Steve
|
|
|
|
|
This is way to advance for me but i like it looks good i'll try it
Thank very much appresiate the help
i'll post a msg if i need some assistant
thanks again u ve been very helpful
|
|
|
|
|
Hi,
I don't think this works with bytes suppose the color black (0,0,0) and white (255, 255, 255)
look add the difference of a component say red:
BYTE rdiff = 0 - 255;
but when the two colors are almost the same gray (128,128,128) & (127,127,127)
BYTE rdiff = 128 - 127;
One must use signed short to let this work.
The multiplication wil create positive numbers
double Difference(short red1, short green1, short blue1, short red2, short green2, short blue2)
{
short rdiff = red2-red1;
short gdiff = green2-green1;
short bdiff = blue2-blue1;
return sqrt(rdiff*rdiff + gdiff*gdiff + bdiff*bdiff);
}
A good site for this kind of problems is http://www.webwhirlers.com/colors/combining.asp[^]
codito ergo sum
|
|
|
|
|
Thanks badkarma for the help i think i got it
1.first i need to transform hex to decimal?(do you know how btw )
2.First 2hex digits corespond to red second 2digits to green and 2 last to blue
3. i perform the arithmetic operations of your function and i set a number (by trial and error to find the compinations of colors that i should consider similar)
looks good thanks again!
if you know any fuction to convert hex to decimal that would be very helpful
Thanks again
|
|
|
|
|
Yes, you right: You'll need to use a signed type as you've done.
Steve
|
|
|
|
|
antonaras_marcou wrote: What i'm trying to do is check if the font color and the background color are similar
Similar but not exact?
antonaras_marcou wrote: i found something similar but for c#.net is
So are you wanting a C++ slution or a C# slution?
antonaras_marcou wrote: if (cbg.R <= cfg.R + 15 ||cbg.R >= cfg.R - 15)
{
if (cbg.R <= cfg.R + 15 ||cbg.R >= cfg.R - 15)
{
if (cbg.R <= cfg.R + 15 ||cbg.R >= cfg.R - 15)
These three tests appear to do the same thing? Is that intentional?
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"We will be known forever by the tracks we leave." - Native American Proverb
|
|
|
|
|
Hi all,
i've developed a dialog based application, which has to respond for certain events (ex:when the sound filled in a buffer has stopped playing.. etc).
To achieve this i've used the function,
MsgWaitForMultipleObjects( 1, &g_hNotificationEvent,FALSE, INFINITE, QS_ALLEVENTS );
where,
g_hNotificationEvent --> handle to the event to be triggered.
the problem what i'm facing is,where to place this function? if i put this within OnInitDialog the application stops executing further.The problem will be solved if this function is placed within
WinMain() ,but where i do i find WinMain in a dialog based MFC application?
It'll be really great if someone can help me out in this.
Thanks and regards,
rajeev
|
|
|
|
|
Start a separate thread to check for that, otherwise your GUI will freeze until you receive the event.
Once the event is received in your thread, send a user defined message to your dialog to specify that the event is finished.
|
|
|
|
|
Umm.. The whole thing about having an event signaled is the use of multiple threads.
Since you seem to have only one thread I don't understand why you consider this solution.
Why don't you post a user defined message from where you are signalling the event and write a message handler for that message instead?
--
Roger
It's suppose to be hard, otherwise anybody could do it!
|
|
|
|
|
Let me explain the application more clearly. i've a demodulator hardware which keeps pumping out some sound data which is being feed to a sound card.
I've used "DirectX" to achieve this. when the sound fed to the card has finished playing ,the application has to be notified so that it can fill the buffer with new data and play it again.This process has to repeat continuously.
Please let me know whether using MsgWaitForMultipleObjects(...)is a good idea ?
rajeev
-- modified at 6:54 Thursday 27th April, 2006
|
|
|
|
|
rajeev82 wrote: MsgWaitForMultipleObjects(...)is a good idea ?
It depends on how you know when your demodulator has finished feeding the sound card...
If it signals an event, then I suggest you create a worker thread simply waits for the event with WaitFormUltipleObjects(), presumably there's no need to process messages.
If a message gets posted you write a message handler and restart the feeding process from there.
To be able to help you futher we need to know how you can tell when the demodulator has finished feeding the sound card.
--
Roger
It's suppose to be hard, otherwise anybody could do it!
|
|
|
|
|