|
Hi all,
I want to use this function
BOOL EnumDisplayMonitors(
HDC hdc, // handle to display DC
LPCRECT lprcClip, // clipping rectangle
MONITORENUMPROC lpfnEnum, // callback function
LPARAM dwData // data for callback function
);
there is MONITORENUMPROC lpfnEnum this must be a pointer to my function.
here is MONITORENUMPROC declaration:
typedef BOOL (CALLBACK* MONITORENUMPROC)(HMONITOR, HDC, LPRECT, LPARAM);
How should I call EnumDisplayMonitors with my fuction/pointer.
I am really stuck.
Thank you very much.
|
|
|
|
|
I googled "EnumDisplayMonitors" and it returned a code snippet with an example on how to use it.
|
|
|
|
|
Thanks for your reply,
I can't find snippet, but I found this and it looks like it's working. Thanks
BOOL CALLBACK _MyPaintEnumProc(HMONITOR hMonitor,HDC hdc,LPRECT lprcMonitor, LPARAM data){
int a = 10;
return TRUE;
}
int main(int argc, char* argv[])
{
MONITORENUMPROC lpfnEnum = _MyPaintEnumProc;
EnumDisplayMonitors(NULL,NULL, lpfnEnum, 0);
}
|
|
|
|
|
I have found out it works only when I don't use it in a Class.
Could someone help me to implement into my class?
Thanks.
|
|
|
|
|
Declare the function as a static member function.
If you provide the 'this'-pointer as the dwData parameter in the call to EnumDisplayMonitors , you can type cast it into a pointer of your class to get the correct instance of your class when the static function is called.
"It's supposed to be hard, otherwise anybody could do it!" - selfquote "High speed never compensates for wrong direction!" - unknown
|
|
|
|
|
|
|
Hi. I tried a search for subjects in the Articles, but found nothing...
My question is this: I have a collection of data, like a database, with numerious subitems and some have sub-subitems, etc...
I have a dialog that shows one "record" at a time with a CTreeCtrl showing the subitems that make up the one record. I can drill down the subitems to view the actual data.
When I step through the "records", the CTreeCtrl reflects the current record's data.
HOWEVER, if I am at a specific depth level and want to see the next record's data AT THAT SAME DEPTH LEVEL, my tree only gets rebuilt and initialized at root - I then have to drill back down again to see the next record's data at the depth level I'm interested.
Is there a way (algorithmic or class member) to remember the current node/depth level in a tree and to open a tree at that specific node/level?
Thanks,
J-J
|
|
|
|
|
john john mackey wrote: Is there a way (algorithmic or class member) to remember the current node/depth level in a tree and to open a tree at that specific node/level?
Yes. How is dependent on aspects of your implementation.
john john mackey wrote: When I step through the "records", the CTreeCtrl reflects the current record's data.
IF - When you change records the tree items do not change but just the values then you can use the HTREEITEM handle to reset the focus.
OTHERWISE - You will need to develop your own mechanism to link the previous HTREEITEM to the new HTREEITEM. Obviously that would be using specific knowledge of your data and relationships.
led mike
|
|
|
|
|
hmmm... (still mulling over)
I think the tricky part is if I have to look UP the tree (or maybe it's just the same as looking down, depending on how I implement.)
It gives me something to start:
CTreeCtrl::GetFirstVisibleItem - visible root
::GetParentItem - method to work up tree
etc...
Thanks for the reply!
|
|
|
|
|
Hello Everyone,
Looking for different ideas on the best way to approach this problem. Would it be possible to use Active Script Interfaces to do this somehow, or some other approach that would not involve using spider monkey. I am new to using active script interfaces, so if someone could post/send a good tutorial, would be much appreciated.
Thank You All
|
|
|
|
|
|
Hi
I want to find gold bar in IE using c++.I didn't got any API for that.It'd be great if any one knows the method to achieve this.
Thanks & Regards,
Subrat.
|
|
|
|
|
Member 4708266 wrote:
I want to find gold bar in IE using c++.I didn't got any API for that.It'd be great if any one knows the method to achieve this.
what's the gold bar in IE ???
|
|
|
|
|
Gold Bar also comes in firefox browser. Whenever we are browsing a web site for some web sites one 'Activex control' pops up just below the Frame window but above the client area. Color of that Bar is Yellow. That is known as gold bar. For your experiment you can create a simple xml file and open it in your IE. I hope you will get gold bar.
|
|
|
|
|
Member 4708266 wrote: bar. For your experiment you can create a simple xml file and open it in your IE. I hope you
ok, get it, the same warning "bar" that comes up when there's a popup window ?
|
|
|
|
|
The following lines of code generate a unhandled exception in reading memory location error in my MFC program
Can anyone please tell the reason
//The CUIThread class
class CUIThread : public CWinThread
{
DECLARE_DYNCREATE(CUIThread)
public:
virtual BOOL InitInstance();
};
IMPLEMENT_DYNCREATE(CUIThread,CWinThread)
BOOL CUIThread::InitInstance()
{
m_pMainWnd=new CMainWindow;
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
return TRUE;
}
//The CMainWindow class
class CMainWindow : public CFrameWnd
{
public:
CMainWindow();
protected:
afx_msg void OnLButtonDown(UINT,CPoint);
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(CMainWindow,CFrameWnd)
ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()
CMainWindow::CMainWindow()
{
Create(NULL,_T("UI Thread Window"));
}
void CMainWindow::OnLButtonDown(UINT nFlags,CPoint point)
{
PostMessage(WM_CLOSE,0,0);
}
CWinThread *pThread=AfxBeginThread(RUNTIME_CLASS(CUIThread));
|
|
|
|
|
sriram65 wrote: The following lines of code generate a unhandled exception in reading memory location error in my MFC program...............
All of them??
How odd.
Have a look at your call stack when your application generates the exception and provide information about which line is generating the exception.
You'll probably find the last reference to your code a few frames down.
Before you provide that info it's not worth digging in to.
And please put your code inside <pre></pre> tags for proper formatting.
"It's supposed to be hard, otherwise anybody could do it!" - selfquote "High speed never compensates for wrong direction!" - unknown
|
|
|
|
|
Just a stab...
sriram65 wrote: m_pMainWnd=new CMainWindow;
m_pMainWnd->ShowWindow(SW_SHOW); <<---does the window exist yet?
m_pMainWnd->UpdateWindow();
maybe put these in an OnCreate handler?
|
|
|
|
|
No no no - that won't work. The window needs to be created on the
new UI thread
(at least that's what it appears the OP is doing)
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Ahh, thanks
|
|
|
|
|
The error is during Run time
The pointer to the thread "pThread" suddenly changes value to zero on going through InitInstance() function.
Even if i don't create a window derived from CFrameWnd it is generating the error.
The Window derived from CFrameWnd is created but the error is also generated at run time.
|
|
|
|
|
The exception occurs at
if(!pThread->InitInstance){.............} of predefined winmain.cpp
Error occurs in that if statement
The pThread value changes to zero for some reason.
|
|
|
|
|
Your code as shown works fine for me.
Where are you calling AfxBeginThread() from?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Sorry for the late reply.Iam calling AfxBeginThread globally.that is iam not calling inside any function or class Iam calling where they usually create the objects of the class
|
|
|
|